playcanvas
Version:
Open-source WebGL/WebGPU 3D engine for the web
31 lines (29 loc) • 615 B
JavaScript
var gsplatQuatToMat3VS = `
mat3 quatToMat3(vec4 R) {
vec4 R2 = R + R;
float X = R2.x * R.w;
vec4 Y = R2.y * R;
vec4 Z = R2.z * R;
float W = R2.w * R.w;
return mat3(
1.0 - Z.z - W,
Y.z + X,
Y.w - Z.x,
Y.z - X,
1.0 - Y.y - W,
Z.w + Y.x,
Y.w + Z.x,
Z.w - Y.x,
1.0 - Y.y - Z.z
);
}
vec4 quatMul(vec4 a, vec4 b) {
return vec4(
a.w * b.x + a.x * b.w + a.y * b.z - a.z * b.y,
a.w * b.y - a.x * b.z + a.y * b.w + a.z * b.x,
a.w * b.z + a.x * b.y - a.y * b.x + a.z * b.w,
a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z
);
}
`;
export { gsplatQuatToMat3VS as default };