|
@@ -11,9 +11,10 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
|
|
|
const _customShaders = new WebGLShaderCache();
|
|
|
const programs = [];
|
|
|
|
|
|
- const isWebGL2 = capabilities.isWebGL2;
|
|
|
+ const IS_WEBGL2 = capabilities.isWebGL2;
|
|
|
const logarithmicDepthBuffer = capabilities.logarithmicDepthBuffer;
|
|
|
- const vertexTextures = capabilities.vertexTextures;
|
|
|
+ const SUPPORTS_VERTEX_TEXTURES = capabilities.vertexTextures;
|
|
|
+
|
|
|
let precision = capabilities.precision;
|
|
|
|
|
|
const shaderIDs = {
|
|
@@ -34,6 +35,14 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
|
|
|
SpriteMaterial: 'sprite'
|
|
|
};
|
|
|
|
|
|
+ function getChannel( value ) {
|
|
|
+
|
|
|
+ if ( value === 1 ) return 'uv2';
|
|
|
+
|
|
|
+ return 'uv';
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
function getParameters( material, lights, shadows, scene, object ) {
|
|
|
|
|
|
const fog = scene.fog;
|
|
@@ -97,16 +106,57 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
|
|
|
|
|
|
const currentRenderTarget = renderer.getRenderTarget();
|
|
|
|
|
|
- const useAlphaTest = material.alphaTest > 0;
|
|
|
+ const IS_INSTANCEDMESH = object.isInstancedMesh === true;
|
|
|
+
|
|
|
+ const HAS_MAP = !! material.map;
|
|
|
+ const HAS_MATCAP = !! material.matcap;
|
|
|
+ const HAS_ENVMAP = !! envMap;
|
|
|
+ const HAS_AOMAP = !! material.aoMap;
|
|
|
+ const HAS_LIGHTMAP = !! material.lightMap;
|
|
|
+ const HAS_BUMPMAP = !! material.bumpMap;
|
|
|
+ const HAS_NORMALMAP = !! material.normalMap;
|
|
|
+ const HAS_DISPLACEMENTMAP = !! material.displacementMap;
|
|
|
+ const HAS_EMISSIVEMAP = !! material.emissiveMap;
|
|
|
+
|
|
|
+ const HAS_METALNESSMAP = !! material.metalnessMap;
|
|
|
+ const HAS_ROUGHNESSMAP = !! material.roughnessMap;
|
|
|
+
|
|
|
+ const HAS_CLEARCOAT = material.clearcoat > 0;
|
|
|
+ const HAS_IRIDESCENCE = material.iridescence > 0;
|
|
|
+ const HAS_SHEEN = material.sheen > 0;
|
|
|
+ const HAS_TRANSMISSION = material.transmission > 0;
|
|
|
+
|
|
|
+ const HAS_CLEARCOATMAP = HAS_CLEARCOAT && !! material.clearcoatMap;
|
|
|
+ const HAS_CLEARCOAT_NORMALMAP = HAS_CLEARCOAT && !! material.clearcoatNormalMap;
|
|
|
+ const HAS_CLEARCOAT_ROUGHNESSMAP = HAS_CLEARCOAT && !! material.clearcoatRoughnessMap;
|
|
|
+
|
|
|
+ const HAS_IRIDESCENCEMAP = HAS_IRIDESCENCE && !! material.iridescenceMap;
|
|
|
+ const HAS_IRIDESCENCE_THICKNESSMAP = HAS_IRIDESCENCE && !! material.iridescenceThicknessMap;
|
|
|
+
|
|
|
+ const HAS_SHEEN_COLORMAP = HAS_SHEEN && !! material.sheenColorMap;
|
|
|
+ const HAS_SHEEN_ROUGHNESSMAP = HAS_SHEEN && !! material.sheenRoughnessMap;
|
|
|
+
|
|
|
+ const HAS_SPECULARMAP = !! material.specularMap;
|
|
|
+ const HAS_SPECULAR_COLORMAP = !! material.specularColorMap;
|
|
|
+ const HAS_SPECULAR_INTENSITYMAP = !! material.specularIntensityMap;
|
|
|
+
|
|
|
+ const HAS_TRANSMISSIONMAP = HAS_TRANSMISSION && !! material.transmissionMap;
|
|
|
+ const HAS_THICKNESSMAP = HAS_TRANSMISSION && !! material.thicknessMap;
|
|
|
+
|
|
|
+ const HAS_GRADIENTMAP = !! material.gradientMap;
|
|
|
+
|
|
|
+ const HAS_ALPHAMAP = !! material.alphaMap;
|
|
|
+
|
|
|
+ const HAS_ALPHATEST = material.alphaTest > 0;
|
|
|
+
|
|
|
+ const HAS_EXTENSIONS = !! material.extensions;
|
|
|
|
|
|
- const useClearcoat = material.clearcoat > 0;
|
|
|
- const useIridescence = material.iridescence > 0;
|
|
|
- const useSheen = material.sheen > 0;
|
|
|
- const useTransmission = material.transmission > 0;
|
|
|
+ const HAS_ATTRIBUTE_UV = !! geometry.attributes.uv;
|
|
|
+ const HAS_ATTRIBUTE_UV2 = !! geometry.attributes.uv2;
|
|
|
|
|
|
const parameters = {
|
|
|
|
|
|
- isWebGL2: isWebGL2,
|
|
|
+ isWebGL2: IS_WEBGL2,
|
|
|
|
|
|
shaderID: shaderID,
|
|
|
shaderName: material.type,
|
|
@@ -123,74 +173,111 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
|
|
|
|
|
|
precision: precision,
|
|
|
|
|
|
- instancing: object.isInstancedMesh === true,
|
|
|
- instancingColor: object.isInstancedMesh === true && object.instanceColor !== null,
|
|
|
+ instancing: IS_INSTANCEDMESH,
|
|
|
+ instancingColor: IS_INSTANCEDMESH && object.instanceColor !== null,
|
|
|
|
|
|
- supportsVertexTextures: vertexTextures,
|
|
|
+ supportsVertexTextures: SUPPORTS_VERTEX_TEXTURES,
|
|
|
outputEncoding: ( currentRenderTarget === null ) ? renderer.outputEncoding : ( currentRenderTarget.isXRRenderTarget === true ? currentRenderTarget.texture.encoding : LinearEncoding ),
|
|
|
- map: !! material.map,
|
|
|
- matcap: !! material.matcap,
|
|
|
- envMap: !! envMap,
|
|
|
- envMapMode: envMap && envMap.mapping,
|
|
|
+
|
|
|
+ map: HAS_MAP,
|
|
|
+ matcap: HAS_MATCAP,
|
|
|
+ envMap: HAS_ENVMAP,
|
|
|
+ envMapMode: HAS_ENVMAP && envMap.mapping,
|
|
|
envMapCubeUVHeight: envMapCubeUVHeight,
|
|
|
- lightMap: !! material.lightMap,
|
|
|
- aoMap: !! material.aoMap,
|
|
|
- emissiveMap: !! material.emissiveMap,
|
|
|
- bumpMap: !! material.bumpMap,
|
|
|
- normalMap: !! material.normalMap,
|
|
|
- objectSpaceNormalMap: material.normalMapType === ObjectSpaceNormalMap,
|
|
|
- tangentSpaceNormalMap: material.normalMapType === TangentSpaceNormalMap,
|
|
|
-
|
|
|
- decodeVideoTexture: !! material.map && ( material.map.isVideoTexture === true ) && ( material.map.encoding === sRGBEncoding ),
|
|
|
-
|
|
|
- clearcoat: useClearcoat,
|
|
|
- clearcoatMap: useClearcoat && !! material.clearcoatMap,
|
|
|
- clearcoatRoughnessMap: useClearcoat && !! material.clearcoatRoughnessMap,
|
|
|
- clearcoatNormalMap: useClearcoat && !! material.clearcoatNormalMap,
|
|
|
-
|
|
|
- iridescence: useIridescence,
|
|
|
- iridescenceMap: useIridescence && !! material.iridescenceMap,
|
|
|
- iridescenceThicknessMap: useIridescence && !! material.iridescenceThicknessMap,
|
|
|
-
|
|
|
- sheen: useSheen,
|
|
|
- sheenColorMap: useSheen && !! material.sheenColorMap,
|
|
|
- sheenRoughnessMap: useSheen && !! material.sheenRoughnessMap,
|
|
|
-
|
|
|
- transmission: useTransmission,
|
|
|
- transmissionMap: useTransmission && !! material.transmissionMap,
|
|
|
- thicknessMap: useTransmission && !! material.thicknessMap,
|
|
|
-
|
|
|
- displacementMap: !! material.displacementMap,
|
|
|
- roughnessMap: !! material.roughnessMap,
|
|
|
- metalnessMap: !! material.metalnessMap,
|
|
|
- specularMap: !! material.specularMap,
|
|
|
- specularIntensityMap: !! material.specularIntensityMap,
|
|
|
- specularColorMap: !! material.specularColorMap,
|
|
|
+ aoMap: HAS_AOMAP,
|
|
|
+ lightMap: HAS_LIGHTMAP,
|
|
|
+ bumpMap: HAS_BUMPMAP,
|
|
|
+ normalMap: HAS_NORMALMAP,
|
|
|
+ displacementMap: SUPPORTS_VERTEX_TEXTURES && HAS_DISPLACEMENTMAP,
|
|
|
+ emissiveMap: HAS_EMISSIVEMAP,
|
|
|
|
|
|
- opaque: material.transparent === false && material.blending === NormalBlending,
|
|
|
+ normalMapObjectSpace: HAS_NORMALMAP && material.normalMapType === ObjectSpaceNormalMap,
|
|
|
+ normalMapTangentSpace: HAS_NORMALMAP && material.normalMapType === TangentSpaceNormalMap,
|
|
|
+
|
|
|
+ decodeVideoTexture: HAS_MAP && ( material.map.isVideoTexture === true ) && ( material.map.encoding === sRGBEncoding ),
|
|
|
+
|
|
|
+ metalnessMap: HAS_METALNESSMAP,
|
|
|
+ roughnessMap: HAS_ROUGHNESSMAP,
|
|
|
+
|
|
|
+ clearcoat: HAS_CLEARCOAT,
|
|
|
+ clearcoatMap: HAS_CLEARCOATMAP,
|
|
|
+ clearcoatNormalMap: HAS_CLEARCOAT_NORMALMAP,
|
|
|
+ clearcoatRoughnessMap: HAS_CLEARCOAT_ROUGHNESSMAP,
|
|
|
+
|
|
|
+ iridescence: HAS_IRIDESCENCE,
|
|
|
+ iridescenceMap: HAS_IRIDESCENCEMAP,
|
|
|
+ iridescenceThicknessMap: HAS_IRIDESCENCE_THICKNESSMAP,
|
|
|
+
|
|
|
+ sheen: HAS_SHEEN,
|
|
|
+ sheenColorMap: HAS_SHEEN_COLORMAP,
|
|
|
+ sheenRoughnessMap: HAS_SHEEN_ROUGHNESSMAP,
|
|
|
+
|
|
|
+ specularMap: HAS_SPECULARMAP,
|
|
|
+ specularColorMap: HAS_SPECULAR_COLORMAP,
|
|
|
+ specularIntensityMap: HAS_SPECULAR_INTENSITYMAP,
|
|
|
+
|
|
|
+ transmission: HAS_TRANSMISSION,
|
|
|
+ transmissionMap: HAS_TRANSMISSIONMAP,
|
|
|
+ thicknessMap: HAS_THICKNESSMAP,
|
|
|
|
|
|
- alphaMap: !! material.alphaMap,
|
|
|
- alphaTest: useAlphaTest,
|
|
|
+ gradientMap: HAS_GRADIENTMAP,
|
|
|
|
|
|
- gradientMap: !! material.gradientMap,
|
|
|
+ opaque: material.transparent === false && material.blending === NormalBlending,
|
|
|
+
|
|
|
+ alphaMap: HAS_ALPHAMAP,
|
|
|
+ alphaTest: HAS_ALPHATEST,
|
|
|
|
|
|
combine: material.combine,
|
|
|
|
|
|
- vertexTangents: ( !! material.normalMap && !! geometry.attributes.tangent ),
|
|
|
+ //
|
|
|
+
|
|
|
+ mapUv: HAS_MAP && getChannel( material.map.channel ),
|
|
|
+ aoMapUv: HAS_AOMAP && getChannel( material.aoMap.channel ),
|
|
|
+ lightMapUv: HAS_LIGHTMAP && getChannel( material.lightMap.channel ),
|
|
|
+ bumpMapUv: HAS_BUMPMAP && getChannel( material.bumpMap.channel ),
|
|
|
+ normalMapUv: HAS_NORMALMAP && getChannel( material.normalMap.channel ),
|
|
|
+ displacementMapUv: HAS_DISPLACEMENTMAP && getChannel( material.displacementMap.channel ),
|
|
|
+ emissiveMapUv: HAS_EMISSIVEMAP && getChannel( material.emissiveMap.channel ),
|
|
|
+
|
|
|
+ metalnessMapUv: HAS_METALNESSMAP && getChannel( material.metalnessMap.channel ),
|
|
|
+ roughnessMapUv: HAS_ROUGHNESSMAP && getChannel( material.roughnessMap.channel ),
|
|
|
+
|
|
|
+ clearcoatMapUv: HAS_CLEARCOATMAP && getChannel( material.clearcoatMap.channel ),
|
|
|
+ clearcoatNormalMapUv: HAS_CLEARCOAT_NORMALMAP && getChannel( material.clearcoatNormalMap.channel ),
|
|
|
+ clearcoatRoughnessMapUv: HAS_CLEARCOAT_ROUGHNESSMAP && getChannel( material.clearcoatRoughnessMap.channel ),
|
|
|
+
|
|
|
+ iridescenceMapUv: HAS_IRIDESCENCEMAP && getChannel( material.iridescenceMap.channel ),
|
|
|
+ iridescenceThicknessMapUv: HAS_IRIDESCENCE_THICKNESSMAP && getChannel( material.iridescenceThicknessMap.channel ),
|
|
|
+
|
|
|
+ sheenColorMapUv: HAS_SHEEN_COLORMAP && getChannel( material.sheenColorMap.channel ),
|
|
|
+ sheenRoughnessMapUv: HAS_SHEEN_ROUGHNESSMAP && getChannel( material.sheenRoughnessMap.channel ),
|
|
|
+
|
|
|
+ specularMapUv: HAS_SPECULARMAP && getChannel( material.specularMap.channel ),
|
|
|
+ specularColorMapUv: HAS_SPECULAR_COLORMAP && getChannel( material.specularColorMap.channel ),
|
|
|
+ specularIntensityMapUv: HAS_SPECULAR_INTENSITYMAP && getChannel( material.specularIntensityMap.channel ),
|
|
|
+
|
|
|
+ transmissionMapUv: HAS_TRANSMISSIONMAP && getChannel( material.transmissionMap.channel ),
|
|
|
+ thicknessMapUv: HAS_THICKNESSMAP && getChannel( material.thicknessMap.channel ),
|
|
|
+
|
|
|
+ alphaMapUv: HAS_ALPHAMAP && getChannel( material.alphaMap.channel ),
|
|
|
+
|
|
|
+ //
|
|
|
+
|
|
|
+ vertexTangents: HAS_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.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,
|
|
|
+ vertexUvs: HAS_ATTRIBUTE_UV,
|
|
|
+ vertexUvs2: HAS_ATTRIBUTE_UV2,
|
|
|
|
|
|
- pointsUvs: object.isPoints === true && !! geometry.attributes.uv && ( !! material.map || !! material.alphaMap ),
|
|
|
+ pointsUvs: object.isPoints === true && !! geometry.attributes.uv && ( HAS_MAP || HAS_ALPHAMAP ),
|
|
|
|
|
|
fog: !! fog,
|
|
|
useFog: material.fog === true,
|
|
|
fogExp2: ( fog && fog.isFogExp2 ),
|
|
|
|
|
|
- flatShading: !! material.flatShading,
|
|
|
+ flatShading: material.flatShading === true,
|
|
|
|
|
|
- sizeAttenuation: material.sizeAttenuation,
|
|
|
+ sizeAttenuation: material.sizeAttenuation === true,
|
|
|
logarithmicDepthBuffer: logarithmicDepthBuffer,
|
|
|
|
|
|
skinning: object.isSkinnedMesh === true,
|
|
@@ -229,19 +316,19 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
|
|
|
doubleSided: material.side === DoubleSide,
|
|
|
flipSided: material.side === BackSide,
|
|
|
|
|
|
- useDepthPacking: !! material.depthPacking,
|
|
|
+ useDepthPacking: material.depthPacking >= 0,
|
|
|
depthPacking: material.depthPacking || 0,
|
|
|
|
|
|
index0AttributeName: material.index0AttributeName,
|
|
|
|
|
|
- extensionDerivatives: material.extensions && material.extensions.derivatives,
|
|
|
- extensionFragDepth: material.extensions && material.extensions.fragDepth,
|
|
|
- extensionDrawBuffers: material.extensions && material.extensions.drawBuffers,
|
|
|
- extensionShaderTextureLOD: material.extensions && material.extensions.shaderTextureLOD,
|
|
|
+ extensionDerivatives: HAS_EXTENSIONS && material.extensions.derivatives === true,
|
|
|
+ extensionFragDepth: HAS_EXTENSIONS && material.extensions.fragDepth === true,
|
|
|
+ extensionDrawBuffers: HAS_EXTENSIONS && material.extensions.drawBuffers === true,
|
|
|
+ extensionShaderTextureLOD: HAS_EXTENSIONS && material.extensions.shaderTextureLOD === true,
|
|
|
|
|
|
- rendererExtensionFragDepth: isWebGL2 || extensions.has( 'EXT_frag_depth' ),
|
|
|
- rendererExtensionDrawBuffers: isWebGL2 || extensions.has( 'WEBGL_draw_buffers' ),
|
|
|
- rendererExtensionShaderTextureLod: isWebGL2 || extensions.has( 'EXT_shader_texture_lod' ),
|
|
|
+ rendererExtensionFragDepth: IS_WEBGL2 || extensions.has( 'EXT_frag_depth' ),
|
|
|
+ rendererExtensionDrawBuffers: IS_WEBGL2 || extensions.has( 'WEBGL_draw_buffers' ),
|
|
|
+ rendererExtensionShaderTextureLod: IS_WEBGL2 || extensions.has( 'EXT_shader_texture_lod' ),
|
|
|
|
|
|
customProgramCacheKey: material.customProgramCacheKey()
|
|
|
|
|
@@ -297,8 +384,29 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
|
|
|
array.push( parameters.outputEncoding );
|
|
|
array.push( parameters.envMapMode );
|
|
|
array.push( parameters.envMapCubeUVHeight );
|
|
|
+ array.push( parameters.mapUv );
|
|
|
+ array.push( parameters.alphaMapUv );
|
|
|
+ array.push( parameters.lightMapUv );
|
|
|
+ array.push( parameters.aoMapUv );
|
|
|
+ array.push( parameters.bumpMapUv );
|
|
|
+ array.push( parameters.normalMapUv );
|
|
|
+ array.push( parameters.displacementMapUv );
|
|
|
+ array.push( parameters.emissiveMapUv );
|
|
|
+ array.push( parameters.metalnessMapUv );
|
|
|
+ array.push( parameters.roughnessMapUv );
|
|
|
+ array.push( parameters.clearcoatMapUv );
|
|
|
+ array.push( parameters.clearcoatNormalMapUv );
|
|
|
+ array.push( parameters.clearcoatRoughnessMapUv );
|
|
|
+ array.push( parameters.iridescenceMapUv );
|
|
|
+ array.push( parameters.iridescenceThicknessMapUv );
|
|
|
+ array.push( parameters.sheenColorMapUv );
|
|
|
+ array.push( parameters.sheenRoughnessMapUv );
|
|
|
+ array.push( parameters.specularMapUv );
|
|
|
+ array.push( parameters.specularColorMapUv );
|
|
|
+ array.push( parameters.specularIntensityMapUv );
|
|
|
+ array.push( parameters.transmissionMapUv );
|
|
|
+ array.push( parameters.thicknessMapUv );
|
|
|
array.push( parameters.combine );
|
|
|
- array.push( parameters.vertexUvs );
|
|
|
array.push( parameters.fogExp2 );
|
|
|
array.push( parameters.sizeAttenuation );
|
|
|
array.push( parameters.morphTargetsCount );
|
|
@@ -333,64 +441,30 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
|
|
|
_programLayers.enable( 2 );
|
|
|
if ( parameters.instancingColor )
|
|
|
_programLayers.enable( 3 );
|
|
|
- if ( parameters.map )
|
|
|
- _programLayers.enable( 4 );
|
|
|
if ( parameters.matcap )
|
|
|
- _programLayers.enable( 5 );
|
|
|
+ _programLayers.enable( 4 );
|
|
|
if ( parameters.envMap )
|
|
|
+ _programLayers.enable( 5 );
|
|
|
+ if ( parameters.normalMapObjectSpace )
|
|
|
_programLayers.enable( 6 );
|
|
|
- if ( parameters.lightMap )
|
|
|
+ if ( parameters.normalMapTangentSpace )
|
|
|
_programLayers.enable( 7 );
|
|
|
- if ( parameters.aoMap )
|
|
|
+ if ( parameters.clearcoat )
|
|
|
_programLayers.enable( 8 );
|
|
|
- if ( parameters.emissiveMap )
|
|
|
+ if ( parameters.iridescence )
|
|
|
_programLayers.enable( 9 );
|
|
|
- if ( parameters.bumpMap )
|
|
|
+ if ( parameters.alphaTest )
|
|
|
_programLayers.enable( 10 );
|
|
|
- if ( parameters.normalMap )
|
|
|
+ if ( parameters.vertexColors )
|
|
|
_programLayers.enable( 11 );
|
|
|
- if ( parameters.objectSpaceNormalMap )
|
|
|
+ if ( parameters.vertexAlphas )
|
|
|
_programLayers.enable( 12 );
|
|
|
- if ( parameters.tangentSpaceNormalMap )
|
|
|
+ if ( parameters.vertexUvs )
|
|
|
_programLayers.enable( 13 );
|
|
|
- if ( parameters.clearcoat )
|
|
|
+ if ( parameters.vertexUvs2 )
|
|
|
_programLayers.enable( 14 );
|
|
|
- if ( parameters.clearcoatMap )
|
|
|
- _programLayers.enable( 15 );
|
|
|
- if ( parameters.clearcoatRoughnessMap )
|
|
|
- _programLayers.enable( 16 );
|
|
|
- if ( parameters.clearcoatNormalMap )
|
|
|
- _programLayers.enable( 17 );
|
|
|
- if ( parameters.iridescence )
|
|
|
- _programLayers.enable( 18 );
|
|
|
- if ( parameters.iridescenceMap )
|
|
|
- _programLayers.enable( 19 );
|
|
|
- if ( parameters.iridescenceThicknessMap )
|
|
|
- _programLayers.enable( 20 );
|
|
|
- if ( parameters.displacementMap )
|
|
|
- _programLayers.enable( 21 );
|
|
|
- if ( parameters.specularMap )
|
|
|
- _programLayers.enable( 22 );
|
|
|
- if ( parameters.roughnessMap )
|
|
|
- _programLayers.enable( 23 );
|
|
|
- if ( parameters.metalnessMap )
|
|
|
- _programLayers.enable( 24 );
|
|
|
- if ( parameters.gradientMap )
|
|
|
- _programLayers.enable( 25 );
|
|
|
- if ( parameters.alphaMap )
|
|
|
- _programLayers.enable( 26 );
|
|
|
- if ( parameters.alphaTest )
|
|
|
- _programLayers.enable( 27 );
|
|
|
- if ( parameters.vertexColors )
|
|
|
- _programLayers.enable( 28 );
|
|
|
- if ( parameters.vertexAlphas )
|
|
|
- _programLayers.enable( 29 );
|
|
|
- if ( parameters.vertexUvs )
|
|
|
- _programLayers.enable( 30 );
|
|
|
if ( parameters.vertexTangents )
|
|
|
- _programLayers.enable( 31 );
|
|
|
- if ( parameters.uvsVertexOnly )
|
|
|
- _programLayers.enable( 32 );
|
|
|
+ _programLayers.enable( 15 );
|
|
|
|
|
|
array.push( _programLayers.mask );
|
|
|
_programLayers.disableAll();
|
|
@@ -425,28 +499,16 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
|
|
|
_programLayers.enable( 13 );
|
|
|
if ( parameters.dithering )
|
|
|
_programLayers.enable( 14 );
|
|
|
- if ( parameters.specularIntensityMap )
|
|
|
- _programLayers.enable( 15 );
|
|
|
- if ( parameters.specularColorMap )
|
|
|
- _programLayers.enable( 16 );
|
|
|
if ( parameters.transmission )
|
|
|
- _programLayers.enable( 17 );
|
|
|
- if ( parameters.transmissionMap )
|
|
|
- _programLayers.enable( 18 );
|
|
|
- if ( parameters.thicknessMap )
|
|
|
- _programLayers.enable( 19 );
|
|
|
+ _programLayers.enable( 15 );
|
|
|
if ( parameters.sheen )
|
|
|
- _programLayers.enable( 20 );
|
|
|
- if ( parameters.sheenColorMap )
|
|
|
- _programLayers.enable( 21 );
|
|
|
- if ( parameters.sheenRoughnessMap )
|
|
|
- _programLayers.enable( 22 );
|
|
|
+ _programLayers.enable( 16 );
|
|
|
if ( parameters.decodeVideoTexture )
|
|
|
- _programLayers.enable( 23 );
|
|
|
+ _programLayers.enable( 17 );
|
|
|
if ( parameters.opaque )
|
|
|
- _programLayers.enable( 24 );
|
|
|
+ _programLayers.enable( 18 );
|
|
|
if ( parameters.pointsUvs )
|
|
|
- _programLayers.enable( 25 );
|
|
|
+ _programLayers.enable( 19 );
|
|
|
|
|
|
array.push( _programLayers.mask );
|
|
|
|