diff --git a/src/renderers/WebGLRenderer.js b/src/renderers/WebGLRenderer.js index 4686d9d3deaf0de5b264375322ec707f354e0427..8444fa67b1df6c8b9b313faba5085df82cdaef16 100644 --- a/src/renderers/WebGLRenderer.js +++ b/src/renderers/WebGLRenderer.js @@ -1452,6 +1452,7 @@ function WebGLRenderer( parameters ) { materialProperties.instancing = parameters.instancing; materialProperties.numClippingPlanes = parameters.numClippingPlanes; materialProperties.numIntersection = parameters.numClipIntersection; + materialProperties.vertexAlphas = parameters.vertexAlphas; } @@ -1465,6 +1466,7 @@ function WebGLRenderer( parameters ) { const environment = material.isMeshStandardMaterial ? scene.environment : null; const encoding = ( _currentRenderTarget === null ) ? _this.outputEncoding : _currentRenderTarget.texture.encoding; const envMap = cubemaps.get( material.envMap || environment ); + const vertexAlphas = material.vertexColors === true && object.geometry.attributes.color && object.geometry.attributes.color.itemSize === 4; const materialProperties = properties.get( material ); const lights = currentRenderState.state.lights; @@ -1522,6 +1524,10 @@ function WebGLRenderer( parameters ) { needsProgramChange = true; + } else if ( materialProperties.vertexAlphas !== vertexAlphas ) { + + needsProgramChange = true; + } } else {