Closed. 这个问题不符合堆栈溢出指南 /help/closed-questions 。目前不接受答案。
我对 OpenGL 的经验为零,对 Objective-C 的经验也很少,但我对 C++ 的了解相当不错。我应该查看哪些资源来开始学习如何在 Objective-C 中使用 OpenGL?
我在某个地方读到,从 NSOpenGLView 开始是一个好的开始。
老实说,您可能不需要了解太多 Objective-C 来处理 OpenGL,只需了解 C。OpenGL 是基于 C 的,因此您不需要学习任何新的语言来处理它。仅当您计划使用 Cocoa 构建界面时,Objective-C 知识才是真正必要的。即便如此,如果您有扎实的 C/C++ 背景,学习该语言也不难。
我强烈推荐这本书iPhone 3D 编程 http://oreilly.com/catalog/9780596804831?cmp=il-orm-ofps-iphone3d 马特的第一个资源就是基于此。尽管您询问的是桌面 OpenGL,并且本书涵盖了 OpenGL ES,但这两个 API 之间有很多共享。这本书很好地从简单的概念和基础知识开始,然后扩展到更高级的主题,例如环境映射和自定义着色器。作者使用 C++ 作为本书的基础语言,因此即使是他展示的最复杂的代码,您也应该熟悉。 OpenGL ES 实际上是 OpenGL 的子集,因此几乎所有内容都可以转换到桌面。
在桌面 Cocoa 应用程序中,您有两种呈现 OpenGL 内容的方式:NSOpenGLView 和 CAOpenGLLayer。前者是一个较旧的 NSView 子类,您可以自定义它以将渲染代码放入其中。后者是一个核心动画 CALayer,也充当 OpenGL 渲染目标,但它为您在如何将其他项目叠加在 OpenGL 内容之上提供了更多的灵活性。为 OpenGL 渲染设置显示不会花费太多精力,您的大部分时间都花在 OpenGL 代码上。
您可能想要拆解一些 Apple 的示例应用程序,例如GLSL 展示品 http://developer.apple.com/library/mac/#samplecode/GLSLShowpiece/Introduction/Intro.html#//apple_ref/doc/uid/DTS10003935 , 可可OpenGL http://developer.apple.com/library/mac/#samplecode/CocoaGL/Introduction/Intro.html#//apple_ref/doc/uid/DTS10004501 , GL 必需品 http://developer.apple.com/library/mac/#samplecode/GLEssentials/Introduction/Intro.html#//apple_ref/doc/uid/DTS40010104 , and 立方体拼图 http://developer.apple.com/library/mac/#samplecode/CubePuzzle/Introduction/Intro.html#//apple_ref/doc/uid/DTS10000521 ,以及他们在开发人员中心的其他 OpenGL 示例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)