2012-12-18 52 views

回答

3

在某种程度上,您可以使用透视摄像机作为正视摄像机(设置位置,查看,向上)。最大的不同之处在于,视口大小(屏幕上显示的大小)取决于到物体的距离和视场角。有很多各地的网络理论,但得到的libgdx开始,你可以按照这个example

编辑:提供 示例使用GL 1.x的我还以为你只是不知道如何使用透视相机。你混淆了两个不同的问题。

  1. 如何操作相机(带摄像头型,无论GL版本而异),
  2. 如何申请相机(与GL版本的不同而不同,无论相机类型)。

要完成我的答案,一旦你更新你的相机(cam.update)insted的调用camera.apply(Gdx.gl10);你给的矩阵着色器 - 这将取决于你的着色器,但最简单的情况是这样的:

shader.setUniformMatrix("u_modelviewporj_mat", cam.combined); 
+0

如何在'render'方法中使用它?在'resize'方法中,我初始化它如下:float aspectRatio =(float)width /(float)height; camera =新的PerspectiveCamera(67,2f * aspectRatio,2f);然后我在渲染方法中旋转,翻译等。我怎样才能申请它?它需要GL10,但我需要GL20。它没有任何影响 – Nolesh

+1

要在OpenGL20中应用它,你必须更新它 - cam.update(),然后将它传递给着色器(就像正射相机一样)。模型视图投影矩阵将是cam.combined –

+0

如果您不知道如何在GLES 2.0中使用Ortho相机,可能应该编辑您的问题并询问如何在GLES 2.0中使用相机,因为没有区别在使用GLES 2.0中的正射或透视相机之间。 –