据我所知,我们不能读取OpenGL ES 2.0中的Z(深度)值。所以我想知道如何从2D屏幕上的一个点获得3D世界坐标?
实际上,我有一些随机的想法可能会起作用。既然我们可以使用glReadPixels读取RGBA值,不如我们复制深度缓冲区并将其存储在颜色缓冲区(比如ColorforDepth)中。当然,需要一些很好的约定,这样我们才不会丢失深度缓冲区的任何信息。然后当我们需要一个点的世界坐标时,我们将这个ColorforDepth颜色缓冲区附加到帧缓冲区,然后渲染它。因此,当我们使用glReadPixels读取这一帧的深度信息时。
然而,这将导致1帧闪烁,因为colorbuffer是从深度缓
我正在使用三个3D加载一个3D对象。有不同的加载器,一个是使用JSON文件,另一个是使用OBJ文件。我想知道使用JSON (示例1)而不是OBJ文件(示例2)是否有什么好处。
Example1 loading JSON:
var loader = new THREE.PlayCanvasLoader();
loader.load( './models/playcanvas/hand.json', function ( model ) {...
Example2 loading OBJ:
var loader =
如何在使用Android6.0上的OpenGL ES 2.0绘制的场景中触摸选择3D对象。我使用Min3D解析.3DS文件,并使用OpenGL ES 2.0和GLSurfaceView类加载到Android View。我可以加载3D模型;但我不知道如何使用鼠标点击/触摸来选择3D对象的每个部分。
例如:我有一个汽车的3D模型,我需要触摸选择汽车的每个部分,比如车门;并改变它的颜色/纹理。
建议是否有更简单的方法来完成相同的功能。