2

我需要在 3D 世界中绘制透明的 2D 精灵。我尝试渲染一个 QUAD,对其进行纹理化(使用 slick_util)并旋转它以面对相机,但是当它们中有很多时,透明度并不能真正起作用。如果在它们之前渲染,最靠近相机的精灵将阻挡它后面的精灵。

我认为这是因为 OpenGL 只绘制离查看器最近的对象而不检查 alpha 值。这可以通过将它们从最远到最近进行排序来解决,但我不知道该怎么做,我不必使用 math.sqrt 来获得距离吗?(听说很慢)

我想知道是否有一种简单的方法可以让 3D 中的透明度正常工作。(在 OpenGL 中启用某些东西,例如)

4

1 回答 1

1

禁用深度测试并将透明几何体重新渲染到前面。

或者切换到添加剂混合,希望看起来不错。

或者使用深度剥离

于 2013-04-23T15:32:07.750 回答