适用于Iphone的OpenGL ES

den*_*iss 5 iphone opengl-es

我对OpenGL没有任何经验,只是开始玩iPhone开发.从谷歌来看,似乎iphone使用了一种特殊类型的opengl(openGL ES).openGL ES支持哪些语言?我知道一点点C++但是现在我相信我的C和Objective-C比C++好.

No *_*lar 4

访问 OpenGL 与使用任何 C 库相同。如果你会用 C 语言编程,那么你就能处理 OpenGL。如果您熟悉向 Xcode 项目添加框架和库,那么您应该可以熟悉 OpenGL 项目。

请注意:OpenGL ES 并不是 iPhone 独有的。OpenGL ES 是 OpenGL 库的简化版本,适用于移动设备中较小的内存和较慢的处理器。其他手机(例如 Android)也使用它。

与标准 OpenGL 相比,OpenGL ES 的一大优点是它确实减少了桌面版本 OpenGL 的 API 调用数量。仅保留那些被认为必要的呼叫。如果有重复的方法来做同样的事情,那么就会删除一种方法。这意味着你需要学习的东西更少。

与标准 OpenGL 相比,OpenGL ES 的缺点是它确实减少了桌面版本 OpenGL 的 API 调用数量。当一次又一次研究如何在 OpenGL 中执行某些操作时,您会发现在桌面上执行此操作的很酷的方法,但几乎找不到如何在移动版本中执行此操作的信息。值得庆幸的是,随着移动开发变得越来越流行,这将不再是一个问题,并且已经有许多 OpenGL ES 书籍(请参阅 Munshi)出现。

此外,并非所有 OpenGL ES 都是相同的。粗略地说,您拥有 OpenGL ES 2.0 及其之前的版本,通常称为 OpenGL ES 1.x。两者之间最明显的区别是可编程管道(顶点和片段着色器)的集成。如果您使用 Xcode 创建一个基本的 OpenGL ES 项目,您会发现一个简单的示例,说明为了处理不同版本而需要进行的扭曲。

着色器代码本身是一种类似 C 的编程语言。虽然有一些怪癖,但很快就能学会并且非常有用。

你可以说我很奇怪,但我喜欢玩 OpenGL 和 ES 变体。这很困难,但回报是值得的,因为您将可以访问强大且有用的 API。希望您能够完成早期学习阶段并真正享受 OpenGL 带来的乐趣。