在旋转摄像头的时候,3d场景里面的墙面和地面老是会重叠

Cocos create3d 1.2 ,在旋转摄像头的时候,3d场景里面的墙面和地面老是会重叠



这是为什么类,要调整那些参数才好!

调调相机远近面,控制地板和墙的渲染顺序

按照您的思路去找了一些资料,有说是该zIndex 的
有的说是调用 node.setSiblingIndex 方法
但是试下来,还是没啥改变,请问有可以阅读的文档吗!

这位老哥说的是 camera 的 near far clip 调整,避免 z fighting 问题

参考
https://docs.cocos.com/creator/3.3/manual/zh/editor/components/camera-component.html?h=camera
https://docs.cocos.com/creator/3.3/manual/zh/editor/scene/#场景相机设置

我也碰到过类似的透视现象,删除物体重新添加后消除,但如果把材质的Technique选成:1-transparent,问题会更严重,还没找到解决方法。

谢谢 panda
1.首先把摄像机的 Far 参数从 1000 调到了 100,
2.其次把墙和地面的距离调整了下,让墙和地面尽量不挨着,但是又不能隔得太远不然墙和地面就有缝隙了,目前调了一个合适的值,就不会出现重叠了。
但是感觉这不是一个治标的方法,请问有什么更好的方法不

首先把摄像机的 Far 参数从 1000 调到了 100,
其次把墙和地面的距离调整了下,让墙和地面尽量不挨着,但是又不能隔得太远不然墙和地面就有缝隙了,目前调了一个合适的值,就不会出现重叠了。
但是感觉这不是一个治标的方法

我那个是把物体删除重新添加就好了,但是把材质的Technique选成:1-transparent,后,无论怎么重新加都会出现透视,而且更严重。感觉是有BUG吧。

像这种表现问题得发个截图

111


就是本来左侧的箱子的右面是被右侧箱子挡住看不到的,某一个角度左侧箱子右面就会显示出来,好像渲染的顺序比右侧箱子迟,遮挡到右侧箱子前了。

transparent 建议不要勾选 instancing,否则渲染顺序可能有问题,或者你手动设定材质 priority

instancing原来就没勾选,勾了后就任何角度都透出来了,还有priority调了好像也没用,因为两个箱子用的是同一个材质,调就等于两个箱子一起调了。

试了下两个方块用不同材质,也不行,哪个材质priority调高,哪个就会挡在前面,如果两个材质priority一样,就是某个角度会透出来,和使用同材质一样。把其中一个Technique改成opaque就不会出现遮挡了。试了3.1.1版本和3.3版本都一样
动画

两个都用transparent试试

出问题的就是两个都transparent,一个opaque一个transparent,或两个opaque都没问题。但两个opaque偶然碰见过一次,删除模型重新添加后正常了。

3.2 也存在这个问题

如果使用 opaque queue,会按照 center depth 和 material priority 进行排序,另外一般材质都会开启 depth write 会在 fragment 中写入深度值。这样就可以保障没有穿透问题。而 transparent 材质为了保障半透明像素的颜色混合正确性,一般不会写入和测试深度,所以完全按照渲染提交顺序进行渲染,在渲染不透明像素的时候自然会出现这种相互覆盖的情况(排序仍然按照 center depth 排序)

你的使用场景就应该用 opaque

应为想设置物体半透明度,所以用transparent模式,queue好像不能设置半透明透明度。

如果是这样的话最好保障变化的时候视角不变