@threlte/extras
Version:
Utilities, abstractions and plugins for your Threlte apps
2 lines (1 loc) • 1 kB
TypeScript
export declare const vertexShader = "uniform mat4 viewMatrixInverse;\n\nvarying vec3 vWorldPosition;\nvarying vec3 vNormal;\nvarying mat4 vModelMatrixInverse;\n\n#ifdef USE_INSTANCING_COLOR\n\tvarying vec3 vInstanceColor;\n#endif\n\nvoid main() {\n\tvec4 transformedNormal = vec4(normal, 0.0);\n\tvec4 transformedPosition = vec4(position, 1.0);\n\t#ifdef USE_INSTANCING\n\t\ttransformedNormal = instanceMatrix * transformedNormal;\n\t\ttransformedPosition = instanceMatrix * transformedPosition;\n\t#endif\n\n\t#ifdef USE_INSTANCING\n\t\tvModelMatrixInverse = inverse(modelMatrix * instanceMatrix);\n\t#else\n\t\tvModelMatrixInverse = inverse(modelMatrix);\n\t#endif\n\n\t#ifdef USE_INSTANCING_COLOR\n\t\tvInstanceColor = instanceColor.rgb;\n\t#endif\n\n\tvWorldPosition = (modelMatrix * transformedPosition).xyz;\n\tvNormal = normalize((viewMatrixInverse * vec4(normalMatrix * transformedNormal.xyz, 0.0)).xyz);\n\tgl_Position = projectionMatrix * viewMatrix * modelMatrix * transformedPosition;\n}";