UNPKG

@bitowl/three-instanced-mesh

Version:

Scene graph level abstraction for three.js InstancedBufferGeometry

39 lines (21 loc) 732 B
/************************** * Dusan Bosnjak @pailhead **************************/ module.exports = [ "#ifdef FLIP_SIDED", "objectNormal = -objectNormal;", "#endif", "#ifndef INSTANCE_TRANSFORM", "vec3 transformedNormal = normalMatrix * objectNormal;", "#else", "#ifndef INSTANCE_MATRIX ", "mat4 _instanceMatrix = getInstanceMatrix();", "#define INSTANCE_MATRIX", "#endif", "#ifndef INSTANCE_UNIFORM", "vec3 transformedNormal = transposeMat3( inverse( mat3( modelViewMatrix * _instanceMatrix ) ) ) * objectNormal ;", "#else", "vec3 transformedNormal = ( modelViewMatrix * _instanceMatrix * vec4( objectNormal , 0.0 ) ).xyz;", "#endif", "#endif" ].join("\n");