【问题标题】:LibGDX - Perspective camera using OpenGL ES 2.0LibGDX - 使用 OpenGL ES 2.0 的透视相机
【发布时间】:2012-12-05 12:58:44
【问题描述】:

我没有找到任何在 LibGDX(OpenGL ES 2.0) 中使用透视相机的示例。如何启动它并在渲染方法中使用它?任何帮助将不胜感激!

【问题讨论】:

    标签: android 3d opengl-es-2.0 libgdx perspectivecamera


    【解决方案1】:

    在某种程度上,您可以使用透视相机作为正射相机(设置位置、查看、向上矢量)。一个很大的区别是视口大小(您在屏幕上看到的内容)由到对象的距离和视场角决定。网上有很多理论,但要开始使用 libgdx,您可以关注example

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

    1. 如何操作相机(因相机类型而异,与 GL 版本无关),
    2. 如何应用相机(因 GL 版本而异,与相机类型无关)。

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

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

    【讨论】:

    • 如何在render方法中使用?在resize 方法中,我像下面这样初始化它:float aspectRatio = (float) width / (float) height; camera = new PerspectiveCamera(67, 2f * aspectRatio, 2f);然后我在渲染方法中旋转、翻译它等等。我该如何应用它?它需要GL10,但我需要GL20。没有任何影响
    • 要在 OpenGL20 中应用它,您必须更新它 - cam.update()-,然后将其传递给着色器(就像正射相机一样)。模型视图投影矩阵将是 cam.combined
    • 如果您也不知道如何在 GLES 2.0 中使用 Ortho 相机,可能您应该编辑您的问题并询问如何在 GLES 2.0 中使用相机,因为使用GLES 2.0 中的正交或透视相机。
    • 有很多关于 libGdx 摄像头的示例,但它们用于 GLES 1.0 - 1.1。感谢您的第一条评论!它很有用,也许可以回答我的问题!
    • 不客气!我很高兴它有帮助,我编辑了我的答案以澄清和区分这两个问题
    猜你喜欢
    • 2012-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多