我决定学习一些OpenGL ES 2.0,我正在尝试为它选择一个练习平台。什么是可能的目标平台,它可能是Android,iPhone或WebGL。但我不想花太多时间和精力来正确设置环境。
您是否会推荐使用WebGL快速启动OpenGL ES 2.0学习?
编辑:我正在使用Mac,目前我对ES 1.x并不感兴趣。
答案 0 :(得分:6)
如果您在iOS Developer Center(免费)注册为开发人员,则可以下载Xcode和iOS SDK(当您获得Xcode 3时再次免费下载),其中包括一个支持OpenGL ES 2.0的模拟器。这当然假设你有一台Mac可以运行它。
拥有SDK后,您只需启动Xcode并基于OpenGL ES Application模板创建新的应用程序。该应用程序将是一个功能齐全的OpenGL ES 1.1和2.0 iOS应用程序,您可以在模拟器中构建和运行。您可以忽略所有特定于iOS的设置代码,并专注于-drawFrame
类中的xxxViewController.m
方法,这是OpenGL ES 2.0绘图代码所在的位置。
这可以是设置用于使用OpenGL ES 2.0着色器的非常快速的环境。我也试过了Trenki建议的PowerVR SDK软件包,并且用它来设置一些东西需要更多一点。如果您使用的是Windows,那么解决方案将比我在此处描述的基于Mac的iOS SDK更加可行。
另一个可以在Mac上进行原型设计的着色器开发工具是Quartz Composer。它与Xcode一起提供,为各种效果提供可视化原型设计环境,包括OpenGL着色器。我在一篇写here的文章中展示了做这种原型的例子。桌面GLSL和OpenGL ES中的实现略有不同,但两者之间的差异很大。
虽然针对iOS,我最近在OpenGL ES 2.0上教了一门课程,作为可以免费下载from iTunes U的课程的一部分。它可能有助于加快着色器的速度。
答案 1 :(得分:3)
我建议你下载并设置Khronos OpenGL ES 2.0 SDKs for POWERVR SGX PC Emulation包(不幸的是你必须注册才能下载)。这使您可以在台式计算机上启动并运行所有内容,这将使您在调试时更轻松。然后,您可以使用C / C ++开发OpenGL ES 2.0应用程序。
如果我没弄错,我的Android手机(三星Galaxy S)也会使用这个OpenGL实现。
您也可以使用Mesa3D项目中的OpenGL ES 2.0库(Ubuntu将它们存储在存储库中),而不是使用Khronos SDK。它们工作正常,但我不推荐它们,因为我已经遇到了与Khronos SDK实现和我的Android设备不同的情况。
编辑:您还必须创建一个Window和一个OpenGL渲染上下文才能实际使用OpenGL。为此,我可以推荐SDL (1.3),它也有Android官方端口。我使用上面提到的SDK在Android和Ubuntu上进行了测试。它允许我为两者使用相同的代码。
答案 2 :(得分:1)
如果它用于游戏开发尝试使用框架,这样你就不必自己做婴儿步骤:-)。
这里有一些让你入门(我更喜欢 Android的:-)):
<强>的Android 强>
- Min3d
- Libgdx
- AndEngine
答案 3 :(得分:1)
如果你想学习OpenGL ES并且有一个mac我建议这本书:
http://iphone-3d-programming.labs.oreilly.com/(您可以在网上阅读,或者购买,我认为值得)
除了OpenGL本身,它还解释了一些数学知识,它显示了所有示例的OpenGL ES 1.1和2.0方式。
(根据你想要做的事情,有时1.1更容易,套装更好..在2.0中你总是需要着色器,即使你只想绘制一个三角形。)
答案 4 :(得分:0)
由于Raspberry Pi支持硬件加速的OpenGL ES 2.0,并且价格相当便宜,因此它可以成为一个很好的平台,用于测试(如果不是实际开发)。它基本上是上一代智能手机,没有手机位。如果您在其上安装Linux发行版(例如Debian),您就可以开箱即用。由于它是一个学习平台,因此非常适合此目的。你不会孤单,很多人都会把它们的脚趾浸入Open GL ES中。