UNPKG

@three.ez/batched-mesh-extensions

Version:
16 lines 985 B
export function patchBatchedMeshMaterial(batchedMesh) { const material = batchedMesh.material; const onBeforeCompileBase = material.onBeforeCompile.bind(material); // TODO edit also the material compile cache key? material.onBeforeCompile = (shader, renderer) => { if (batchedMesh.uniformsTexture) { shader.uniforms.uniformsTexture = { value: batchedMesh.uniformsTexture }; const { vertex, fragment } = batchedMesh.uniformsTexture.getUniformsGLSL('uniformsTexture', 'batchIndex', 'float'); shader.vertexShader = shader.vertexShader.replace('void main() {', vertex); shader.fragmentShader = shader.fragmentShader.replace('void main() {', fragment); shader.vertexShader = shader.vertexShader.replace('void main() {', 'void main() { float batchIndex = getIndirectIndex( gl_DrawID );'); } onBeforeCompileBase(shader, renderer); }; } //# sourceMappingURL=PatchBatchedMeshMaterial.js.map