three.js里的材质分类

three.js里的材质分类

一、基本材质

MeshBasicMaterial

一个以简单着色(平面或线框)方式来绘制几何体的材质
不受光照的影响

.color : Color
材质的颜色(Color),默认值为白色 (0xffffff)。

MeshLambertMaterial

一种非光泽表面的材质,没有镜面高光
只在顶点计算光照

.color : Color
材质的颜色(Color),默认值为白色 (0xffffff)。
.emissive : Color
材质的放射(光)颜色,基本上是不受其他光照影响的固有颜色。默认为黑色。

MeshPhongMaterial

一种用于具有镜面高光的光泽表面的材质。
Blinn-Phong模型来计算反射率
在每个像素计算光照

.color : Color
材质的颜色(Color),默认值为白色 (0xffffff)。
.emissive : Color
材质的放射(光)颜色,基本上是不受其他光照影响的固有颜色。默认为黑色。
.specular : Color
材质的高光颜色。默认值为0x111111(深灰色)的颜色Color。
.shininess : Float
.specular高亮的程度,越高的值越闪亮。默认值为 30。光泽度

二、2种基于物理渲染(Physically Based Rendering)的材质。Physically Based Rendering通常简称为PBR。

MeshStandardMaterial

一种基于物理的标准材质,使用Metallic-Roughness工作流程。

.roughness : Float
材质的粗糙程度。0.0表示平滑的镜面反射,1.0表示完全漫反射。默认值为1.0。
如果还提供roughnessMap,则两个值相乘。
.metalness : Float
材质与金属的相似度。非金属材质,如木材或石材,使用0.0,金属使用1.0,通常没有中间值。 
默认值为0.0。0.0到1.0之间的值可用于生锈金属的外观。如果还提供了metalnessMap,则两个值相乘。

MeshPhysicalMaterial

提供了更高级的基于物理的渲染属性

.clearcoat : Float
表示clear coat层[清漆光亮层]的强度,范围从0.0到1.0m,
当需要在表面加一层薄薄的半透明材质的时候,可以使用与clear coat相关的属性,默认为0.0;
.clearcoatRoughness : Float
clear coat层的粗糙度,由0.0到1.0。 默认为0.0

三、3种材质有特殊用途

ShadowMaterial

用于获取阴影创建的数据

MeshDepthMaterial

一种按深度绘制几何体的材质。深度基于相机远近平面。白色最近,黑色最远。

MeshNormalMaterial

一种把法向量映射到RGB颜色的材质。
绘制视图空间法线(相对于摄像机的法线)。x 是红色, y 是绿色, 以及 z 是蓝色

四、自定义材质

ShaderMaterial

自定义材质

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值