@animech-public/playcanvas
Version:
PlayCanvas WebGL game engine
43 lines (41 loc) • 1.29 kB
JavaScript
var normalVS = `
uniform highp sampler2D morphNormalTex;
vec3 getNormal() {
dNormalMatrix = mat3(dModelMatrix[0].xyz, dModelMatrix[1].xyz, dModelMatrix[2].xyz);
dNormalMatrix = mat3(instance_line1.xyz, instance_line2.xyz, instance_line3.xyz);
dNormalMatrix = matrix_normal;
vec3 tempNormal = vertex_normal;
tempNormal += morph_weights_a[0] * morph_nrm0;
tempNormal += morph_weights_a[1] * morph_nrm1;
tempNormal += morph_weights_a[2] * morph_nrm2;
tempNormal += morph_weights_a[3] * morph_nrm3;
tempNormal += morph_weights_b[0] * morph_nrm4;
tempNormal += morph_weights_b[1] * morph_nrm5;
tempNormal += morph_weights_b[2] * morph_nrm6;
tempNormal += morph_weights_b[3] * morph_nrm7;
ivec2 morphUV = getTextureMorphCoords();
vec3 morphNormal = texelFetch(morphNormalTex, ivec2(morphUV), 0).xyz;
vec2 morphUV = getTextureMorphCoords();
vec3 morphNormal = texture2D(morphNormalTex, morphUV).xyz;
tempNormal += morphNormal;
return normalize(dNormalMatrix * tempNormal);
}
`;
export { normalVS as default };