English 中文(简体)
想在 iPhone 上显示 3D 模型: 如何开始?[已关闭]
原标题:
  • 时间:2009-01-05 17:49:25
  •  标签:
Closed. This question needs to be more focused. It is not currently accepting answers.
Closed 3 years ago.
Locked. This question and its answers are locked because the question is off-topic but has historical significance. It is not currently accepting new answers or interactions.

我想在iPhone上显示并旋转一个单独的3D模型,最好带纹理。不必缩放或拥有背景或任何其他功能。

我有以下的东西:

  • an iPhone
  • a MacBook
  • the iPhone SDK
  • Blender

我的知識庫:

  • I can make 3D models in various 3D programs (I m most comfortable with 3D Studio Max, which I once took a course on, but I ve used others)
  • General knowledge of procedural programming from years ago (QuickBasic - I m old!)
  • Beginner s knowledge of object-oriented programming from going through simple Java and C# tutorials (Head Start C# book and my wife s intro to OOP course that used Java)
  • I have managed to display a 3D textured model and spin it using a tutorial in C# I got off the net (I didn t just copy and paste, I understand basically how it works) and the XNA game development library, using Visual Studio on Windows.

我不知道的事情:

  • Much about Objective C
  • Anything about OpenGL or OpenGL ES, which the iPhone apparently uses
  • Anything about XCode

我的主要问题是我不知道从哪里开始!我找到的所有iPhone书籍似乎都是关于创建GUI应用程序,而不是OpenGL应用程序。我找到一本OpenGL书籍,但我不知道多少,如果有的话,适用于iPhone开发。我发现Objective C语法有些令人困惑,有奇怪的嵌套方法命名,像“id”这样没有意义的东西,以及可怕的想法我必须进行手动内存管理。

最好的开始位置在哪里?我找不到任何关于这种事情的教程,但也许我的谷歌能力不足。或者我应该开始学习Objective C吗?我知道有像Aaron Hillgrass这样的书,但我也听说它们已经过时,很多示例代码在iPhone SDK上不起作用,加上它似乎面向模型-视图-控制器范例,不太适合3D应用。

我基本上不确定我的第一步应该是什么。

最佳回答

你可能应该先从一些更简单的iPhone应用/教程开始,以便于你掌握Obj-C和Xcode等基础。

因此,我推荐实用程序员的iPhone书籍,该书籍具有足够的信息以开始使用(我开始时对xcode,obj-c,iPhone或mac一无所知,主要使用此方法很快就得到了一个可工作的应用程序)。然而,我应该补充说,我的C / C ++和Java背景相当不错。

对于您的特定项目,或许可以看看这个答案,它提到了一个可以查看并获得提示的开源3D应用。

问题回答

再次提醒一下,如果我可以宣传一下我的作品,我已经写了一篇关于我在iPhone上开发OpenGL ES应用程序所学习的知识的文章。该应用程序名为"Molecules"(由frankodwyer提到),是开放源代码的。我还写了一篇文章,介绍了我在开发它时遇到的一些其他棘手问题。该应用程序生成三维模型,可以用手指旋转和缩放,似乎很符合您的需求。您可以下载代码,在几分钟内将其编译并在桌面上运行。如果加入了iPhone开发人员计划,还可以在设备上安装它。

说到对象加载,比尔·达德尼正在为iPhone开发一个Wavefront OBJ加载器,如果您的Blender文件可以以该格式导出,他的加载器或许可以使用。我还没有在iPhone上进行过太多的纹理工作,但是据说他的示例已经可以工作了。

总的来说,我发现通过举例学习,并跳入一些小的有针对性的应用程序的开发(可能永远不会发布)是对我有用的。尝试调整上面列出的示例,并查看会发生什么。您应该能够阅读那些示例中的Objective-C代码,并开始感受到它们在做什么。

尽管Hillegass的书(第三版刚刚出版且最新)侧重于Mac,但他教授的Cocoa基础知识对iPhone仍然具有相关性。MVC设计模式在iPhone上和Mac上同样适用。实际上,在『分子』中我在一些地方偏离了这个模式,我后悔那个决定,因为应用程序的那些部分变成了一团糟。这本书易读且值得你花时间去读。

这是一篇古老的帖子,我非常迟到。但我仍然要在这里发表我的想法。

A Sneak Preview

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

