Three.js / WebGL - transparent planes hiding other planes behind them

前端 未结 6 512
梦毁少年i
梦毁少年i 2020-11-27 17:18

When you have two planes in Three.js / WebGL and one or both of them are transparent, sometimes the plane behind will be hidden by the transparent plane above. Why is this?<

6条回答
  •  囚心锁ツ
    2020-11-27 18:11

    This is not a bug, it's just how OpenGL (and, hence, WebGL) works. Transparent surfaces don't play well with the z-buffer, and as such must be manually sorted and rendered back-to-front. Three JS is attempting to do this for you (which is why the problem goes away when you set the X value > 0) but cannot robustly handle the case of intersecting geometry like you're showing.

    I've explained the issue more in-depth in a different SO question, so you may want to reference that.

提交回复
热议问题