📄 WebGLMaterials.js
¶
📊 Analysis Summary¶
Metric | Count |
---|---|
🔧 Functions | 15 |
📦 Imports | 4 |
📊 Variables & Constants | 5 |
📚 Table of Contents¶
🛠️ File Location:¶
📂 src/renderers/webgl/WebGLMaterials.js
📦 Imports¶
Name | Source |
---|---|
BackSide |
../../constants.js |
getUnlitUniformColorSpace |
../shaders/UniformsUtils.js |
Euler |
../../math/Euler.js |
Matrix4 |
../../math/Matrix4.js |
Variables & Constants¶
Name | Type | Kind | Value | Exported |
---|---|---|---|---|
_e1 |
Euler |
let/var | new Euler() |
✗ |
_m1 |
Matrix4 |
let/var | new Matrix4() |
✗ |
envMap |
any |
let/var | materialProperties.envMap |
✗ |
envMapRotation |
any |
let/var | materialProperties.envMapRotation |
✗ |
light |
any |
let/var | properties.get( material ).light |
✗ |
Functions¶
WebGLMaterials(renderer: any, properties: any): { refreshFogUniforms: (uniforms: any, fog: any) => void; refreshMaterialUniforms: (uniforms: any, material: any, pixelRatio: any, height: any, transmissionRenderTarget: any) => void; }
¶
Parameters:
renderer
any
properties
any
Returns: { refreshFogUniforms: (uniforms: any, fog: any) => void; refreshMaterialUniforms: (uniforms: any, material: any, pixelRatio: any, height: any, transmissionRenderTarget: any) => void; }
Calls:
map.updateMatrix
uniform.value.copy
fog.color.getRGB
getUnlitUniformColorSpace (from ../shaders/UniformsUtils.js)
refreshUniformsCommon
refreshUniformsToon
refreshUniformsPhong
refreshUniformsStandard
refreshUniformsPhysical
refreshUniformsMatcap
refreshUniformsDistance
refreshUniformsLine
refreshUniformsDash
refreshUniformsPoints
refreshUniformsSprites
uniforms.color.value.copy
uniforms.diffuse.value.copy
uniforms.emissive.value.copy( material.emissive ).multiplyScalar
refreshTransformUniform
uniforms.normalScale.value.copy
uniforms.normalScale.value.negate
properties.get
_e1.copy
uniforms.envMapRotation.value.setFromMatrix4
_m1.makeRotationFromEuler
uniforms.specular.value.copy
Math.max
uniforms.sheenColor.value.copy( material.sheenColor ).multiplyScalar
uniforms.clearcoatNormalScale.value.copy
uniforms.clearcoatNormalScale.value.negate
uniforms.transmissionSamplerSize.value.set
uniforms.attenuationColor.value.copy
uniforms.anisotropyVector.value.set
Math.cos
Math.sin
uniforms.specularColor.value.copy
uniforms.referencePosition.value.setFromMatrixPosition
Internal Comments:
// accommodate left-handed frame (x4)
// environment maps which are not cube render targets or PMREMs follow a different convention (x4)
//uniforms.envMap.value = material.envMap; // part of uniforms common (x5)
Code
function WebGLMaterials( renderer, properties ) {
function refreshTransformUniform( map, uniform ) {
if ( map.matrixAutoUpdate === true ) {
map.updateMatrix();
}
uniform.value.copy( map.matrix );
}
function refreshFogUniforms( uniforms, fog ) {
fog.color.getRGB( uniforms.fogColor.value, getUnlitUniformColorSpace( renderer ) );
if ( fog.isFog ) {
uniforms.fogNear.value = fog.near;
uniforms.fogFar.value = fog.far;
} else if ( fog.isFogExp2 ) {
uniforms.fogDensity.value = fog.density;
}
}
function refreshMaterialUniforms( uniforms, material, pixelRatio, height, transmissionRenderTarget ) {
if ( material.isMeshBasicMaterial ) {
refreshUniformsCommon( uniforms, material );
} else if ( material.isMeshLambertMaterial ) {
refreshUniformsCommon( uniforms, material );
} else if ( material.isMeshToonMaterial ) {
refreshUniformsCommon( uniforms, material );
refreshUniformsToon( uniforms, material );
} else if ( material.isMeshPhongMaterial ) {
refreshUniformsCommon( uniforms, material );
refreshUniformsPhong( uniforms, material );
} else if ( material.isMeshStandardMaterial ) {
refreshUniformsCommon( uniforms, material );
refreshUniformsStandard( uniforms, material );
if ( material.isMeshPhysicalMaterial ) {
refreshUniformsPhysical( uniforms, material, transmissionRenderTarget );
}
} else if ( material.isMeshMatcapMaterial ) {
refreshUniformsCommon( uniforms, material );
refreshUniformsMatcap( uniforms, material );
} else if ( material.isMeshDepthMaterial ) {
refreshUniformsCommon( uniforms, material );
} else if ( material.isMeshDistanceMaterial ) {
refreshUniformsCommon( uniforms, material );
refreshUniformsDistance( uniforms, material );
} else if ( material.isMeshNormalMaterial ) {
refreshUniformsCommon( uniforms, material );
} else if ( material.isLineBasicMaterial ) {
refreshUniformsLine( uniforms, material );
if ( material.isLineDashedMaterial ) {
refreshUniformsDash( uniforms, material );
}
} else if ( material.isPointsMaterial ) {
refreshUniformsPoints( uniforms, material, pixelRatio, height );
} else if ( material.isSpriteMaterial ) {
refreshUniformsSprites( uniforms, material );
} else if ( material.isShadowMaterial ) {
uniforms.color.value.copy( material.color );
uniforms.opacity.value = material.opacity;
} else if ( material.isShaderMaterial ) {
material.uniformsNeedUpdate = false; // #15581
}
}
function refreshUniformsCommon( uniforms, material ) {
uniforms.opacity.value = material.opacity;
if ( material.color ) {
uniforms.diffuse.value.copy( material.color );
}
if ( material.emissive ) {
uniforms.emissive.value.copy( material.emissive ).multiplyScalar( material.emissiveIntensity );
}
if ( material.map ) {
uniforms.map.value = material.map;
refreshTransformUniform( material.map, uniforms.mapTransform );
}
if ( material.alphaMap ) {
uniforms.alphaMap.value = material.alphaMap;
refreshTransformUniform( material.alphaMap, uniforms.alphaMapTransform );
}
if ( material.bumpMap ) {
uniforms.bumpMap.value = material.bumpMap;
refreshTransformUniform( material.bumpMap, uniforms.bumpMapTransform );
uniforms.bumpScale.value = material.bumpScale;
if ( material.side === BackSide ) {
uniforms.bumpScale.value *= - 1;
}
}
if ( material.normalMap ) {
uniforms.normalMap.value = material.normalMap;
refreshTransformUniform( material.normalMap, uniforms.normalMapTransform );
uniforms.normalScale.value.copy( material.normalScale );
if ( material.side === BackSide ) {
uniforms.normalScale.value.negate();
}
}
if ( material.displacementMap ) {
uniforms.displacementMap.value = material.displacementMap;
refreshTransformUniform( material.displacementMap, uniforms.displacementMapTransform );
uniforms.displacementScale.value = material.displacementScale;
uniforms.displacementBias.value = material.displacementBias;
}
if ( material.emissiveMap ) {
uniforms.emissiveMap.value = material.emissiveMap;
refreshTransformUniform( material.emissiveMap, uniforms.emissiveMapTransform );
}
if ( material.specularMap ) {
uniforms.specularMap.value = material.specularMap;
refreshTransformUniform( material.specularMap, uniforms.specularMapTransform );
}
if ( material.alphaTest > 0 ) {
uniforms.alphaTest.value = material.alphaTest;
}
const materialProperties = properties.get( material );
const envMap = materialProperties.envMap;
const envMapRotation = materialProperties.envMapRotation;
if ( envMap ) {
uniforms.envMap.value = envMap;
_e1.copy( envMapRotation );
// accommodate left-handed frame
_e1.x *= - 1; _e1.y *= - 1; _e1.z *= - 1;
if ( envMap.isCubeTexture && envMap.isRenderTargetTexture === false ) {
// environment maps which are not cube render targets or PMREMs follow a different convention
_e1.y *= - 1;
_e1.z *= - 1;
}
uniforms.envMapRotation.value.setFromMatrix4( _m1.makeRotationFromEuler( _e1 ) );
uniforms.flipEnvMap.value = ( envMap.isCubeTexture && envMap.isRenderTargetTexture === false ) ? - 1 : 1;
uniforms.reflectivity.value = material.reflectivity;
uniforms.ior.value = material.ior;
uniforms.refractionRatio.value = material.refractionRatio;
}
if ( material.lightMap ) {
uniforms.lightMap.value = material.lightMap;
uniforms.lightMapIntensity.value = material.lightMapIntensity;
refreshTransformUniform( material.lightMap, uniforms.lightMapTransform );
}
if ( material.aoMap ) {
uniforms.aoMap.value = material.aoMap;
uniforms.aoMapIntensity.value = material.aoMapIntensity;
refreshTransformUniform( material.aoMap, uniforms.aoMapTransform );
}
}
function refreshUniformsLine( uniforms, material ) {
uniforms.diffuse.value.copy( material.color );
uniforms.opacity.value = material.opacity;
if ( material.map ) {
uniforms.map.value = material.map;
refreshTransformUniform( material.map, uniforms.mapTransform );
}
}
function refreshUniformsDash( uniforms, material ) {
uniforms.dashSize.value = material.dashSize;
uniforms.totalSize.value = material.dashSize + material.gapSize;
uniforms.scale.value = material.scale;
}
function refreshUniformsPoints( uniforms, material, pixelRatio, height ) {
uniforms.diffuse.value.copy( material.color );
uniforms.opacity.value = material.opacity;
uniforms.size.value = material.size * pixelRatio;
uniforms.scale.value = height * 0.5;
if ( material.map ) {
uniforms.map.value = material.map;
refreshTransformUniform( material.map, uniforms.uvTransform );
}
if ( material.alphaMap ) {
uniforms.alphaMap.value = material.alphaMap;
refreshTransformUniform( material.alphaMap, uniforms.alphaMapTransform );
}
if ( material.alphaTest > 0 ) {
uniforms.alphaTest.value = material.alphaTest;
}
}
function refreshUniformsSprites( uniforms, material ) {
uniforms.diffuse.value.copy( material.color );
uniforms.opacity.value = material.opacity;
uniforms.rotation.value = material.rotation;
if ( material.map ) {
uniforms.map.value = material.map;
refreshTransformUniform( material.map, uniforms.mapTransform );
}
if ( material.alphaMap ) {
uniforms.alphaMap.value = material.alphaMap;
refreshTransformUniform( material.alphaMap, uniforms.alphaMapTransform );
}
if ( material.alphaTest > 0 ) {
uniforms.alphaTest.value = material.alphaTest;
}
}
function refreshUniformsPhong( uniforms, material ) {
uniforms.specular.value.copy( material.specular );
uniforms.shininess.value = Math.max( material.shininess, 1e-4 ); // to prevent pow( 0.0, 0.0 )
}
function refreshUniformsToon( uniforms, material ) {
if ( material.gradientMap ) {
uniforms.gradientMap.value = material.gradientMap;
}
}
function refreshUniformsStandard( uniforms, material ) {
uniforms.metalness.value = material.metalness;
if ( material.metalnessMap ) {
uniforms.metalnessMap.value = material.metalnessMap;
refreshTransformUniform( material.metalnessMap, uniforms.metalnessMapTransform );
}
uniforms.roughness.value = material.roughness;
if ( material.roughnessMap ) {
uniforms.roughnessMap.value = material.roughnessMap;
refreshTransformUniform( material.roughnessMap, uniforms.roughnessMapTransform );
}
if ( material.envMap ) {
//uniforms.envMap.value = material.envMap; // part of uniforms common
uniforms.envMapIntensity.value = material.envMapIntensity;
}
}
function refreshUniformsPhysical( uniforms, material, transmissionRenderTarget ) {
uniforms.ior.value = material.ior; // also part of uniforms common
if ( material.sheen > 0 ) {
uniforms.sheenColor.value.copy( material.sheenColor ).multiplyScalar( material.sheen );
uniforms.sheenRoughness.value = material.sheenRoughness;
if ( material.sheenColorMap ) {
uniforms.sheenColorMap.value = material.sheenColorMap;
refreshTransformUniform( material.sheenColorMap, uniforms.sheenColorMapTransform );
}
if ( material.sheenRoughnessMap ) {
uniforms.sheenRoughnessMap.value = material.sheenRoughnessMap;
refreshTransformUniform( material.sheenRoughnessMap, uniforms.sheenRoughnessMapTransform );
}
}
if ( material.clearcoat > 0 ) {
uniforms.clearcoat.value = material.clearcoat;
uniforms.clearcoatRoughness.value = material.clearcoatRoughness;
if ( material.clearcoatMap ) {
uniforms.clearcoatMap.value = material.clearcoatMap;
refreshTransformUniform( material.clearcoatMap, uniforms.clearcoatMapTransform );
}
if ( material.clearcoatRoughnessMap ) {
uniforms.clearcoatRoughnessMap.value = material.clearcoatRoughnessMap;
refreshTransformUniform( material.clearcoatRoughnessMap, uniforms.clearcoatRoughnessMapTransform );
}
if ( material.clearcoatNormalMap ) {
uniforms.clearcoatNormalMap.value = material.clearcoatNormalMap;
refreshTransformUniform( material.clearcoatNormalMap, uniforms.clearcoatNormalMapTransform );
uniforms.clearcoatNormalScale.value.copy( material.clearcoatNormalScale );
if ( material.side === BackSide ) {
uniforms.clearcoatNormalScale.value.negate();
}
}
}
if ( material.dispersion > 0 ) {
uniforms.dispersion.value = material.dispersion;
}
if ( material.iridescence > 0 ) {
uniforms.iridescence.value = material.iridescence;
uniforms.iridescenceIOR.value = material.iridescenceIOR;
uniforms.iridescenceThicknessMinimum.value = material.iridescenceThicknessRange[ 0 ];
uniforms.iridescenceThicknessMaximum.value = material.iridescenceThicknessRange[ 1 ];
if ( material.iridescenceMap ) {
uniforms.iridescenceMap.value = material.iridescenceMap;
refreshTransformUniform( material.iridescenceMap, uniforms.iridescenceMapTransform );
}
if ( material.iridescenceThicknessMap ) {
uniforms.iridescenceThicknessMap.value = material.iridescenceThicknessMap;
refreshTransformUniform( material.iridescenceThicknessMap, uniforms.iridescenceThicknessMapTransform );
}
}
if ( material.transmission > 0 ) {
uniforms.transmission.value = material.transmission;
uniforms.transmissionSamplerMap.value = transmissionRenderTarget.texture;
uniforms.transmissionSamplerSize.value.set( transmissionRenderTarget.width, transmissionRenderTarget.height );
if ( material.transmissionMap ) {
uniforms.transmissionMap.value = material.transmissionMap;
refreshTransformUniform( material.transmissionMap, uniforms.transmissionMapTransform );
}
uniforms.thickness.value = material.thickness;
if ( material.thicknessMap ) {
uniforms.thicknessMap.value = material.thicknessMap;
refreshTransformUniform( material.thicknessMap, uniforms.thicknessMapTransform );
}
uniforms.attenuationDistance.value = material.attenuationDistance;
uniforms.attenuationColor.value.copy( material.attenuationColor );
}
if ( material.anisotropy > 0 ) {
uniforms.anisotropyVector.value.set( material.anisotropy * Math.cos( material.anisotropyRotation ), material.anisotropy * Math.sin( material.anisotropyRotation ) );
if ( material.anisotropyMap ) {
uniforms.anisotropyMap.value = material.anisotropyMap;
refreshTransformUniform( material.anisotropyMap, uniforms.anisotropyMapTransform );
}
}
uniforms.specularIntensity.value = material.specularIntensity;
uniforms.specularColor.value.copy( material.specularColor );
if ( material.specularColorMap ) {
uniforms.specularColorMap.value = material.specularColorMap;
refreshTransformUniform( material.specularColorMap, uniforms.specularColorMapTransform );
}
if ( material.specularIntensityMap ) {
uniforms.specularIntensityMap.value = material.specularIntensityMap;
refreshTransformUniform( material.specularIntensityMap, uniforms.specularIntensityMapTransform );
}
}
function refreshUniformsMatcap( uniforms, material ) {
if ( material.matcap ) {
uniforms.matcap.value = material.matcap;
}
}
function refreshUniformsDistance( uniforms, material ) {
const light = properties.get( material ).light;
uniforms.referencePosition.value.setFromMatrixPosition( light.matrixWorld );
uniforms.nearDistance.value = light.shadow.camera.near;
uniforms.farDistance.value = light.shadow.camera.far;
}
return {
refreshFogUniforms: refreshFogUniforms,
refreshMaterialUniforms: refreshMaterialUniforms
};
}
refreshTransformUniform(map: any, uniform: any): void
¶
Parameters:
map
any
uniform
any
Returns: void
Calls:
map.updateMatrix
uniform.value.copy
Code
refreshFogUniforms(uniforms: any, fog: any): void
¶
Parameters:
uniforms
any
fog
any
Returns: void
Calls:
fog.color.getRGB
getUnlitUniformColorSpace (from ../shaders/UniformsUtils.js)
Code
refreshMaterialUniforms(uniforms: any, material: any, pixelRatio: any, height: any, transmissionRenderTarget: any): void
¶
Parameters:
uniforms
any
material
any
pixelRatio
any
height
any
transmissionRenderTarget
any
Returns: void
Calls:
refreshUniformsCommon
refreshUniformsToon
refreshUniformsPhong
refreshUniformsStandard
refreshUniformsPhysical
refreshUniformsMatcap
refreshUniformsDistance
refreshUniformsLine
refreshUniformsDash
refreshUniformsPoints
refreshUniformsSprites
uniforms.color.value.copy
Code
function refreshMaterialUniforms( uniforms, material, pixelRatio, height, transmissionRenderTarget ) {
if ( material.isMeshBasicMaterial ) {
refreshUniformsCommon( uniforms, material );
} else if ( material.isMeshLambertMaterial ) {
refreshUniformsCommon( uniforms, material );
} else if ( material.isMeshToonMaterial ) {
refreshUniformsCommon( uniforms, material );
refreshUniformsToon( uniforms, material );
} else if ( material.isMeshPhongMaterial ) {
refreshUniformsCommon( uniforms, material );
refreshUniformsPhong( uniforms, material );
} else if ( material.isMeshStandardMaterial ) {
refreshUniformsCommon( uniforms, material );
refreshUniformsStandard( uniforms, material );
if ( material.isMeshPhysicalMaterial ) {
refreshUniformsPhysical( uniforms, material, transmissionRenderTarget );
}
} else if ( material.isMeshMatcapMaterial ) {
refreshUniformsCommon( uniforms, material );
refreshUniformsMatcap( uniforms, material );
} else if ( material.isMeshDepthMaterial ) {
refreshUniformsCommon( uniforms, material );
} else if ( material.isMeshDistanceMaterial ) {
refreshUniformsCommon( uniforms, material );
refreshUniformsDistance( uniforms, material );
} else if ( material.isMeshNormalMaterial ) {
refreshUniformsCommon( uniforms, material );
} else if ( material.isLineBasicMaterial ) {
refreshUniformsLine( uniforms, material );
if ( material.isLineDashedMaterial ) {
refreshUniformsDash( uniforms, material );
}
} else if ( material.isPointsMaterial ) {
refreshUniformsPoints( uniforms, material, pixelRatio, height );
} else if ( material.isSpriteMaterial ) {
refreshUniformsSprites( uniforms, material );
} else if ( material.isShadowMaterial ) {
uniforms.color.value.copy( material.color );
uniforms.opacity.value = material.opacity;
} else if ( material.isShaderMaterial ) {
material.uniformsNeedUpdate = false; // #15581
}
}
refreshUniformsCommon(uniforms: any, material: any): void
¶
Parameters:
uniforms
any
material
any
Returns: void
Calls:
uniforms.diffuse.value.copy
uniforms.emissive.value.copy( material.emissive ).multiplyScalar
refreshTransformUniform
uniforms.normalScale.value.copy
uniforms.normalScale.value.negate
properties.get
_e1.copy
uniforms.envMapRotation.value.setFromMatrix4
_m1.makeRotationFromEuler
Internal Comments:
// accommodate left-handed frame (x4)
// environment maps which are not cube render targets or PMREMs follow a different convention (x4)
Code
function refreshUniformsCommon( uniforms, material ) {
uniforms.opacity.value = material.opacity;
if ( material.color ) {
uniforms.diffuse.value.copy( material.color );
}
if ( material.emissive ) {
uniforms.emissive.value.copy( material.emissive ).multiplyScalar( material.emissiveIntensity );
}
if ( material.map ) {
uniforms.map.value = material.map;
refreshTransformUniform( material.map, uniforms.mapTransform );
}
if ( material.alphaMap ) {
uniforms.alphaMap.value = material.alphaMap;
refreshTransformUniform( material.alphaMap, uniforms.alphaMapTransform );
}
if ( material.bumpMap ) {
uniforms.bumpMap.value = material.bumpMap;
refreshTransformUniform( material.bumpMap, uniforms.bumpMapTransform );
uniforms.bumpScale.value = material.bumpScale;
if ( material.side === BackSide ) {
uniforms.bumpScale.value *= - 1;
}
}
if ( material.normalMap ) {
uniforms.normalMap.value = material.normalMap;
refreshTransformUniform( material.normalMap, uniforms.normalMapTransform );
uniforms.normalScale.value.copy( material.normalScale );
if ( material.side === BackSide ) {
uniforms.normalScale.value.negate();
}
}
if ( material.displacementMap ) {
uniforms.displacementMap.value = material.displacementMap;
refreshTransformUniform( material.displacementMap, uniforms.displacementMapTransform );
uniforms.displacementScale.value = material.displacementScale;
uniforms.displacementBias.value = material.displacementBias;
}
if ( material.emissiveMap ) {
uniforms.emissiveMap.value = material.emissiveMap;
refreshTransformUniform( material.emissiveMap, uniforms.emissiveMapTransform );
}
if ( material.specularMap ) {
uniforms.specularMap.value = material.specularMap;
refreshTransformUniform( material.specularMap, uniforms.specularMapTransform );
}
if ( material.alphaTest > 0 ) {
uniforms.alphaTest.value = material.alphaTest;
}
const materialProperties = properties.get( material );
const envMap = materialProperties.envMap;
const envMapRotation = materialProperties.envMapRotation;
if ( envMap ) {
uniforms.envMap.value = envMap;
_e1.copy( envMapRotation );
// accommodate left-handed frame
_e1.x *= - 1; _e1.y *= - 1; _e1.z *= - 1;
if ( envMap.isCubeTexture && envMap.isRenderTargetTexture === false ) {
// environment maps which are not cube render targets or PMREMs follow a different convention
_e1.y *= - 1;
_e1.z *= - 1;
}
uniforms.envMapRotation.value.setFromMatrix4( _m1.makeRotationFromEuler( _e1 ) );
uniforms.flipEnvMap.value = ( envMap.isCubeTexture && envMap.isRenderTargetTexture === false ) ? - 1 : 1;
uniforms.reflectivity.value = material.reflectivity;
uniforms.ior.value = material.ior;
uniforms.refractionRatio.value = material.refractionRatio;
}
if ( material.lightMap ) {
uniforms.lightMap.value = material.lightMap;
uniforms.lightMapIntensity.value = material.lightMapIntensity;
refreshTransformUniform( material.lightMap, uniforms.lightMapTransform );
}
if ( material.aoMap ) {
uniforms.aoMap.value = material.aoMap;
uniforms.aoMapIntensity.value = material.aoMapIntensity;
refreshTransformUniform( material.aoMap, uniforms.aoMapTransform );
}
}
refreshUniformsLine(uniforms: any, material: any): void
¶
Parameters:
uniforms
any
material
any
Returns: void
Calls:
uniforms.diffuse.value.copy
refreshTransformUniform
Code
refreshUniformsDash(uniforms: any, material: any): void
¶
Parameters:
uniforms
any
material
any
Returns: void
Code
refreshUniformsPoints(uniforms: any, material: any, pixelRatio: any, height: any): void
¶
Parameters:
uniforms
any
material
any
pixelRatio
any
height
any
Returns: void
Calls:
uniforms.diffuse.value.copy
refreshTransformUniform
Code
function refreshUniformsPoints( uniforms, material, pixelRatio, height ) {
uniforms.diffuse.value.copy( material.color );
uniforms.opacity.value = material.opacity;
uniforms.size.value = material.size * pixelRatio;
uniforms.scale.value = height * 0.5;
if ( material.map ) {
uniforms.map.value = material.map;
refreshTransformUniform( material.map, uniforms.uvTransform );
}
if ( material.alphaMap ) {
uniforms.alphaMap.value = material.alphaMap;
refreshTransformUniform( material.alphaMap, uniforms.alphaMapTransform );
}
if ( material.alphaTest > 0 ) {
uniforms.alphaTest.value = material.alphaTest;
}
}
refreshUniformsSprites(uniforms: any, material: any): void
¶
Parameters:
uniforms
any
material
any
Returns: void
Calls:
uniforms.diffuse.value.copy
refreshTransformUniform
Code
function refreshUniformsSprites( uniforms, material ) {
uniforms.diffuse.value.copy( material.color );
uniforms.opacity.value = material.opacity;
uniforms.rotation.value = material.rotation;
if ( material.map ) {
uniforms.map.value = material.map;
refreshTransformUniform( material.map, uniforms.mapTransform );
}
if ( material.alphaMap ) {
uniforms.alphaMap.value = material.alphaMap;
refreshTransformUniform( material.alphaMap, uniforms.alphaMapTransform );
}
if ( material.alphaTest > 0 ) {
uniforms.alphaTest.value = material.alphaTest;
}
}
refreshUniformsPhong(uniforms: any, material: any): void
¶
Parameters:
uniforms
any
material
any
Returns: void
Calls:
uniforms.specular.value.copy
Math.max
Code
refreshUniformsToon(uniforms: any, material: any): void
¶
Parameters:
uniforms
any
material
any
Returns: void
Code
refreshUniformsStandard(uniforms: any, material: any): void
¶
Parameters:
uniforms
any
material
any
Returns: void
Calls:
refreshTransformUniform
Internal Comments:
Code
function refreshUniformsStandard( uniforms, material ) {
uniforms.metalness.value = material.metalness;
if ( material.metalnessMap ) {
uniforms.metalnessMap.value = material.metalnessMap;
refreshTransformUniform( material.metalnessMap, uniforms.metalnessMapTransform );
}
uniforms.roughness.value = material.roughness;
if ( material.roughnessMap ) {
uniforms.roughnessMap.value = material.roughnessMap;
refreshTransformUniform( material.roughnessMap, uniforms.roughnessMapTransform );
}
if ( material.envMap ) {
//uniforms.envMap.value = material.envMap; // part of uniforms common
uniforms.envMapIntensity.value = material.envMapIntensity;
}
}
refreshUniformsPhysical(uniforms: any, material: any, transmissionRenderTarget: any): void
¶
Parameters:
uniforms
any
material
any
transmissionRenderTarget
any
Returns: void
Calls:
uniforms.sheenColor.value.copy( material.sheenColor ).multiplyScalar
refreshTransformUniform
uniforms.clearcoatNormalScale.value.copy
uniforms.clearcoatNormalScale.value.negate
uniforms.transmissionSamplerSize.value.set
uniforms.attenuationColor.value.copy
uniforms.anisotropyVector.value.set
Math.cos
Math.sin
uniforms.specularColor.value.copy
Code
function refreshUniformsPhysical( uniforms, material, transmissionRenderTarget ) {
uniforms.ior.value = material.ior; // also part of uniforms common
if ( material.sheen > 0 ) {
uniforms.sheenColor.value.copy( material.sheenColor ).multiplyScalar( material.sheen );
uniforms.sheenRoughness.value = material.sheenRoughness;
if ( material.sheenColorMap ) {
uniforms.sheenColorMap.value = material.sheenColorMap;
refreshTransformUniform( material.sheenColorMap, uniforms.sheenColorMapTransform );
}
if ( material.sheenRoughnessMap ) {
uniforms.sheenRoughnessMap.value = material.sheenRoughnessMap;
refreshTransformUniform( material.sheenRoughnessMap, uniforms.sheenRoughnessMapTransform );
}
}
if ( material.clearcoat > 0 ) {
uniforms.clearcoat.value = material.clearcoat;
uniforms.clearcoatRoughness.value = material.clearcoatRoughness;
if ( material.clearcoatMap ) {
uniforms.clearcoatMap.value = material.clearcoatMap;
refreshTransformUniform( material.clearcoatMap, uniforms.clearcoatMapTransform );
}
if ( material.clearcoatRoughnessMap ) {
uniforms.clearcoatRoughnessMap.value = material.clearcoatRoughnessMap;
refreshTransformUniform( material.clearcoatRoughnessMap, uniforms.clearcoatRoughnessMapTransform );
}
if ( material.clearcoatNormalMap ) {
uniforms.clearcoatNormalMap.value = material.clearcoatNormalMap;
refreshTransformUniform( material.clearcoatNormalMap, uniforms.clearcoatNormalMapTransform );
uniforms.clearcoatNormalScale.value.copy( material.clearcoatNormalScale );
if ( material.side === BackSide ) {
uniforms.clearcoatNormalScale.value.negate();
}
}
}
if ( material.dispersion > 0 ) {
uniforms.dispersion.value = material.dispersion;
}
if ( material.iridescence > 0 ) {
uniforms.iridescence.value = material.iridescence;
uniforms.iridescenceIOR.value = material.iridescenceIOR;
uniforms.iridescenceThicknessMinimum.value = material.iridescenceThicknessRange[ 0 ];
uniforms.iridescenceThicknessMaximum.value = material.iridescenceThicknessRange[ 1 ];
if ( material.iridescenceMap ) {
uniforms.iridescenceMap.value = material.iridescenceMap;
refreshTransformUniform( material.iridescenceMap, uniforms.iridescenceMapTransform );
}
if ( material.iridescenceThicknessMap ) {
uniforms.iridescenceThicknessMap.value = material.iridescenceThicknessMap;
refreshTransformUniform( material.iridescenceThicknessMap, uniforms.iridescenceThicknessMapTransform );
}
}
if ( material.transmission > 0 ) {
uniforms.transmission.value = material.transmission;
uniforms.transmissionSamplerMap.value = transmissionRenderTarget.texture;
uniforms.transmissionSamplerSize.value.set( transmissionRenderTarget.width, transmissionRenderTarget.height );
if ( material.transmissionMap ) {
uniforms.transmissionMap.value = material.transmissionMap;
refreshTransformUniform( material.transmissionMap, uniforms.transmissionMapTransform );
}
uniforms.thickness.value = material.thickness;
if ( material.thicknessMap ) {
uniforms.thicknessMap.value = material.thicknessMap;
refreshTransformUniform( material.thicknessMap, uniforms.thicknessMapTransform );
}
uniforms.attenuationDistance.value = material.attenuationDistance;
uniforms.attenuationColor.value.copy( material.attenuationColor );
}
if ( material.anisotropy > 0 ) {
uniforms.anisotropyVector.value.set( material.anisotropy * Math.cos( material.anisotropyRotation ), material.anisotropy * Math.sin( material.anisotropyRotation ) );
if ( material.anisotropyMap ) {
uniforms.anisotropyMap.value = material.anisotropyMap;
refreshTransformUniform( material.anisotropyMap, uniforms.anisotropyMapTransform );
}
}
uniforms.specularIntensity.value = material.specularIntensity;
uniforms.specularColor.value.copy( material.specularColor );
if ( material.specularColorMap ) {
uniforms.specularColorMap.value = material.specularColorMap;
refreshTransformUniform( material.specularColorMap, uniforms.specularColorMapTransform );
}
if ( material.specularIntensityMap ) {
uniforms.specularIntensityMap.value = material.specularIntensityMap;
refreshTransformUniform( material.specularIntensityMap, uniforms.specularIntensityMapTransform );
}
}
refreshUniformsMatcap(uniforms: any, material: any): void
¶
Parameters:
uniforms
any
material
any
Returns: void
Code
refreshUniformsDistance(uniforms: any, material: any): void
¶
Parameters:
uniforms
any
material
any
Returns: void
Calls:
properties.get
uniforms.referencePosition.value.setFromMatrixPosition