我想在iPhone上显示和旋转单个3D模型,最好是纹理。无需放大和缩小,或有背景或任何东西。
我有以下内容:
我的知识库:
我不知道的是:
我的主要问题是我不知道从哪里开始!我发现的所有iPhone书籍似乎都是关于创建GUI应用程序,而不是OpenGL应用程序。我找到了一本OpenGL书,但我不知道有多少(如果有的话)适用于iPhone开发。我发现Objective C语法有点混乱,奇怪的嵌套方法命名,像“id”这样没有意义的东西,以及我必须做手动内存管理的可怕想法。
最好的起点在哪里?我找不到任何这方面的教程,但也许我的Google-Fu很弱。或许我应该从学习Objective C开始?我知道像Aaron Hillgrass这样的书籍,但我也读到它们已经过时了,大部分示例代码都不适用于iPhone SDK,而且它似乎面向模型 - 视图 - 控制器范例而不是似乎适合3D应用程序。
基本上我对我的第一步应该是什么感到困惑。
答案 0 :(得分:39)
再一次,如果我可以插入自己的作品,我会written a post了解我在iPhone上开发OpenGL ES应用程序时学到的东西。该应用程序Molecules(由frankodwyer提到)是开源的,我对开发它时遇到的其他一些棘手问题有writeup。该应用程序生成三维模型,让您用手指旋转和缩放它们,这听起来很接近您的需要。您可以在几分钟内下载代码,编译代码并在桌面上运行代码。如果您加入iPhone开发人员计划,则可以将其安装在您的设备上。
当涉及到对象加载时,Bill Dudney正在处理Wavefront OBJ loader for the iPhone,如果它们可以以该格式导出,那么它们可以接收您的Blender文件。我还没有在iPhone上做过很多纹理工作,但听起来他的例子现在已经有效了。
总的来说,我发现通过实例学习并跳入一些小的,有针对性的应用程序(你可能永远不会发布)的开发对我有用。尝试调整上面列出的示例,看看会发生什么。您应该能够阅读这些示例中的Objective-C代码,并开始了解他们正在做的事情。
即使Hillegass的书(第三版刚刚出版并且是最新的)专注于Mac,他所教授的Cocoa基础知识仍然与iPhone相关。 MVC设计模式在iPhone上和Mac一样适合您。我实际上在Molecules的一些地方偏离了这种模式,我后悔这个决定,因为应用程序的那些部分变得一团糟。这本书很容易阅读,非常值得你花时间。
答案 1 :(得分:8)
你应该从一些更简单的iphone应用程序/教程开始,只是为了站在obj-c和xcode等基础上。
为此,我推荐实用程序员的iphone书,它有足够的信息可以开始(我开始时不了解xcode,obj-c,iphone或mac,并且相当快地使用了一个正在运行的应用程序,主要使用这个) 。但是我应该补充一点,我来自C / C ++和Java的相当好的背景。
对于您的特定项目,或许请查看this回答,该回答指的是您可以查看并获取提示的开源3D应用。
答案 2 :(得分:8)
这是一个古老的线索,我非常迟到。但我仍然要在这里张贴2便士。
在我进入野兽之前,这是我的设置。
我用
因此,如果您不打算使用Cocos3D ,您可以跳过此答案并继续运行。
安装 blender。
进入细节,我不会让你难堪。
下载 Cocos3D.。
当我输入时,当前版本为0.7.2。
下载 Cocos2D.
Cocos3D是在流行的2D游戏Cocos2D之上编写的 框架。重要的是要注意这里是Cocos2D 2.x版本 已经存在且稳定。但Cocos3D适用于Cocos2d 1.x. 仅限版本。
当您解压缩下载的源代码时,您将找到自述文件 里面,它具体说,
请注意 cocos3d 0.7.2与cocos2d 2.x不兼容。是 确定下载cocos2d 1.x以便与cocos3d一起使用。(强调我的)
README文件清楚地告诉安装过程。后 安装,您将在XCode中获得一个不错的Cocos3D项目模板。
将PVRGeoPOD扩展名添加到Blender。
这需要一些解释。运行PVRGeoPOD时 安装程序,屏幕显示需要的功能和功能 安装。我只选择了
PVRGeoPOD - 将我的.blend文件中的模型转换为Cocos3D理解的.POD格式
PVRShaman - 您可以使用此工具在.POD中查看模型。
您可以在列表中安装其他工具,但我只使用了这两个工具。
现在在安装过程之后(可能需要一些时间),你 需要将PVRGeoPOD AddOn添加到搅拌机。你可以找到 刚刚安装的文件夹中的 PVRGeoPOD.UserManual.PDF 文件,其中还包含以下信息。
bpy.utils.script_paths("addons")
来查看
此文件夹的路径。现在您可以在blender中创建模型,然后导出它们 模型为Cocos3D理解的.POD文件。
如果您正在使用Maya,3D Max等其他3D设计工具 PVRGeoPOD扩展也可以添加到它们中。只看PDF I 如上所述。
下面给出了一步一步的程序。
在blender(.blend)中创建模型并将其导出为.POD文件。 导出时我通常会选择以下选项
休息时我将其保留为默认值。
模板项目本身包含 HelloWorld.POD 文件 可以用.POD文件替换该行,以便您的模型可以 可见。
[self addContentFromPODFile: @"YourPODFileName.pod"];
现在,您可以在iOS设备中看到第一个3D模型。
答案 3 :(得分:6)
无耻插件
我为iPhone制作了一个小型AC3D渲染器。 Link>>
随意尝试一下,可以使用iPhone模拟器的演示库。请注意,iPhone上的OpenGLES性能与模拟器中的不同。
它使用优化阶段并构建tristrips并构建最终的顶点阵列以便能够在iPhone上运行。
观看quickstart如何使用
答案 4 :(得分:2)
这篇文章很老了,我认为现在有更好的资源来做你想做的事情。我也是一个初学者,但经过一些研究后我发现这个linke最有用:
http://38leinad.wordpress.com/2011/10/19/practical-blender-with-glkit-part-1-introducing-glkit/
它解释了glkit应该更容易处理OpenGL,它还包括一个很好的教程如何与Blender进行交互。
答案 5 :(得分:1)
我正在玩iPhone开发以获得一些乐趣,并购买了Dave Mark和Jeff LaMarche的开始iPhone开发(ISBN13:978-1-4302-1626-1),并且正在享受这些章节的工作。我有一个带有一点.NET的Win32 Delphi背景,因此Objective C对我来说是一个新手。
其中一章是OpenGL和Quartz,您可能会感兴趣。我还没有那么远,所以我无法评论它对你自己有多大用处,但写作风格非常方便,而且节奏也很好(无论如何)。
最初的章节详细解释了如何通过对Xcode和InterfaceBuilder的良好介绍来开始运行。
答案 6 :(得分:1)
对于iOS 8或更高版本的任何内容,答案是SceneKit。 SceneKit将呈现Collada(DAE)文件。任何体面的建模软件包(例如Cheetah,Blender)都应该导出DAE文件 - 它是XML格式的可记录的可移植格式(尽管xCode将它们编译成二进制格式以节省空间)。
答案 7 :(得分:0)
iphone的2个好3d sdks:
sio2interactive和oolong。
sio2interactive在他们的网站上有很棒的视频和src教程。它将有助于搅拌器和模型导出和渲染 - 让您正确进行游戏开发。对于sio2,src全部用于c,代码注释得非常好。这是一个开始学习3d和opengles的好地方。 Blender到sio2的出口是WYSIWYG。
从头开始做这一切,你必须知道如何自己导出和导入模型。所以这对于某人开始都很棒。
答案 8 :(得分:0)
使用Emcore3D-(https://github.com/Things3D/Emcore3D)
只需定义obj,mt和纹理的路径即可。
T3DModelPathInfo * newModelPath = [T3DModelPathInfo createModelPathInfoWithModelName:@“ model.obj”材料:@“ model.mtl”路径:@“ / 3DModels /”];
然后,使用T3DModelPathInfo创建一个T3DObject并将其添加到T3DRenderController。
T3DObject * newObject = [T3DObject initWithModelPathObject:newModelPath]; [renderVC addT3DObject:newObject];
ps:透露我是Emcore3D团队的成员