[]带有透明通道贴图的3D物体的渲染顺序问题

场景情况,如图,
一段在Unity中做好的带有透明贴图的道路(黑色所示)以及粒子特效--A、B
 
在Laya中,AB的位置已经设置为道路的上方。
播放结果,特效A正常可见,但特效B被道路遮挡(此时从肉眼看来,B离摄像机更近,应该不会被下方的道路遮挡才对。)
 
经查源码laya.d3.js,发现透明物体的渲染顺序是由物体包围球的中心baseRender.boundingSphere.center距离相机的位置cameraPosition的距离决定的。
再查询,发现物体的包围球中心是通过物体的每一个顶点位置相加最后除以顶点数得到的。
也就是说,特效AB的包围球中心大约是各自的位置。而下方道路的包围球中心则是大约在道路的中间,图中xyz处。
导致在计算相机到物体的距离时,特效B比道路远,因此渲染排序后,被道路覆盖。
 
(因项目是公司项目,无法上传真实项目,只能画个示意图。)
我想知道我上述的是否正确,如果是的话,有没有什么好办法可以处理这种问题?谢谢了。
jietu1.jpg
已邀请:

Aar0n

赞同来自:

baserender   的 sortingfudge 会影响渲染顺序,
1.0 的引擎调整不了透明物体的渲染顺序,sortingfudge的值会产生影响,
2.0的引擎可以调整渲染顺序。

该问题目前已经被锁定, 无法添加新回复

商务合作
商务合作