# 材质效果
前面案例中几何体对应网格模型材质只是设置了一个颜色,实际渲染的时候往往会设置其他的参数,比如实现玻璃效果要设置材质透明度,一些光亮的表面要添加高光效果。
# MeshLambertMaterial
- 半透明效果
var sphereMaterial = new THREE.MeshLambertMaterial({
color: 0xff0000,
opacity: 0.7,
transparent: true,
wireframe: false
});
Lambert 材质常见属性
color: 材质颜色
wireframe: 是否渲染为线框,默认为 false
transparent: 是否开启透明,默认为 false
opacity: 不透明度,0 表示完全透明,1 表示完全不透明
# MeshPhongMaterial
- 高光效果
var sphereMaterial = new THREE.MeshPhongMaterial({
color: 0x0000ff,
specular: 0x4488ee,
shininess: 12
});
处在光照条件下的物体表面会发生光的反射现象,不同的表面粗糙度不同,宏观上来看对光的综合反射效果,可以使用 两个反射模型来概括,一个是漫反射,一个是镜面反射
Phong 材质常见属性
specular: 高光颜色
shininess: 反射系数
总结
构造函数 MeshLambertMaterial()实现漫反射进行渲染,高光效果要通过构造函数 MeshPhongMaterial()模拟镜面反射实现
# 材质类型
- MeshBasicMaterial 基础网格材质,不受光照影响的材质
- MeshLambertMaterial Lambert 网格材质,与光照有反应,漫反射
- MeshPhongMaterial 高光 Phong 材质,与光照有反应
- MeshStandardMaterial PBR 物理标准材质,相比较高光 Phong 材质可以更好的模拟金属、玻璃等效果
# MeshStandardMaterial
- 金属光泽
var sphereMaterial = new THREE.MeshStandardMaterial({
color: 0xcccccc
});