UNPKG

@lume/three-instanced-mesh

Version:

Scene graph level abstraction for three.js InstancedBufferGeometry

36 lines (18 loc) 561 B
export default /* glsl */ ` #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 `;