Browse Source

MeshPhysicalMaterial: Renamed attenuation to attenuationTint. (#22211)

Mr.doob 4 years ago
parent
commit
062822f8f0

+ 5 - 5
editor/js/Sidebar.Material.js

@@ -135,16 +135,16 @@ function SidebarMaterial( editor ) {
 	const materialTransmission = new SidebarMaterialNumberProperty( editor, 'transmission', strings.getKey( 'sidebar/material/transmission' ), [ 0, 1 ] );
 	container.add( materialTransmission );
 
-	// attenuation
-
-	const materialAttenuation = new SidebarMaterialColorProperty( editor, 'attenuation', strings.getKey( 'sidebar/material/attenuation' ) );
-	container.add( materialAttenuation );
-
 	// attenuation distance
 
 	const materialAttenuationDistance = new SidebarMaterialNumberProperty( editor, 'attenuationDistance', strings.getKey( 'sidebar/material/attenuationDistance' ) );
 	container.add( materialAttenuationDistance );
 
+	// attenuation tint
+
+	const materialAttenuationTint = new SidebarMaterialColorProperty( editor, 'attenuationTint', strings.getKey( 'sidebar/material/attenuationTint' ) );
+	container.add( materialAttenuationTint );
+
 	// thickness
 
 	const materialThickness = new SidebarMaterialNumberProperty( editor, 'thickness', strings.getKey( 'sidebar/material/thickness' ) );

+ 3 - 3
editor/js/Strings.js

@@ -250,8 +250,8 @@ function Strings( config ) {
 			'sidebar/material/clearcoat': 'Clearcoat',
 			'sidebar/material/clearcoatroughness': 'Clearcoat Roughness',
 			'sidebar/material/transmission': 'Transmission',
-			'sidebar/material/attenuation': 'Attenuation',
 			'sidebar/material/attenuationDistance': 'Attenuation Distance',
+			'sidebar/material/attenuationTint': 'Attenuation Tint',
 			'sidebar/material/thickness': 'Thickness',
 			'sidebar/material/vertexcolors': 'Vertex Colors',
 			'sidebar/material/matcap': 'Matcap',
@@ -578,8 +578,8 @@ function Strings( config ) {
 			'sidebar/material/clearcoat': 'Vernis',
 			'sidebar/material/clearcoatroughness': 'Rugosité du vernis',
 			'sidebar/material/transmission': 'Transmission',
-			'sidebar/material/attenuation': 'Attenuation',
 			'sidebar/material/attenuationDistance': 'Attenuation Distance',
+			'sidebar/material/attenuationTint': 'Attenuation Tint',
 			'sidebar/material/thickness': 'Thickness',
 			'sidebar/material/vertexcolors': 'Couleurs aux Sommets',
 			'sidebar/material/matcap': 'Matcap',
@@ -906,8 +906,8 @@ function Strings( config ) {
 			'sidebar/material/clearcoat': '清漆',
 			'sidebar/material/clearcoatroughness': '清漆粗糙度',
 			'sidebar/material/transmission': 'Transmission',
-			'sidebar/material/attenuation': 'Attenuation',
 			'sidebar/material/attenuationDistance': 'Attenuation Distance',
+			'sidebar/material/attenuationTint': 'Attenuation Tint',
 			'sidebar/material/thickness': 'Thickness',
 			'sidebar/material/vertexcolors': '顶点颜色',
 			'sidebar/material/matcap': '材质捕获',

+ 1 - 1
examples/jsm/loaders/GLTFLoader.js

@@ -814,7 +814,7 @@ class GLTFMaterialsVolumeExtension {
 		materialParams.attenuationDistance = extension.attenuationDistance || 0;
 
 		const colorArray = extension.attenuationColor || [ 1, 1, 1 ];
-		materialParams.attenuation = new Color( colorArray[ 0 ], colorArray[ 1 ], colorArray[ 2 ] );
+		materialParams.attenuationTint = new Color( colorArray[ 0 ], colorArray[ 1 ], colorArray[ 2 ] );
 
 		return Promise.all( pending );
 

+ 1 - 1
src/loaders/MaterialLoader.js

@@ -84,8 +84,8 @@ class MaterialLoader extends Loader {
 		if ( json.clearcoatRoughness !== undefined ) material.clearcoatRoughness = json.clearcoatRoughness;
 		if ( json.transmission !== undefined ) material.transmission = json.transmission;
 		if ( json.thickness !== undefined ) material.thickness = json.thickness;
-		if ( json.attenuation !== undefined && material.attenuation !== undefined ) material.attenuation.setHex( json.attenuation );
 		if ( json.attenuationDistance !== undefined ) material.attenuationDistance = json.attenuationDistance;
+		if ( json.attenuationTint !== undefined && material.attenuationTint !== undefined ) material.attenuationTint.setHex( json.attenuationTint );
 		if ( json.fog !== undefined ) material.fog = json.fog;
 		if ( json.flatShading !== undefined ) material.flatShading = json.flatShading;
 		if ( json.blending !== undefined ) material.blending = json.blending;

+ 1 - 1
src/materials/Material.js

@@ -270,8 +270,8 @@ class Material extends EventDispatcher {
 		if ( this.transmissionMap && this.transmissionMap.isTexture ) data.transmissionMap = this.transmissionMap.toJSON( meta ).uuid;
 		if ( this.thickness !== undefined ) data.thickness = this.thickness;
 		if ( this.thicknessMap && this.thicknessMap.isTexture ) data.thicknessMap = this.thicknessMap.toJSON( meta ).uuid;
-		if ( this.attenuation !== undefined ) data.attenuation = this.attenuation.getHex();
 		if ( this.attenuationDistance !== undefined ) data.attenuationDistance = this.attenuationDistance;
+		if ( this.attenuationTint !== undefined ) data.attenuationTint = this.attenuationTint.getHex();
 
 		if ( this.size !== undefined ) data.size = this.size;
 		if ( this.shadowSide !== null ) data.shadowSide = this.shadowSide;

+ 3 - 3
src/materials/MeshPhysicalMaterial.js

@@ -22,8 +22,8 @@ import * as MathUtils from '../math/MathUtils.js';
  *
  *  thickness: <float>,
  *  thicknessMap: new THREE.Texture( <Image> ),
- *  attenuation: <Color>,
  *  attenuationDistance: <float>,
+ *  attenuationTint: <Color>,
  *
  *  specularIntensity: <float>,
  *  specularIntensityhMap: new THREE.Texture( <Image> ),
@@ -76,8 +76,8 @@ class MeshPhysicalMaterial extends MeshStandardMaterial {
 
 		this.thickness = 0.01;
 		this.thicknessMap = null;
-		this.attenuation = new Color( 1, 1, 1 );
 		this.attenuationDistance = 0.0;
+		this.attenuationTint = new Color( 1, 1, 1 );
 
 		this.specularIntensity = 1.0;
 		this.specularIntensityMap = null;
@@ -123,8 +123,8 @@ class MeshPhysicalMaterial extends MeshStandardMaterial {
 
 		this.thickness = source.thickness;
 		this.thicknessMap = source.thicknessMap;
-		this.attenuation.copy( source.attenuation );
 		this.attenuationDistance = source.attenuationDistance;
+		this.attenuationTint.copy( source.attenuationTint );
 
 		this.specularIntensity = source.specularIntensity;
 		this.specularIntensityMap = source.specularIntensityMap;

+ 1 - 1
src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js

@@ -23,7 +23,7 @@ export default /* glsl */`
 	vec3 transmission = transmissionFactor * getIBLVolumeRefraction(
 		normal, v, roughnessFactor, material.diffuseColor, material.specularColor,
 		pos, modelMatrix, viewMatrix, projectionMatrix, ior, thicknessFactor,
-		attenuation, attenuationDistance );
+		attenuationTint, attenuationDistance );
 
 	totalDiffuse = mix( totalDiffuse, transmission, transmissionFactor );
 #endif

+ 1 - 1
src/renderers/shaders/ShaderLib.js

@@ -303,8 +303,8 @@ ShaderLib.physical = {
 			transmissionSamplerMap: { value: null },
 			thickness: { value: 0 },
 			thicknessMap: { value: null },
-			attenuation: { value: new Color( 0x000000 ) },
 			attenuationDistance: { value: 0 },
+			attenuationTint: { value: new Color( 0x000000 ) },
 			specularIntensity: { value: 0 },
 			specularIntensityMap: { value: null },
 			specularTint: { value: new Color( 1, 1, 1 ) },

+ 1 - 1
src/renderers/shaders/ShaderLib/meshphysical_frag.glsl.js

@@ -16,8 +16,8 @@ uniform float opacity;
 #ifdef USE_TRANSMISSION
 	uniform float transmission;
 	uniform float thickness;
-	uniform vec3 attenuation;
 	uniform float attenuationDistance;
+	uniform vec3 attenuationTint;
 #endif
 
 #ifdef REFLECTIVITY

+ 1 - 1
src/renderers/webgl/WebGLMaterials.js

@@ -622,8 +622,8 @@ function WebGLMaterials( properties ) {
 
 		}
 
-		uniforms.attenuation.value.copy( material.attenuation );
 		uniforms.attenuationDistance.value = material.attenuationDistance;
+		uniforms.attenuationTint.value.copy( material.attenuationTint );
 
 		uniforms.specularIntensity.value = material.specularIntensity;
 		uniforms.specularTint.value.copy( material.specularTint );