|
@@ -99,6 +99,7 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
|
|
|
|
|
|
const useAlphaTest = material.alphaTest > 0;
|
|
|
const useClearcoat = material.clearcoat > 0;
|
|
|
+ const useIridescence = material.iridescence > 0;
|
|
|
|
|
|
const parameters = {
|
|
|
|
|
@@ -144,6 +145,10 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
|
|
|
clearcoatRoughnessMap: useClearcoat && !! material.clearcoatRoughnessMap,
|
|
|
clearcoatNormalMap: useClearcoat && !! material.clearcoatNormalMap,
|
|
|
|
|
|
+ iridescence: useIridescence,
|
|
|
+ iridescenceMap: useIridescence && !! material.iridescenceMap,
|
|
|
+ iridescenceThicknessMap: useIridescence && !! material.iridescenceThicknessMap,
|
|
|
+
|
|
|
displacementMap: !! material.displacementMap,
|
|
|
roughnessMap: !! material.roughnessMap,
|
|
|
metalnessMap: !! material.metalnessMap,
|
|
@@ -171,8 +176,8 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
|
|
|
vertexTangents: ( !! material.normalMap && !! geometry.attributes.tangent ),
|
|
|
vertexColors: material.vertexColors,
|
|
|
vertexAlphas: material.vertexColors === true && !! geometry.attributes.color && geometry.attributes.color.itemSize === 4,
|
|
|
- vertexUvs: !! material.map || !! material.bumpMap || !! material.normalMap || !! material.specularMap || !! material.alphaMap || !! material.emissiveMap || !! material.roughnessMap || !! material.metalnessMap || !! material.clearcoatMap || !! material.clearcoatRoughnessMap || !! material.clearcoatNormalMap || !! material.displacementMap || !! material.transmissionMap || !! material.thicknessMap || !! material.specularIntensityMap || !! material.specularColorMap || !! material.sheenColorMap || !! material.sheenRoughnessMap,
|
|
|
- uvsVertexOnly: ! ( !! material.map || !! material.bumpMap || !! material.normalMap || !! material.specularMap || !! material.alphaMap || !! material.emissiveMap || !! material.roughnessMap || !! material.metalnessMap || !! material.clearcoatNormalMap || material.transmission > 0 || !! material.transmissionMap || !! material.thicknessMap || !! material.specularIntensityMap || !! material.specularColorMap || material.sheen > 0 || !! material.sheenColorMap || !! material.sheenRoughnessMap ) && !! material.displacementMap,
|
|
|
+ vertexUvs: !! material.map || !! material.bumpMap || !! material.normalMap || !! material.specularMap || !! material.alphaMap || !! material.emissiveMap || !! material.roughnessMap || !! material.metalnessMap || !! material.clearcoatMap || !! material.clearcoatRoughnessMap || !! material.clearcoatNormalMap || !! material.iridescenceMap || !! material.iridescenceThicknessMap || !! material.displacementMap || !! material.transmissionMap || !! material.thicknessMap || !! material.specularIntensityMap || !! material.specularColorMap || !! material.sheenColorMap || !! material.sheenRoughnessMap,
|
|
|
+ uvsVertexOnly: ! ( !! material.map || !! material.bumpMap || !! material.normalMap || !! material.specularMap || !! material.alphaMap || !! material.emissiveMap || !! material.roughnessMap || !! material.metalnessMap || !! material.clearcoatNormalMap || !! material.iridescenceMap || !! material.iridescenceThicknessMap || material.transmission > 0 || !! material.transmissionMap || !! material.thicknessMap || !! material.specularIntensityMap || !! material.specularColorMap || material.sheen > 0 || !! material.sheenColorMap || !! material.sheenRoughnessMap ) && !! material.displacementMap,
|
|
|
|
|
|
fog: !! fog,
|
|
|
useFog: material.fog === true,
|
|
@@ -347,32 +352,38 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
|
|
|
_programLayers.enable( 16 );
|
|
|
if ( parameters.clearcoatNormalMap )
|
|
|
_programLayers.enable( 17 );
|
|
|
- if ( parameters.displacementMap )
|
|
|
+ if ( parameters.iridescence )
|
|
|
_programLayers.enable( 18 );
|
|
|
- if ( parameters.specularMap )
|
|
|
+ if ( parameters.iridescenceMap )
|
|
|
_programLayers.enable( 19 );
|
|
|
- if ( parameters.roughnessMap )
|
|
|
+ if ( parameters.iridescenceThicknessMap )
|
|
|
_programLayers.enable( 20 );
|
|
|
- if ( parameters.metalnessMap )
|
|
|
+ if ( parameters.displacementMap )
|
|
|
_programLayers.enable( 21 );
|
|
|
- if ( parameters.gradientMap )
|
|
|
+ if ( parameters.specularMap )
|
|
|
_programLayers.enable( 22 );
|
|
|
- if ( parameters.alphaMap )
|
|
|
+ if ( parameters.roughnessMap )
|
|
|
_programLayers.enable( 23 );
|
|
|
- if ( parameters.alphaTest )
|
|
|
+ if ( parameters.metalnessMap )
|
|
|
_programLayers.enable( 24 );
|
|
|
- if ( parameters.vertexColors )
|
|
|
+ if ( parameters.gradientMap )
|
|
|
_programLayers.enable( 25 );
|
|
|
- if ( parameters.vertexAlphas )
|
|
|
+ if ( parameters.alphaMap )
|
|
|
_programLayers.enable( 26 );
|
|
|
- if ( parameters.vertexUvs )
|
|
|
+ if ( parameters.alphaTest )
|
|
|
_programLayers.enable( 27 );
|
|
|
- if ( parameters.vertexTangents )
|
|
|
+ if ( parameters.vertexColors )
|
|
|
_programLayers.enable( 28 );
|
|
|
- if ( parameters.uvsVertexOnly )
|
|
|
+ if ( parameters.vertexAlphas )
|
|
|
_programLayers.enable( 29 );
|
|
|
- if ( parameters.fog )
|
|
|
+ if ( parameters.vertexUvs )
|
|
|
_programLayers.enable( 30 );
|
|
|
+ if ( parameters.vertexTangents )
|
|
|
+ _programLayers.enable( 31 );
|
|
|
+ if ( parameters.uvsVertexOnly )
|
|
|
+ _programLayers.enable( 32 );
|
|
|
+ if ( parameters.fog )
|
|
|
+ _programLayers.enable( 33 );
|
|
|
|
|
|
array.push( _programLayers.mask );
|
|
|
_programLayers.disableAll();
|