我正处于一个艰难的选择中。 我想学习一种语言,可以帮助我创建具有强大的艺术/创意/图形组件的应用程序,并将其用于我的客户的商业项目。
我的第一选择是OpenGL ES,我认为它是“标准”的方式。 但是,与此同时,我发现了这个网站:http://www.creativeapplications.net/我找到了许多适用于ios的酷应用,大多数是使用OpenFramewors和Cinder构建的。
我的问题是:为什么选择这个2“包装器”而不是OpenGL?我需要了解利弊。
我不确定使用这些框架我可以以简单(和标准)的方式混合(对于OpenGL)UIKit / Cocoa和Graphics。目前我仍然更喜欢OpenGL,因为我知道这是苹果建议的方式(我的意思是......由Apple提出),我确信我也可以为我的客户利用它。虽然我不确定使用OF和Cinder我可以毫不费力地完全管理UIKit和Cocoa。
答案 0 :(得分:9)
正如Ruben所说,使用框架的好处是你没有重新发明轮子。 OpenGL没有很多你通常需要的类:矢量,矩阵,相机,颜色,图像等以及你需要使用它们的方法:规范化,算术,交叉产品等
当然你可以在OpenGL中实现所有这些,但如果有人之前完成过,为什么不只是利用它呢?您选择的框架或库将取决于您喜欢的实现。 OF会以不同的方式对Cinder做一些与另一个库不同的事情。
您不必使用框架提供的所有内容。如果您不喜欢基础应用程序(例如Cinder),您可以创建自己的上下文,而不仅仅是使用框架的3d数学库,或其图像库,或者您想要的任何其他部分。只需添加您想要的相关标题即可。
或者你可以使用一个3d数学库,如果你是如此倾向于一起消除框架。这使您可以更好地控制渲染管道,还可能减少应用程序的大小。
最终你选择的将取决于它的功能和你对特定风格的偏好。我建议你选择一个你习惯使用的框架或库,并且已经在生产中使用(除非你只是玩弄东西)。文档也很重要。如果文档/资源不是很好,我会回避使用某些东西。
当然,如果你想了解细节(从来都不是个坏主意),一定要自己编写图书馆。
答案 1 :(得分:7)
我认为选择OF和Cinder的主要优点是,您可以更好地专注于您的创作,而不是花费大量时间来处理OpenGL库。 Cinder甚至包括图像下载和记忆处理。但是,您必须耐心等待,因为这些框架现在正被导入iOS平台。
在几个月或几年内,每个人都会使用这些框架来抽象图形编程背后的所有东西,为他们带来充分的潜力和时间来制作艺术品!
答案 2 :(得分:3)
如果你不遗漏任何东西,我认为你可以单独使用OpenGL。
Cinder提供了一些额外的好东西,请参阅http://libcinder.org/features/。也许三角测量,加载系统字体,矩阵支持等对你来说可能很有意思。
Cinder的Tinderbox也使得创建新项目非常容易。
答案 3 :(得分:3)
现在Cinder和OF都完全支持iOS平台,您可以在iOS应用程序中轻松使用它们。
另请注意,这些框架是专门为设计师和创意艺术家/编码人员设计的,但OpenGL是处理图形硬件的技术标准。
答案 4 :(得分:3)
注意:我是这个框架的作者。
我花了一些时间创建Rend,一个基于Objective-C的iOS OpenGL ES 2.0框架。它重量轻,专注于纯渲染,可能适合某些项目。
此外,如果您正在创建自己的框架,则可以将其用于灵感和代码段。