WGSL: use correct syntax for matrix access (#5039)
# Objective - `.x` is not the correct syntax to access a column in a matrix in WGSL: https://www.w3.org/TR/WGSL/#matrix-access-expr - naga accepts it and translates it correctly, but it's not valid when shaders are kept as is and used directly in WGSL ## Solution - Use the correct syntax
This commit is contained in:
parent
a62ff657fe
commit
8b27124a80
@ -11,10 +11,10 @@ fn add_matrix(
|
|||||||
b: mat4x4<f32>,
|
b: mat4x4<f32>,
|
||||||
) -> mat4x4<f32> {
|
) -> mat4x4<f32> {
|
||||||
return mat4x4<f32>(
|
return mat4x4<f32>(
|
||||||
a.x + b.x,
|
a[0] + b[0],
|
||||||
a.y + b.y,
|
a[1] + b[1],
|
||||||
a.z + b.z,
|
a[2] + b[2],
|
||||||
a.w + b.w,
|
a[3] + b[3],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,10 +29,10 @@ fn skin_model(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn inverse_transpose_3x3(in: mat3x3<f32>) -> mat3x3<f32> {
|
fn inverse_transpose_3x3(in: mat3x3<f32>) -> mat3x3<f32> {
|
||||||
let x = cross(in.y, in.z);
|
let x = cross(in[1], in[2]);
|
||||||
let y = cross(in.z, in.x);
|
let y = cross(in[2], in[0]);
|
||||||
let z = cross(in.x, in.y);
|
let z = cross(in[0], in[1]);
|
||||||
let det = dot(in.z, z);
|
let det = dot(in[2], z);
|
||||||
return mat3x3<f32>(
|
return mat3x3<f32>(
|
||||||
x / det,
|
x / det,
|
||||||
y / det,
|
y / det,
|
||||||
|
Loading…
Reference in New Issue
Block a user