当前位置:  开发笔记 > 编程语言 > 正文

想在iPhone上显示3D模型:如何入门?

如何解决《想在iPhone上显示3D模型:如何入门?》经验,为你挑选了4个好方法。

我想在iPhone上显示和旋转单个3D模型,最好是纹理.无需放大和缩小,或有背景或任何东西.

我有以下内容:

一部iPhone

一台MacBook

iPhone SDK

搅拌机

我的知识库:

我可以在各种3D程序中制作3D模型(我最熟悉3D Studio Max,我曾经参加过课程,但我已经使用过其他课程了)

几年前程序编程的一般知识(QuickBasic - 我老了!)

初学者对面向对象编程的了解,包括简单的Java和C#教程(Head Start C#book和我妻子介绍的使用Java的OOP课程)

我已经设法显示一个3D纹理模型并使用C#中的教程旋转它我从网上下载(我不只是复制和粘贴,我基本上理解它是如何工作的)和XNA游戏开发库,使用Visual Studio视窗.

我不知道的是:

很多关于目标C.

关于OpenGL或OpenGL ES的任何东西,iPhone显然都使用它

有关XCode的任何信息

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

最佳起点在哪里?我找不到任何这方面的教程,但也许我的Google-Fu很弱.或许我应该从学习Objective C开始?我知道像Aaron Hillgrass这样的书,但我也读到它们已经过时了,大部分示例代码都不适用于iPhone SDK,而且它似乎面向模型 - 视图 - 控制器范例而不是似乎适合3D应用程序.

基本上我对我的第一步应该是什么感到困惑.



1> Brad Larson..:

再一次,如果我可以插上自己的作品,我已经写了一篇关于我在iPhone上开发OpenGL ES应用程序所学到的东西的帖子.该专利申请,分子(由frankodwyer简称),是开源和我有书面记录的一些我遇到了在开发它的另一棘手的问题.该应用程序生成三维模型,让您用手指旋转和缩放它们,这听起来很接近您的需要.您可以在几分钟内下载代码,编译代码并在桌面上运行代码.如果您加入iPhone开发人员计划,则可以将其安装在您的设备上.

在谈到对象加载时,Bill Dudney正在开发一款适用于iPhone的Wavefront OBJ加载程序,如果它们可以以该格式导出,那么它可以接收你的Blender文件.我还没有在iPhone上做过很多纹理工作,但听起来他的例子现在已经有效了.

总的来说,我发现通过实例学习并跳入一些小的,有针对性的应用程序(你可能永远不会发布)的开发对我有用.尝试调整上面列出的示例,看看会发生什么.您应该能够阅读这些示例中的Objective-C代码,并开始了解他们正在做什么.

虽然Hillegass的书(第三版刚刚出版并且是最新的)专注于Mac,但他所教授的Cocoa基础知识仍然与iPhone相关.MVC设计模式在iPhone上和Mac一样适合您.我实际上在Molecules的一些地方偏离了这种模式,我很遗憾这个决定,因为应用程序的那些部分变得一团糟.这本书很容易阅读,值得你花时间.



2> frankodwyer..:

你可能应该从一些更简单的iphone应用/教程开始,只是为了站在obj-c和xcode等基础上.

为此,我推荐实用的程序员的iphone书,它有足够的信息可以开始(我开始时不了解xcode,obj-c,iphone或mac,并且使用相当快的方式进入一个正常工作的应用程序).但是我应该补充一点,我来自C/C++和Java的相当好的背景.

对于您的特定项目,或许请查看此答案,该答案指的是您可以查看并从中获取提示的开源3D应用程序.


FWIW,此链接有效:http://web.archive.org/web/20100721184519/http://stackoverflow.com/questions/373202/iphone-apps-for-fun-and-profit

3> Krishnabhadr..:

这是一个古老的线索,我非常迟.但我仍然要在这里张贴2便士.

一个潜行预览

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

我用

    Blender创建3D模型.(您可以使用Maya或3D Max,我将告诉您如何为Blender导出模型,同样适用于3D Max和Maya).

    Cocos3D游戏引擎.

    Imagination Technology的PVRGeoPOD搅拌机扩展将blender模型转换为Cocos3D理解的格式.您可以看到该链接下载了一个安装程序文件,该文件依次下载整个SDK.我看不到单独下载blender扩展的简单方法.

因此,如果您不打算使用Cocos3D,您可以跳过此答案并运行您的资金.

初始设置

    安装 搅拌机.

    我不打算通过详细介绍让你难堪.

    下载 Cocos3D..

    当我输入时,当前版本是0.7.2.

    下载 Cocos2D.

    Cocos3D是在流行的2D游戏框架Cocos2D之上编写的.重要的是要注意这里,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安装程序时,屏幕会显示需要安装的功能和功能.我只选择了

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

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

    在此输入图像描述

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

    现在在安装过程之后(可能需要一些时间),您需要将PVRGeoPOD AddOn添加到blender.您可以在刚安装的文件夹中找到 PVRGeoPOD.UserManual.PDF文件,该文件还包含以下信息.

    找到Blender Add-On文件夹,你可以打开blender python console并运行命令bpy.utils.script_paths("addons")来查看这个文件夹的路径.

    在安装路径中的PVRGeoPOD文件夹中找到blender加载项文件.当您看到libPVRGeoPOD.dylibPVRGeoPODScript.py以及2个QTfiles 等文件时,请 停在那里,因为这是位置.复制这4个文件并将其粘贴到blender add on文件夹中.

    现在打开搅拌机,选择"首选项",找到" 附加"选项卡,搜索并查找PVRGeoPOD扩展,并通过单击右侧的复选框启用它.

    现在退出并重新启动blender,如果需要,选择file-> export并查看是否有一个名为PVRGeoPOD(.pod/.h/.cpp)的选项,如果是,则表示您成功.

    现在,您可以在blender中创建模型,并将这些模型导出为Cocos3D可以理解的.POD文件.

    如果您正在使用其他3D设计工具,如Maya,3D Max,也可以将这个PVRGeoPOD扩展添加到它们中.只需看看我上面提到的PDF.

在项目中使用

    下面给出了逐步程序.

    在blender(.blend)中创建模型并将其导出为.POD文件.导出时我通常会选择以下选项

    基元类型 - 索引三角形列表

    材料选项卡 - 选中导出材料选项

    我把它当作默认设置.

    在XCode中创建一个新项目,选择Cocos3D模板.

    将.POD文件添加到项目中.如果是纹理模型,也可以将该纹理添加到项目中.

    模板项目本身包含一个HelloWorld.POD文件,您可以将该行替换为.POD文件,以便您的模型可见.

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

现在,您可以在iOS设备中看到第一个3D模型.



4> epatel..:

无耻的插头

我为iPhone 制作了一个小型的AC3D渲染器.链接>>

随意尝试一下,可以使用iPhone模拟器的演示库.请注意,iPhone上的OpenGLES性能与模拟器中的不同.

它使用优化阶段并构建tristrips并构建最终的顶点阵列以便能够在iPhone上运行.

观看快速入门如何使用它

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有