summaryrefslogtreecommitdiff
path: root/assets/final/shaders/mesh_render.wgsl
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-08 15:52:46 +0100
committerskal <pascal.massimino@gmail.com>2026-02-08 15:52:46 +0100
commit5c006735f2994aaa907b3eeb8681dff896695d08 (patch)
tree11b1b6a82b13d49d0e43b2e18a65e6f72ecaae83 /assets/final/shaders/mesh_render.wgsl
parent8d3c540e097a659d7ac9b1594a0b00404002925f (diff)
refactor(shaders): Apply common utilities to renderer shaders
Updated renderer_3d.wgsl, mesh_render.wgsl, skybox.wgsl to use common_utils functions. Registered snippet in ShaderComposer. Updated demo_assets.txt with SHADER_MATH_COMMON_UTILS entry. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Diffstat (limited to 'assets/final/shaders/mesh_render.wgsl')
-rw-r--r--assets/final/shaders/mesh_render.wgsl7
1 files changed, 3 insertions, 4 deletions
diff --git a/assets/final/shaders/mesh_render.wgsl b/assets/final/shaders/mesh_render.wgsl
index 068efbc..7390b06 100644
--- a/assets/final/shaders/mesh_render.wgsl
+++ b/assets/final/shaders/mesh_render.wgsl
@@ -1,4 +1,5 @@
#include "common_uniforms"
+#include "math/common_utils"
@group(0) @binding(0) var<uniform> globals: GlobalUniforms;
@group(0) @binding(1) var<storage, read> object_data: ObjectsBuffer;
@@ -33,10 +34,8 @@ fn vs_main(in: VertexInput, @builtin(instance_index) instance_index: u32) -> Ver
out.clip_pos = globals.view_proj * world_pos;
out.world_pos = world_pos.xyz;
- // Use transpose of inverse for normals
- // Note: mat3x3 constructor takes columns, so passing rows gives us transpose
- let normal_matrix = mat3x3<f32>(obj.inv_model[0].xyz, obj.inv_model[1].xyz, obj.inv_model[2].xyz);
- out.normal = normalize(normal_matrix * in.normal);
+ // Transform normal from local to world space
+ out.normal = transform_normal(obj.inv_model, in.normal);
out.uv = in.uv;
out.color = obj.color;