我使用

  1. Blender to create 3D models. (You can use Maya or 3D Max, I will tell you how to export the model for Blender, same works for 3D Max and Maya).
  2. Cocos3D game engine.
  3. PVRGeoPOD blender extension from Imagination Technology to convert blender model to format that Cocos3D understand. You can see that the link downloads an installer file which in turns downloads the entire SDK. I can t see an easy way to download the blender extension alone.

所以,如果您不打算使用Cocos3D,您可以跳过这个答案,并继续推进。

Initial Setup

  1. 安装Blender。

    我不会进入细节而让你尴尬。

  2. 下载 Cocos3D..

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

  3. 下载Cocos2D。

    Cocos3D is written on top of popular Cocos2D, a popular 2D game framework. Important think to note here is that, Cocos2D 2.x version is already there and stable. But Cocos3D works with Cocos2d 1.x version only.

    When you unzip the source you downloaded you will find a README file inside and it specifically says,

    PLEASE NOTE THAT cocos3d 0.7.2 IS NOT COMPATIBLE WITH cocos2d 2.x. BE SURE TO DOWNLOAD cocos2d 1.x FOR USE WITH cocos3d.(emphasis mine)

    The README file clearly tells the installation procedure. After installation, you will get a nice Cocos3D project template in XCode.

  4. 将PVRGeoPOD扩展添加到Blender。

    This requires some explanation. When you run the PVRGeoPOD installer, a screen shows what and what features need to be installed. I only selected

    • PVRGeoPOD - 将我的.blend文件中的模型转换为Cocos3D理解的.POD格式。

    • PVRShaman-您可以使用此工具在.POD中查看模型。

    将此翻译成中文:输入图像描述

    您可以在列表中安装其他工具,但我只使用了这两个。

    Now after the installation process (which may take some time), you need to add the PVRGeoPOD AddOn to blender. You can find the PVRGeoPOD.UserManual.PDF file in the just installed folder, which also contains below information.

    • Find Blender Add-On folder, you can open blender python console and run command bpy.utils.script_paths("addons") to see the path to this folder.
    • Find the blender add-on files inside the PVRGeoPOD folder, in your installation path. When you see files like libPVRGeoPOD.dylib and PVRGeoPODScript.py and 2 QTfiles, stop there as this is the location. Copy these 4 files and paste them in blender add on folder.
    • Now open blender, choose Preferences, find Add-On tab, search and find PVRGeoPOD extension and enable it by clicking the checkbox on the right.
    • Now Quit and restart blender, if needed, and select file->export and see if there is an option called PVRGeoPOD(.pod/.h/.cpp), if yes,you are successful.

    Now you can create models in blender, and export these models as .POD files which Cocos3D understands.

    If you are using other 3D designing tools like Maya, 3D Max, this PVRGeoPOD extension can be added to them also. Just see the PDF I mentioned above.

Using in project

  1. 下面给出了逐步操作的步骤。

    Create your model in blender (.blend) and export it as .POD file. When you export I normally select following options

    • Primitive Type - Indexed Triangle List
    • Material tab - Check Export Material Option

    其余我都使用默认设置。

  2. Create a new project in XCode, choose Cocos3D template.
  3. Add the .POD files to your project. If yours a textured model, add that texture to your project also.
  4. The template project itself contains a HelloWorld.POD file, you can replace that line with your .POD file so that your model will be visible.

    [self addContentFromPODFile: @"YourPODFileName.pod"];
    

现在你的第一个3D模型在iOS设备上可见。

我正在尝试iPhone开发,只是为了好玩,买了Dave Mark和Jeff LaMarche合著的《Beginning iPhone Development》(ISBN13:978-1-4302-1626-1),并喜欢逐章学习。我以Win32 Delphi为背景,并具备一些.NET经验,因此Objective C对我来说很新颖。

其中一个章节涉及OpenGL和Quartz,这可能对您有兴趣。 我还没有走得那么远,所以我不能真正评论它对您有多大用处,但是写作风格非常易懂,步伐也很稳健(至少对我来说是这样)。

最初的章节详细解释了如何通过对Xcode和InterfaceBuilder的良好介绍来开始并运行。

对于 iOS 8 及更高版本,答案是 SceneKit。SceneKit 可以渲染 Collada (DAE) 文件。任何好的建模软件(如 Cheetah、Blender)都应该能够导出 DAE 文件,它是一种使用 XML 记录的可移植格式。(虽然 xCode 将它们编译成二进制格式以节省空间)。





相关问题
热门标签