更新于 

colorWrite && renderOrder

colorWrite && renderOrder

colorWrite

材质上的一个布尔值属性,用于判断是否绘制材质的颜色。
当colorWrite为false时,绘制的物体材质将从背景中取色,

renderOrder

控制物体绘制的层级,
绘制顺序为:低层级→高层级
绘制顺序决定了透明物体被绘制出来时,背景绘制的情况,
如果后方物体先于透明物体绘制,先绘制的物体会成为背景的一部分,
如果后方物体后于透明物体绘制,则后方物体则会被完全遮挡。

1
2
3
plane1Mesh.renderOrder = 2
plane2Mesh.renderOrder = 1
ringMesh.renderOrder = 0
1
2
3
plane1Mesh.renderOrder = 0
plane2Mesh.renderOrder = 2
ringMesh.renderOrder = 1

控制gltf模型的renderOrder

这一步和开启gltf模型阴影非常相似,
用到的是traverse方法:

1
2
3
4
model.traverse(m=>{
if(m.isObject3D){m.castShadow = true}
if(m.isMesh){m.renderOrder = 2}}
)
通过在门的左右两侧防止遮罩物体的方式,能够实现角色穿过门后消失的效果
通过在门的左右两侧防止遮罩物体的方式,能够实现角色穿过门后消失的效果

但是这种遮罩的效果存在一个问题:
无法遮盖住物体的影子(什么鬼故事)