summaryrefslogtreecommitdiff
path: root/client/src/shader.wgsl
diff options
context:
space:
mode:
Diffstat (limited to 'client/src/shader.wgsl')
-rw-r--r--client/src/shader.wgsl16
1 files changed, 15 insertions, 1 deletions
diff --git a/client/src/shader.wgsl b/client/src/shader.wgsl
index 3f93223..7ed6c0e 100644
--- a/client/src/shader.wgsl
+++ b/client/src/shader.wgsl
@@ -26,8 +26,12 @@ struct VertexOut {
@group(0) @binding(0) var tex_albedo: texture_2d<f32>;
@group(0) @binding(1) var tex_albedo_sampler: sampler;
+@group(1) @binding(0) var tex_normal: texture_2d<f32>;
+@group(1) @binding(1) var tex_normal_sampler: sampler;
var<push_constant> project: mat4x4<f32>;
+const LIGHT: vec3<f32> = vec3(0.64, 0.64, 0.64);
+
@vertex
fn vs_main(vi: VertexIn) -> VertexOut {
var clip = project * vec4(vi.position, 1.);
@@ -36,5 +40,15 @@ fn vs_main(vi: VertexIn) -> VertexOut {
}
@fragment
fn fs_main(vo: VertexOut) -> @location(0) vec4<f32> {
- return textureSample(tex_albedo, tex_albedo_sampler, vo.texcoord);
+ let t_albedo = textureSample(tex_albedo, tex_albedo_sampler, vo.texcoord);
+ let t_normal = textureSample(tex_normal, tex_normal_sampler, vo.texcoord);
+
+
+ let lighting = mix(1., saturate(dot(LIGHT, vo.normal)), 0.9);
+
+ let alpha = t_albedo.a;
+ let color = t_albedo.rgb * lighting;
+ // let color = vo.normal + t_normal.rgb;
+
+ return vec4(color, alpha);
}