Buckets:
ktongue/docker_container / simsite /frontend /node_modules /three /src /materials /MeshPhysicalMaterial.js
| import { Vector2 } from '../math/Vector2.js'; | |
| import { MeshStandardMaterial } from './MeshStandardMaterial.js'; | |
| import { Color } from '../math/Color.js'; | |
| import * as MathUtils from '../math/MathUtils.js'; | |
| class MeshPhysicalMaterial extends MeshStandardMaterial { | |
| constructor( parameters ) { | |
| super(); | |
| this.isMeshPhysicalMaterial = true; | |
| this.defines = { | |
| 'STANDARD': '', | |
| 'PHYSICAL': '' | |
| }; | |
| this.type = 'MeshPhysicalMaterial'; | |
| this.anisotropyRotation = 0; | |
| this.anisotropyMap = null; | |
| this.clearcoatMap = null; | |
| this.clearcoatRoughness = 0.0; | |
| this.clearcoatRoughnessMap = null; | |
| this.clearcoatNormalScale = new Vector2( 1, 1 ); | |
| this.clearcoatNormalMap = null; | |
| this.ior = 1.5; | |
| Object.defineProperty( this, 'reflectivity', { | |
| get: function () { | |
| return ( MathUtils.clamp( 2.5 * ( this.ior - 1 ) / ( this.ior + 1 ), 0, 1 ) ); | |
| }, | |
| set: function ( reflectivity ) { | |
| this.ior = ( 1 + 0.4 * reflectivity ) / ( 1 - 0.4 * reflectivity ); | |
| } | |
| } ); | |
| this.iridescenceMap = null; | |
| this.iridescenceIOR = 1.3; | |
| this.iridescenceThicknessRange = [ 100, 400 ]; | |
| this.iridescenceThicknessMap = null; | |
| this.sheenColor = new Color( 0x000000 ); | |
| this.sheenColorMap = null; | |
| this.sheenRoughness = 1.0; | |
| this.sheenRoughnessMap = null; | |
| this.transmissionMap = null; | |
| this.thickness = 0; | |
| this.thicknessMap = null; | |
| this.attenuationDistance = Infinity; | |
| this.attenuationColor = new Color( 1, 1, 1 ); | |
| this.specularIntensity = 1.0; | |
| this.specularIntensityMap = null; | |
| this.specularColor = new Color( 1, 1, 1 ); | |
| this.specularColorMap = null; | |
| this._anisotropy = 0; | |
| this._clearcoat = 0; | |
| this._iridescence = 0; | |
| this._sheen = 0.0; | |
| this._transmission = 0; | |
| this.setValues( parameters ); | |
| } | |
| get anisotropy() { | |
| return this._anisotropy; | |
| } | |
| set anisotropy( value ) { | |
| if ( this._anisotropy > 0 !== value > 0 ) { | |
| this.version ++; | |
| } | |
| this._anisotropy = value; | |
| } | |
| get clearcoat() { | |
| return this._clearcoat; | |
| } | |
| set clearcoat( value ) { | |
| if ( this._clearcoat > 0 !== value > 0 ) { | |
| this.version ++; | |
| } | |
| this._clearcoat = value; | |
| } | |
| get iridescence() { | |
| return this._iridescence; | |
| } | |
| set iridescence( value ) { | |
| if ( this._iridescence > 0 !== value > 0 ) { | |
| this.version ++; | |
| } | |
| this._iridescence = value; | |
| } | |
| get sheen() { | |
| return this._sheen; | |
| } | |
| set sheen( value ) { | |
| if ( this._sheen > 0 !== value > 0 ) { | |
| this.version ++; | |
| } | |
| this._sheen = value; | |
| } | |
| get transmission() { | |
| return this._transmission; | |
| } | |
| set transmission( value ) { | |
| if ( this._transmission > 0 !== value > 0 ) { | |
| this.version ++; | |
| } | |
| this._transmission = value; | |
| } | |
| copy( source ) { | |
| super.copy( source ); | |
| this.defines = { | |
| 'STANDARD': '', | |
| 'PHYSICAL': '' | |
| }; | |
| this.anisotropy = source.anisotropy; | |
| this.anisotropyRotation = source.anisotropyRotation; | |
| this.anisotropyMap = source.anisotropyMap; | |
| this.clearcoat = source.clearcoat; | |
| this.clearcoatMap = source.clearcoatMap; | |
| this.clearcoatRoughness = source.clearcoatRoughness; | |
| this.clearcoatRoughnessMap = source.clearcoatRoughnessMap; | |
| this.clearcoatNormalMap = source.clearcoatNormalMap; | |
| this.clearcoatNormalScale.copy( source.clearcoatNormalScale ); | |
| this.ior = source.ior; | |
| this.iridescence = source.iridescence; | |
| this.iridescenceMap = source.iridescenceMap; | |
| this.iridescenceIOR = source.iridescenceIOR; | |
| this.iridescenceThicknessRange = [ ...source.iridescenceThicknessRange ]; | |
| this.iridescenceThicknessMap = source.iridescenceThicknessMap; | |
| this.sheen = source.sheen; | |
| this.sheenColor.copy( source.sheenColor ); | |
| this.sheenColorMap = source.sheenColorMap; | |
| this.sheenRoughness = source.sheenRoughness; | |
| this.sheenRoughnessMap = source.sheenRoughnessMap; | |
| this.transmission = source.transmission; | |
| this.transmissionMap = source.transmissionMap; | |
| this.thickness = source.thickness; | |
| this.thicknessMap = source.thicknessMap; | |
| this.attenuationDistance = source.attenuationDistance; | |
| this.attenuationColor.copy( source.attenuationColor ); | |
| this.specularIntensity = source.specularIntensity; | |
| this.specularIntensityMap = source.specularIntensityMap; | |
| this.specularColor.copy( source.specularColor ); | |
| this.specularColorMap = source.specularColorMap; | |
| return this; | |
| } | |
| } | |
| export { MeshPhysicalMaterial }; | |
Xet Storage Details
- Size:
- 4.32 kB
- Xet hash:
- 8e06332a5bcfcd8aca49fba81340fc02f02d074e3eaa616d4d8323e90b5080f1
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.