想学习如何在Objective-C中使用OpenGL,但不知道从哪里开始.救命?

Mic*_*ael 5 opengl cocoa objective-c

我没有使用OpenGL的经验和对Objective-C的少量经验,但我对C++相当不错.我应该考虑哪些资源来开始学习如何在Objective-C中使用OpenGL?

我在某处读过,从NSOpenGLView开始是一个好的开始.

Bra*_*son 18

老实说,你可能不需要知道很多Objective-C来处理OpenGL,只是C. OpenGL是基于C语言的,所以你不需要学习任何新的,语言方面的东西来处理它.当您计划使用Cocoa构建界面时,Objective-C知识才真正必要.即使这样,如果你来自一个可靠的C/C++背景,那么语言也不难发现.

我强烈推荐Matt第一个资源所依据的iPhone 3D Programming.即使您询问桌面OpenGL,本书涵盖OpenGL ES,但两个API之间共享很多内容.本书非常出色地介绍了简单的概念和基础知识,然后构建了更高级的主题,如环境映射和自定义着色器.作者使用C++作为本书的基础语言,因此您应该熟悉他所展示的最复杂的代码.OpenGL ES实际上是OpenGL的一个子集,因此几乎所有内容都可以转换为桌面.

在桌面Cocoa应用程序中,您有两种呈现OpenGL内容的方式:NSOpenGLView和CAOpenGLLayer.前者是较旧的NSView子类,您可以自定义以将渲染代码放入其中.后者是一个Core Animation CALayer,它也可以作为OpenGL渲染目标,但它可以让您在如何在OpenGL内容之上叠加其他项目时更灵活.为OpenGL渲染设置显示器不需要花费很多精力,大部分时间都花在OpenGL代码上.

您可能希望选择Apple的一些示例应用程序,例如GLSL Showpiece,Cocoa OpenGL,GLEssentialsCubePuzzle,以及它们在开发人员中心的其他OpenGL示例.


Mat*_*ing 6

鉴于您对C++的亲和力,可能是您最吸引人的资源.它涵盖了OpenGL ES 1.1和2.0,因此您将获得所有需要了解的信息.

就个人而言,我真的很喜欢这套教程,这些教程避免使用C++而且写得很好.它只涵盖1.1,但无论如何这可能是一个更容易开始的地方.