Skip to content

MeshPhysicalMaterial

继承自MeshStandardMaterial

MeshStandardMaterial的扩展,提供了更高级的基于物理的渲染属性:

  • Clearcoat:有些类似于车漆,碳纤,被水打湿的表面的材质需要在面上再增加一个透明的,具有一定反光特性的面。而且这个面说不定有一定的起伏与粗糙度。Clearcoat可以在不需要重新创建一个透明的面的情况下做到类似的效果。

  • 基于物理的透明度

    • opacity属性有一些限制:在透明度比较高的时候,反射也随之减少。
    • 使用基于物理的透光性transmission属性可以让一些很薄的透明表面,例如玻璃,变得更真实一些。
  • 高级光线反射: 为非金属材质提供了更多更灵活的光线反射。

  • Sheen: 可用于表示布料和织物材料。

1.构造函数

js
const material = new THREE.MeshPhysicalMaterial(parameters: Object);

参数:

  • parameters:(可选)用于定义材质外观的对象,具有一个或多个属性。
    • 材质的任何属性都可以从此处传入(包括从Material继承的任何属性)。
    • 属性color例外,其可以作为十六进制字符串传递,默认情况下为 0xffffff(白色),内部调用Color.set(color)。

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。

3.方法

MIT Licensed