playcanvas
Version:
PlayCanvas WebGL game engine
22 lines (20 loc) • 719 B
JavaScript
var gsplatCenterVS = `
uniform matrix_model: mat4x4f;
uniform matrix_view: mat4x4f;
uniform matrix_projection: mat4x4f;
fn initCenter(modelCenter: vec3f, center: ptr<function, SplatCenter>) -> bool {
let modelView: mat4x4f = uniform.matrix_view * uniform.matrix_model;
let centerView: vec4f = modelView * vec4f(modelCenter, 1.0);
if (centerView.z > 0.0) {
return false;
}
var centerProj: vec4f = uniform.matrix_projection * centerView;
centerProj.z = clamp(centerProj.z, 0.0, abs(centerProj.w));
center.view = centerView.xyz / centerView.w;
center.proj = centerProj;
center.projMat00 = uniform.matrix_projection[0][0];
center.modelView = modelView;
return true;
}
`;
export { gsplatCenterVS as default };