OpenGL ES,OpenFrameworks,Cinder和IOS创意开发

我正处于一个艰难的选择中。 我想学习一种语言,可以帮助我创建具有强大的艺术/创意/图形组件的应用程序,并将其用于我的客户的商业项目。

我的第一选择是OpenGL ES,我认为它是“标准”的方式。 但是,与此同时,我发现了这个网站: http : //www.creativeapplications.net/我发现很多很酷的ios应用程序,对于大多数使用OpenFramewors和Cinder构建的应用程序。

我的问题是:为什么选择这个2“包装”而不是OpenGL? 我需要了解利弊。

我不确定使用这些框架我可以以简单(和标准)的方式混合(对于OpenGL)UIKit / Cocoa和Graphics。 目前我仍然更喜欢OpenGL,因为我知道这是苹果建议的方式(我的意思是……由Apple提出),我确信我也可以为我的客户利用它。 虽然我不确定使用OF和Cinder我可以毫不费力地完全管理UIKit和Cocoa。

正如Ruben所说,使用框架的好处是你不会重新发明轮子。 OpenGL没有很多你通常需要的类:矢量,矩阵,相机,颜色,图像等以及你需要使用的方法:规范化,算术,交叉产品等

当然你可以在OpenGL中实现所有这些,但如果有人之前完成过,为什么不只是利用它呢? 您选择的框架或库将取决于您喜欢的实现。 OF会以不同的方式对Cinder做一些与另一个库不同的事情。

您不必使用框架提供的所有内容。 如果您不喜欢基础应用程序(例如Cinder),您可以创建自己的上下文,而不仅仅是使用框架的3d数学库,或其图像库,或者您想要的任何其他部分。 只需添加您想要的相关标头即可。

或者,如果您愿意,可以使用3d数学库,并且一起使用框架。 这使您可以更好地控制渲染管道,还可以减少应用程序的大小。

最终你选择的将取决于它的function和你对特定风格的偏好。 我建议你选择一个你熟悉的框架或库,并且已经在生产中使用过(除非你只是玩弄东西)。 文档也很重要。 如果文档/资源不是很好,我会回避使用某些东西。

当然,如果你想了解细节(从来都不是坏主意),一定要自己编写库。

我认为选择OF和Cinder的主要优点是,您可以更好地专注于您的创作,而不是花费大量时间来处理OpenGL库。 Cinder甚至包括图像下载和记忆处理。 但是,您必须耐心等待,因为这些框架现在正被导入iOS平台。

在几个月或几年内,每个人都将使用这些框架来抽象图形编程背后的所有东西,为他们带来充分的潜力和时间来制作艺术品!

如果你不错过任何东西,我认为你可以单独使用OpenGL。

Cinder提供了一些额外的好东西,请参阅http://libcinder.org/features/ 。 也许三角测量,加载系统字体,矩阵支持等对您来说可能会很有趣。

此外,Cinder的Tinderbox使创建新项目变得非常容易。

现在Cinder和OF都完全支持iOS平台,您可以在iOS应用程序中轻松使用它们。

另请注意,这些框架是专门为设计师和创意艺术家/编码人员设计的,但OpenGL是处理图形硬件的技术标准。

注意:我是这个框架的作者。

我花了一些时间创建Rend,这是一个基于Objective-C的iOS OpenGL ES 2.0框架。 它重量轻,专注于纯渲染,可能适合某些项目。

此外,如果您正在创建自己的框架,您可以将其用于灵感和代码片段。

http://github.com/antonholmquist/rend-ios