想要在iPhone上显示3D模型:如何开始?
我想在iPhone上显示和旋转一个3D模型,最好是纹理。 不必放大或缩小,或有背景,或任何东西。
我有以下几点:
- 一个iPhone
- 一台MacBook
- iPhone SDK
- 搅拌机
我的知识基础:
- 我可以在各种3D程序中制作3D模型(我最喜欢的是3D Studio Max,我曾经学过这个课程,但是我用过其他的)
- 从几年前的程序编程的一般知识(QuickBasic – 我老了!)
- 初学者通过简单的Java和C#教程学习面向对象的编程知识(Head Start C#书籍和我妻子介绍的使用Java的OOP课程)
- 我已经设法显示一个三维纹理模型,并使用C#中的教程旋转它我下了网(我不只是复制和粘贴,我基本上了解它是如何工作的)和XNA游戏开发库,使用Visual Studio上视窗。
我不知道的是:
- 目标C很多
- 任何有关OpenGL或OpenGL ES,iPhone显然使用的东西
- 任何关于XCode
我的主要问题是,我不知道从哪里开始! 我发现的所有iPhone书籍似乎都是关于创buildGUI应用程序,而不是OpenGL应用程序。 我发现了一本OpenGL书,但是我不知道iPhone开发有多less,如果有的话。 而且我发现Objective C的语法有点混乱,怪异的嵌套方法命名,像“id”这样的东西没有意义,还有可怕的想法,我必须手动进行内存pipe理。
最好的地方在哪里开始? 我找不到任何这类的教程,但也许我的Google-Fu很弱。 或者,也许我应该从学习Objective C开始? 我知道像Aaron Hillgrass这样的书,但是我也读过他们已经过时了,大部分示例代码在iPhone SDK上都不起作用,再加上它似乎适用于Model-View-Controller范例似乎适合3D应用程序。
基本上我很困惑我的第一步应该是什么。
你可能应该从一些简单的iphone应用程序/教程开始,只是为了让你的立场在obj-c和Xcode等。
为此,我推荐实用的程序员的iphone书籍,它有足够的信息来开始(我不知道xcode,obj-c,iphone或者mac,并且以相当快的速度运行)。 不过,我应该补充一点,我来自C / C ++和Java的一个相当不错的背景。
对于您的特定项目,也许看看这个答案,这是指一个开源的3D应用程序,你可以看看,并从中获取技巧。
再一次,如果我可以插入自己的工作,我已经写了一篇关于在iPhone上开发OpenGL ES应用程序的知识。 那个应用程序, 分子 (由frankodwyer引用),是开源的,我对我在开发时碰到的一些其他棘手的问题进行了写作 。 该应用程序生成三维模型,让你旋转和缩放他们的手指,这听起来接近你的需求。 您可以下载代码,编译并在几分钟内在桌面上运行它。 如果您joiniPhone开发者计划,则可以将其安装在您的设备上。
当涉及到对象加载时, Bill Dudney正在研究iPhone的Wavefront OBJ加载器 ,可能能够接收Blender文件,如果它们可以以这种格式导出的话。 我还没有在iPhone上做过很多的纹理工作,但是现在看起来他的例子已经有了。
总的来说,我发现通过实例学习,并跳入一些小的,有针对性的应用程序(你可能永远不会释放)的发展是适合我的。 尝试调整上面列出的例子,看看会发生什么。 你应该能够通过这些例子中的Objective-C代码阅读,并开始感受他们在做什么。
尽pipeHillegass的书(第三版刚刚出版并且是最新版本)专注于Mac,但他所讲授的Cocoa基础知识仍然与iPhone相关。 MVCdevise模式在Mac上同样适用于iPhone。 实际上,我在分子中的一些地方偏离了这种模式,我对这个决定感到后悔,因为这些应用程序的这些部分变成了一团糟。 这本书是一个容易阅读,非常值得你的时间。
这是一个古老的线程,我非常晚。 但是我仍然要在这里贴2便士。
一个潜行预览
在我进入野兽之前,这是我的设置。
我用
- 搅拌机来创build3D模型。 (您可以使用Maya或3D Max,我会告诉您如何导出Blender模型,3D Max和Maya也适用)。
- Cocos3D游戏引擎。
- 来自Imagination Technology的PVRGeoPOD搅拌机扩展 ,将搅拌机模型转换为Cocos3D能够理解的格式。 您可以看到链接下载一个安装程序文件,该文件轮stream下载整个SDK。 我看不到一个简单的方法来单独下载搅拌机扩展。
所以,如果你不打算使用Cocos3D ,你可以跳过这个答案,并运行你的钱。
初始设置
-
安装 搅拌器 。
详细介绍我不会让你难堪。
-
下载 Cocos3D。 。
当我input这个时,当前版本是0.7.2。
-
下载 Cocos2D。
Cocos3D是stream行的Cocos2D,一个stream行的2D游戏框架之上写的。 这里重要的是要注意的是,Cocos2D 2.x版本已经在那里稳定了。 但是Cocos3D只适用于Cocos2d 1.x版本。
当你解压你下载的源代码时,你会发现里面有一个README文件,
请注意, cocos3d 0.7.2不兼容cocos2d 2.x。 一定要下载cocos2d 1.x以供cocos3d使用 (重点是我的)
README文件清楚地告诉安装程序。 安装完成后,您将在XCode中获得一个不错的Cocos3D项目模板。
-
添加PVRGeoPOD扩展到Blender。
这需要一些解释。 当您运行PVRGeoPOD安装程序时,屏幕会显示需要安装的function和function。 我只选了
-
PVRGeoPOD – 将我的.blend文件中的模型转换为Cocos3D能够理解的.POD格式
-
PVRShaman – 您可以使用此工具查看.POD内的模型。
您可以在列表中安装其他工具,但我只使用这两个。
现在在安装过程(可能需要一些时间)之后,您需要将PVRGeoPOD AddOn添加到搅拌器。 您可以在刚刚安装的文件夹中findPVRGeoPOD.UserManual.PDF文件,其中也包含以下信息。
- 查找Blender Add-On文件夹,可以打开blender python控制台并运行命令
bpy.utils.script_paths("addons")
查看该文件夹的path。 - 在您的安装path中查找PVRGeoPOD文件夹内的搅拌器附件文件。 当你看到像libPVRGeoPOD.dylib和PVRGeoPODScript.py和2 QTfiles这样的文件时,请停在那里,因为这是位置。 复制这4个文件并将其粘贴到搅拌机添加文件夹中。
- 现在打开搅拌机,select首选项 ,find附加选项卡,search并findPVRGeoPOD扩展,并通过单击右侧的checkbox启用它。
- 现在退出并重新启动搅拌器,如果需要的话,select文件 – >导出,看看是否有一个选项叫做PVRGeoPOD(.pod / .h / .cpp) ,如果是,则表示成功。
现在,您可以在搅拌机中创build模型,并将这些模型导出为Cocos3D可以识别的.POD文件。
如果您正在使用其他3Ddevise工具(如Maya,3D Max),则也可以将此PVRGeoPOD扩展添加到它们中。 只要看到我上面提到的PDF。
-
在项目中使用
-
一步一步的过程如下。
在搅拌器(.blend)中创build模型并将其导出为.POD文件。 在导出时,通常select以下选项
- 原始types – 索引的三angular形列表
- 物料选项卡 – 检查导出物料选项
剩下的我把它作为默认值。
- 在XCode中创build一个新项目,selectCocos3D模板。
- 将.POD文件添加到您的项目。 如果你有一个纹理模型,也可以将纹理添加到你的项目中。
-
模板项目本身包含一个HelloWorld.POD文件,您可以用.POD文件replace该行,以便您的模型可见。
[self addContentFromPODFile: @"YourPODFileName.pod"];
现在,您可以在iOS设备中看到您的第一个3D模型。
无耻的插头
我为iPhone制作了一个小型的AC3D渲染器。 链接>>
随意尝试一下,iPhone模拟器的演示库是可用的。 请注意,iPhone上的OpenGLES性能与模拟器中的性能不尽相同。
它使用一个优化阶段,并构build三angular形,并构build最终的顶点数组,以便能够在iPhone上运行。
快速看看如何使用它
这篇文章是相当古老,我认为现在有一个更好的资源做你想做的事情。 我也是一个初学者,但在做了一些研究后,我发现这是最有用的:
http://38leinad.wordpress.com/2011/10/19/practical-blender-with-glkit-part-1-introducing-glkit/
它解释了应该更容易处理OpenGL的glkit,它还包括一个很好的教程如何与Blender交互。
我正在玩一些有趣的iPhone开发,并购买了由Dave Mark和Jeff LaMarche开发的iPhone开发(ISBN13:978-1-4302-1626-1),并且正在享受各章的工作。 我有一个.NET的Win32 Delphi背景,所以Objective C对我来说是非常新的。
其中的一个章节是关于OpenGL和Quartz的,你可能会感兴趣的。 我还没有那么远,所以我不能真正评论它对你自己有多大用处,但是写作风格是非常方便的,而且它的节奏也很好(无论如何)。
最初的章节解释了如何通过对Xcode和InterfaceBuilder的良好介绍来熟悉运行。
对于任何iOS 8或更高版本,答案是SceneKit。 SceneKit将渲染Collada(DAE)文件。 任何体面的build模软件包(例如Cheetah,Blender)都应该导出一个DAE文件 – 这是一个logging在XML中的可移植格式(尽pipexCode将它们编译成二进制格式以节省空间)。
2个好的3D SDK为iPhone:
sio2interactive和乌龙。
sio2交互在他们的网站有伟大的video和src教程。 这将有助于搅拌机和模型出口和渲染 – 让你正确的游戏开发。 src全部用于sio2,代码评论得非常好。 这是一个开始学习3D和opengles的好地方。 搅拌器到sio2出口是所见即所得。
从头做所有这些,你将不得不知道如何自己导出和导入模型。 所以对于有人开始,这两个伟大的库。