MeshPhysicalMaterial
MeshStandardMaterial的扩展,提供了更高级的基于物理的渲染属性:
Clearcoat:有些类似于车漆,碳纤,被水打湿的表面的材质需要在面上再增加一个透明的,具有一定反光特性的面。而且这个面说不定有一定的起伏与粗糙度。Clearcoat可以在不需要重新创建一个透明的面的情况下做到类似的效果。
基于物理的透明度:
opacity属性有一些限制:在透明度比较高的时候,反射也随之减少。- 使用基于物理的透光性
transmission属性可以让一些很薄的透明表面,例如玻璃,变得更真实一些。
高级光线反射: 为非金属材质提供了更多更灵活的光线反射。
Sheen: 可用于表示布料和织物材料。
1.构造函数
const material = new THREE.MeshPhysicalMaterial(parameters: Object);参数:
- parameters:(可选)用于定义材质外观的对象,具有一个或多个属性。
2.属性
共有属性见其基类Material
attenuationColor
类型:Color
白光到达衰减距离时由于吸收而变成的颜色。默认为白色(0xffffff)。
attenuationDistance
类型:Float
介质的密度,表示光在与粒子相互作用之前在介质中传播的平均距离。该值以世界空间单位给出,必须大于零。默认值为Infinity。
clearcoat
类型:Float
表示clear coat层的强度,范围从0.0到1.0m,当需要在表面加一层薄薄的半透明材质的时候,可以使用与clear coat相关的属性,默认为0.0;
clearcoatMap
类型:Texture
这个贴图的红色通道值会与.clearcoat相乘作为整个clear coat的强度值层,默认为null。
clearcoatNormalMap
类型:Texture
用于为clear coat层设置的独立的法线贴图,默认为null。
clearcoatNormalScale
类型:Vector2
衡量.clearcoatNormalMap影响clear coat层多少的值,由(0,0)到(1,1),默认为(1,1)。
clearcoatRoughness
类型:Float
clear coat层的粗糙度,由0.0到1.0。 默认为0.0
clearcoatRoughnessMap
类型:Texture
此纹理的绿色通道值会与.clearcoatRoughness相乘,用于改变clear coat的粗糙度,默认为null
defines
类型:Object
如下形式的对象:{ 'STANDARD': '' 'PHYSICAL': '', };WebGLRenderer使用它来选择shaders。
dispersion
类型:Float
定义通过相对清晰的体积传输的颜色角度分离(色差)的强度。任何值为零或更大都是有效的,现实值的典型范围是[0,1]。默认值为0(无色散)。此属性只能用于透射对象,请参阅. transmission。
ior
类型:Float
为非金属材质所设置的折射率,范围由1.0到2.333。默认为1.5。
reflectivity
类型:Float
反射率,由0.0到1.0。默认为0.5, 相当于折射率1.5。 这模拟了非金属材质的反射率。当metalness为1.0时,此属性无效。
sheen
类型:Float
光泽层的强度,范围是0.0到1.0。默认为0.0。
sheenRoughness
类型:Float
光泽层的粗糙度,由0.0到1.0。默认值是1.0。
sheenRoughnessMap
类型:Texture
此纹理的透明通道会与.sheenRoughness相乘,用于改变光泽层的粗糙度,默认为null;
sheenColor
类型:Color
光泽颜色,默认为0x000000黑色。
sheenColorMap
类型:Texture
此纹理的RGB通道会与.sheenColor光泽颜色相乘,最终作为光泽颜色结果,默认为null。
specularIntensity
类型:Float
用于控制非金属材质高光反射强度的浮点值。漫反射材质对应的值为0。范围从0.0到1.0。 默认值为1.0。
specularIntensityMap
类型:Texture
此纹理的alpha通道将与.specularIntensity相乘,用于逐像素地控制高光强度。默认值为null。
specularColor
类型:Color
非金属材质在垂直于法线方向观看时的高光反射颜色。默认值为0xffffff,白色。
specularColorMap
类型:Texture
此纹理的alpha通道将与.specularColor相乘,用于逐像素地控制高光颜色。默认值为null。
thickness
类型:Float
表面下体积的厚度。该值在网格的坐标空间中给出。如果该值为0,则材料是薄壁的。否则材料是体积边界。默认值为0。
thicknessMap
类型:Texture
定义厚度的纹理,存储在G通道中。这将乘以.厚度。默认为null。
transmission
类型:Float
透光率(或者说透光性),范围从0.0到1.0。默认值是0.0。 很薄的透明或者半透明的塑料、玻璃材质即便在几乎完全透明的情况下仍旧会保留反射的光线,透光性属性用于这种类型的材质。 当透光率不为0的时候, opacity透明度应设置为1.
transmissionMap
类型:Texture
此纹理的红色通道会与透光性.transmission相乘最为最终的透光性结果。默认为null。
