如果在Three.js/WebGL中有两个平面,并且其中一个或两个都是透明的,有时后面的平面将被上面的透明平面隐藏.为什么是这样?
环境:WebGL,Chrome.使用透明png作为模型的纹理时,我有以下行为:
两个屏幕截图都是在同一场景中同时从不同的摄像头位置进行的.纹理由相同的算法产生.
我无法理解窗口和分支透明度之间的区别.我的主要问题是 - 如何修复分支以便不隐藏它们后面的对象?着色器代码是:
gl_FragColor = vec4(textureColor.rgb * vLightWeighting, textureColor.a);
Run Code Online (Sandbox Code Playgroud)
我玩启用/禁用混合和depth_test,有时得到想要的结果,但不确定它是否是正确的做事方式.
我使用three.js
如何控制渲染顺序?假设我有三个平面几何,并且想要以特定顺序渲染它们,而不管它们的空间位置如何.
谢谢
three.js ×2
webgl ×2
3d ×1
depth ×1
javascript ×1
optimization ×1
rendering ×1
textures ×1
transparency ×1
zbuffer ×1