用于Iphone的OpenGLES

用于Iphone的OpenGLES,iphone,opengl-es,Iphone,Opengl Es,我对OpenGL毫无经验,只是开始玩弄iPhone开发。从谷歌来看,iphone似乎使用了一种特殊类型的opengl(opengl ES)。openGL ES支持哪些语言?我知道一点C++,但现在我相信我的C和ObjuleC优于C++。我看了两个例子: SIO2(免费,但如果要将其包含在已发布的标题中,则需要支付许可费) 团结(更难学,但显然更灵活) 对于语言,大多数是C语言或C++语言。你可以混合使用Objective-C(简称Objective-C++),它可以很好地编译,但当你混合使用

我对OpenGL毫无经验,只是开始玩弄iPhone开发。从谷歌来看,iphone似乎使用了一种特殊类型的opengl(opengl ES)。openGL ES支持哪些语言?我知道一点C++,但现在我相信我的C和ObjuleC优于C++。我看了两个例子:

  • SIO2(免费,但如果要将其包含在已发布的标题中,则需要支付许可费)

  • 团结(更难学,但显然更灵活)


对于语言,大多数是C语言或C++语言。你可以混合使用Objective-C(简称Objective-C++),它可以很好地编译,但当你混合使用UIKit和OpenGL时,真正的麻烦就来了——只要你不这样做,你就可以使用任何你喜欢的语言。

访问OpenGL与使用任何C库都是一样的。如果你能用C语言编程,那么你就能处理OpenGL了。如果您熟悉将框架和库添加到Xcode项目中,那么您应该可以使用OpenGL项目

请注意:OpenGL ES并不是iPhone独有的。OpenGL ES是OpenGL库的简化版本,用于处理移动设备中较小的内存和较慢的处理器。像安卓这样的其他手机也使用它

与标准OpenGL相比,OpenGL ES的一个优点是它确实减少了桌面版OpenGL的API调用数量。只有那些被认为必要的电话才被保留。如果有重复的方法做同样的事情,那么一种方法被删除。这意味着你要学的东西少了

与标准OpenGL相比,OpenGL ES的缺点在于它确实减少了桌面版OpenGL的API调用数量。一次又一次地,当你研究如何在OpenGL中做一些事情时,你会发现一种在桌面上做这些事情的很酷的方法,但对于如何在移动版本中做这些事情,你几乎找不到任何东西。谢天谢地,随着移动开发变得越来越流行,这将不再是一个问题,而且已经有许多OpenGL ES书籍(见Munshi)出现

此外,并非所有OpenGL ESE都是相同的。大致上您有OpenGLES2.0和它之前的版本,通常称为OpenGLES1.x。这两者之间最明显的区别是可编程管道(顶点和片段着色器)的集成。如果您使用Xcode创建一个基本的OpenGL ES项目,您会发现一个简单的例子,说明为了处理不同的版本,需要经历哪些扭曲

着色器代码本身是一种类似C的编程语言。有一些怪癖,但这些是很快学会的,是相当有用的


叫我怪异,但我喜欢玩OpenGL和ES变体。这很难,但回报是值得的,因为您将获得一个强大而有用的API。希望您能够完成早期学习阶段,并真正享受OpenGL。

我不同意推荐最终依赖OpenGL的分层软件,因为它通常是给刚接触OpenGL的人的好建议。此外,混合使用UIKit和OpenGL的评论在误导和错误之间,没有进一步的解释/上下文。完全可以预期,iOS上的任何OpenGL开发人员都将同时使用UIKit和OpenGL。如果不使用UIKit,您无法在iOS中创建可见的绘图面。感谢您的反馈。请注意,我在5年前写下了这个答案。。。当时情况有点不同。可能不再相关了?