据我所知,我们不能读取OpenGL ES 2.0中的Z(深度)值。所以我想知道如何从2D屏幕上的一个点获得3D世界坐标?
实际上,我有一些随机的想法可能会起作用。既然我们可以使用glReadPixels读取RGBA值,不如我们复制深度缓冲区并将其存储在颜色缓冲区(比如ColorforDepth)中。当然,需要一些很好的约定,这样我们才不会丢失深度缓冲区</
在我的OpenGL ES Android游戏中,我尝试按照z值(即z平面中的位置)按顺序绘制形状。这意味着首先绘制最小、最远的形状(纹理),然后绘制较大的形状。我已经将形状属性存储在一个数组列表中,在绘制和更新时,我使用了迭代器。) ... z = -31我使用Collections.sort(..)对此arrayList进行排序。对于每一帧和排序后,列表如下所示
obj (0) ... z