【问题标题】:How to learn and use OpenGL ES 2.0? I just don't get it - serious Qn. [closed]如何学习和使用OpenGL ES 2.0?我只是不明白-严重的Qn。 [关闭]
【发布时间】:2013-04-05 16:46:05
【问题描述】:

这是一个严肃的问题,在这一点上,我“卡”在理解它与完全不理解之间。我对阅读不同资源的时间感到非常困惑,希望有人能指出我正确的方向。

我正在使用 Android 平台,直到现在我使用过 Canvas,一些 OpenGL ES 1.0,但主要是通过引擎或已经构建的代码来尝试理解它。

我的目标是真正了解OpenGL ES 2.0。我不想直接进入复杂的东西并从简单的东西开始,但我就是不知道如何去做。我可以得到一个正方形,我可以设置一个相机和矩阵;说实话,我真的不了解整个矩阵系统以及它是如何工作的,如果我是对的,那是一个 fixed-function-pipeline,你不需要在 @987654325 中更改它@ 但现在它是一个可编程管道,你必须自己设置它。

我不知道如何使用坐标系,我知道原点是设备的中心,每转一圈到边缘是1,所以从中心到左边是负1。

但是有一些方法可以使它成为不同的坐标系,也许只是使用比例或乘法矩阵来将坐标设置为我习惯于 Canvas 的坐标。

基本上我需要帮助的是如何从这里取得进展?我觉得我好像到了某个地方,但我仍然无处可去。

我真的需要一些关于如何正确使用OpenGL ES 2.0 的建议,现在我计划的只是一个简单的 2D 游戏,也许还有横向卷轴游戏,所以我将不得不弄乱相机矩阵。

感谢您的宝贵时间,我将非常感谢您的帮助。

*我对变换矩阵不太感兴趣,因为我认为 2D 游戏不会真正使用它,也许只有当我镜像角色的精灵时,它看起来好像他正朝着不同的方向行走,但我'我很确定这可以通过改变坐标和宽度来简化。

【问题讨论】:

  • 如果你在做2D游戏,为什么要使用OpenGL ES 2.0? (我希望你知道为什么)你考虑过使用 AndEngine 吗? andengine.org
  • 我想使用 OpenGL ES 2.0,因为它对我未来的项目有好处,而且我目前计划开发的游戏是 2d,我在想为什么不使用打开 GL es 2.0 库并从中学习,我确实使用过 andengine,但您并不需要“知道”openGL ES 才能使用它,如果我没记错的话,它使用的是 1.0/1.1。长话短说,我想从一个简单的项目开始,也许最终得到一个能够创建 3d 和 2d 游戏的大型引擎。
  • 另外,对于矩阵和变换,良好的数学教育非常有用。
  • 我更喜欢直接使用 OpenGL ES 2.0,因为我会以这种方式学习它,而不仅仅是另一个引擎,因为最终我想制作自己的引擎,并且我希望它直接基于 OpenGL ES 2.0如果您理解我的意思,请按时满足我的需求,至于转换,我对数学非常擅长,并且总是尝试找到一种方法来改进和了解更多关于它的方法,但就目前而言,2d游戏并没有真正使用它,所以我保留它以备后用。
  • 具体来说,我现在想学习的主要是在2d空间中使用相机,以及如何在opengl游戏中改变视图和添加gui

标签: android opengl-es matrix opengl-es-2.0 game-engine


【解决方案1】:

我在 Khronos Group 网站上找到了这个网站:

Khronos resources还有一些你可以下载安卓的示例代码here

Zeus 网站有 25 个 OpenGL ES 2.0 代码,我认为它像 glut 教程的副本,但用于 ES 2.0。

我希望这可以简化事情,我正在努力学习 OpenGL ES 2.0,你可能会在未来看到我的许多关于 2.0 的帖子(提问),只是为了让你知道。

【讨论】:

  • 谢谢我去看看
  • 我看到大多数项目和源代码使用的不仅仅是 java。我想在没有 cpp 或类似的东西的情况下将 java 用于我的项目。
【解决方案2】:

那里缺乏像样的 openGL ES 2.0 Android / Java 特定教程,但它们就在某个地方。

看看这个,应该对你有帮助:-)

http://www.learnopengles.com/android-lesson-one-getting-started/

使用 OGL 制作 2d 游戏时,您基本上会忽略 z 轴,只使用 x 和 y。一开始会让人困惑,但坚持下去。

祝你好运。

【讨论】:

【解决方案3】:

您可以使用 Prateek Mehta 的 this book。一切都用非常简单的术语来解释。有助于理解基本的OpenGL ES 2.0 和GLSL 编程。

【讨论】:

    【解决方案4】:

    我发现this extended online tutorial 非常出色,不仅针对 OpenGL 细节,而且针对底层图形概念,这当然是困难的部分。非常清楚地展示了您通常会关注的不同坐标空间。

    【讨论】:

    【解决方案5】:

    这是一条漫长的道路,但朝着同一个目标可能会有不同的道路。其他海报已经描述了一些,但我相信通往GLES2 知识的最佳途径在于在建模程序中建模某些东西(blender,...)和在您的移动设备或台式计算机上重现相同结果之间的交互.只需在建模程序中建模某些东西,例如地形、海面……,可能不如专业建模师那样精美,然后使用GLES2 重现它。也许听起来很难,但根据我的经验,这是最好的方法。为了帮助您做到这一点,请在SO 上提问,阅读书籍,tuts,...

    【讨论】:

      【解决方案6】:

      我发现这个免费课程非常有趣。 它是关于 WebGL 的,但它根本不是特定的(我认为他们只是使用它,因为它简化了学习体验,因为你不需要设置任何东西)。讲师给出了很好的例子,并详细解释了这些概念背后的数学原理。

      https://www.udacity.com/course/cs291

      【讨论】:

        【解决方案7】:

        我是 OpenGL 的新手,在搜索教程时我发现这个网站为我提供了很大的帮助 A real Open GL ES 2.0 2D
        还要检查

        A real Open GL ES 2.0 2D tutorial part 1: Rendering a triangle
        A real Open GL ES 2.0 2D tutorial part 2: Rendering an Images
        A real Open GL ES 2.0 2D tutorial part 3: Handling Input
        A real Open GL ES 2.0 2D tutorial part 4: Transforming Images
        A real Open GL ES 2.0 2D tutorial part 5: Knowing the OpenGL texture system
        A real Open GL ES 2.0 2D tutorial part 6: Screens and dimensions
        A real Open GL ES 2.0 2D tutorial part 7: Texture Atlas
        A real Open GL ES 2.0 2D tutorial part 8: Rendering Text
        

        希望这个网站对大家有所帮助。
        上面介绍的其他网站也很有帮助。
        也检查一下。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-10-22
          • 2011-03-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多