diff options
author | metamuffin <metamuffin@disroot.org> | 2025-01-11 13:28:44 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-01-11 13:28:44 +0100 |
commit | a8c689a9f11badbdd10748d247e60ec47725dc36 (patch) | |
tree | 7a17933607a9cdf82be8e69dae4b0c0e3c277551 /client/src/shader.wgsl | |
parent | e9e5df5ff1e09356bf2ad0bcc82bbaee6a2acc0d (diff) | |
download | weareserver-a8c689a9f11badbdd10748d247e60ec47725dc36.tar weareserver-a8c689a9f11badbdd10748d247e60ec47725dc36.tar.bz2 weareserver-a8c689a9f11badbdd10748d247e60ec47725dc36.tar.zst |
add normal map bind group
Diffstat (limited to 'client/src/shader.wgsl')
-rw-r--r-- | client/src/shader.wgsl | 16 |
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); } |