想要在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便士。

一个潜行预览

在我进入野兽之前,这是我的设置。

我用

  1. 搅拌机来创build3D模型。 (您可以使用Maya或3D Max,我会告诉您如何导出Blender模型,3D Max和Maya也适用)。
  2. Cocos3D游戏引擎。
  3. 来自Imagination Technology的PVRGeoPOD搅拌机扩展 ,将搅拌机模型转换为Cocos3D能够理解的格式。 您可以看到链接下载一个安装程序文件,该文件轮stream下载整个SDK。 我看不到一个简单的方法来单独下载搅拌机扩展。

所以,如果你不打算使用Cocos3D ,你可以跳过这个答案,并运行你的钱。

初始设置

  1. 安装 搅拌器

    详细介绍我不会让你难堪。

  2. 下载 Cocos3D。

    当我input这个时,当前版本是0.7.2。

  3. 下载 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项目模板。

  4. 添加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.dylibPVRGeoPODScript.py和2 QTfiles这样的文件时,请停在那里,因为这是位置。 复制这4个文件并将其粘贴到搅拌机添加文件夹中。
    • 现在打开搅拌机,select首选项 ,find附加选项卡,search并findPVRGeoPOD扩展,并通过单击右侧的checkbox启用它。
    • 现在退出并重新启动搅拌器,如果需要的话,select文件 – >导出,看看是否有一个选项叫做PVRGeoPOD(.pod / .h / .cpp) ,如果是,则表示成功。

    现在,您可以在搅拌机中创build模型,并将这些模型导出为Cocos3D可以识别的.POD文件。

    如果您正在使用其他3Ddevise工具(如Maya,3D Max),则也可以将此PVRGeoPOD扩展添加到它们中。 只要看到我上面提到的PDF。

在项目中使用

  1. 一步一步的过程如下。

    在搅拌器(.blend)中创build模型并将其导出为.POD文件。 在导出时,通常select以下选项

    • 原始types – 索引的三angular形列表
    • 物料选项卡 – 检查导出物料选项

    剩下的我把它作为默认值。

  2. 在XCode中创build一个新项目,selectCocos3D模板。
  3. 将.POD文件添加到您的项目。 如果你有一个纹理模型,也可以将纹理添加到你的项目中。
  4. 模板项目本身包含一个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出口是所见即所得。

从头做所有这些,你将不得不知道如何自己导出和导入模型。 所以对于有人开始,这两个伟大的库。