playcanvas
Version:
PlayCanvas WebGL game engine
26 lines (24 loc) • 737 B
JavaScript
var gsplatCenterVS = `
uniform mat4 matrix_model;
uniform mat4 matrix_view;
uniform mat4 matrix_projection;
bool initCenter(vec3 modelCenter, out SplatCenter center) {
mat4 modelView = matrix_view * matrix_model;
vec4 centerView = modelView * vec4(modelCenter, 1.0);
if (centerView.z > 0.0) {
return false;
}
vec4 centerProj = matrix_projection * centerView;
centerProj.z = clamp(centerProj.z, 0, abs(centerProj.w));
centerProj.z = clamp(centerProj.z, -abs(centerProj.w), abs(centerProj.w));
center.view = centerView.xyz / centerView.w;
center.proj = centerProj;
center.projMat00 = matrix_projection[0][0];
center.modelView = modelView;
return true;
}
`;
export { gsplatCenterVS as default };