diff options
author | metamuffin <metamuffin@disroot.org> | 2025-01-23 16:31:06 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-01-23 16:31:06 +0100 |
commit | 25280332af8dce146295b2dcb48c044c45a92eba (patch) | |
tree | e56713385ce2f26c7622a67d7e709e4d7ed6f26e /client/src/shaders | |
parent | c682a1315adfa4e90d661d25e55df6e99a884d40 (diff) | |
download | weareserver-25280332af8dce146295b2dcb48c044c45a92eba.tar weareserver-25280332af8dce146295b2dcb48c044c45a92eba.tar.bz2 weareserver-25280332af8dce146295b2dcb48c044c45a92eba.tar.zst |
implement texture mip levels
Diffstat (limited to 'client/src/shaders')
-rw-r--r-- | client/src/shaders/fragment_pbr.wgsl | 2 | ||||
-rw-r--r-- | client/src/shaders/texture_copy.wgsl | 22 |
2 files changed, 23 insertions, 1 deletions
diff --git a/client/src/shaders/fragment_pbr.wgsl b/client/src/shaders/fragment_pbr.wgsl index d1d2b1d..2908d6f 100644 --- a/client/src/shaders/fragment_pbr.wgsl +++ b/client/src/shaders/fragment_pbr.wgsl @@ -44,7 +44,7 @@ fn main(vo: VertexOut) -> @location(0) vec4<f32> { let normal = tangent_basis * (t_normal.rgb * 2. - 1.); let alpha = t_albedo.a; - let lighting = mix(1., saturate(dot(LIGHT, normal)), 1.); + let lighting = mix(1., saturate(dot(LIGHT, normal)), 0.9); let color = t_albedo.rgb * lighting; diff --git a/client/src/shaders/texture_copy.wgsl b/client/src/shaders/texture_copy.wgsl new file mode 100644 index 0000000..ff58f87 --- /dev/null +++ b/client/src/shaders/texture_copy.wgsl @@ -0,0 +1,22 @@ +struct VertexOut { + @builtin(position) clip: vec4<f32>, + @location(0) texcoord: vec2<f32>, +}; + +@group(0) @binding(0) var texture: texture_2d<f32>; +@group(0) @binding(1) var texture_sampler: sampler; + +@vertex +fn vs_main(@builtin(vertex_index) vertex_index: u32) -> VertexOut { + let x = i32(vertex_index) / 2; + let y = i32(vertex_index) & 1; + return VertexOut( + vec4<f32>(f32(x) * 4.0 - 1.0, 1.0 - f32(y) * 4.0, 0.0, 1.0), + vec2<f32>(f32(x) * 2.0, f32(y) * 2.0) + ); +} + +@fragment +fn fs_main(vertex: VertexOut) -> @location(0) vec4<f32> { + return textureSample(texture, texture_sampler, vertex.texcoord); +} |