将 Maya 模型导入 iPhone

2023-12-02

做这个的最好方式是什么?谷歌搜索向我展示了很多方法,但目前最好的方法是什么?我很高兴能从 Maya 导出模型并在 iPhone 屏幕上渲染,但如果有一种方法可以渲染它,然后支持捏合缩放等,我会很兴奋。

非常感谢,今天刚刚完成我的第一堂 3D 建模课程,我很兴奋!


我刚刚为 iPhone 和 iPad 编写了一个全功能的模型查看器和操纵器。基本上,我只是编写了自己的文件解析器来存储顶点数组,然后在渲染循环中我只渲染数组。虽然二进制文件的读取速度比 .obj 文件快得多,但操作起来相当简单。这样,您可以打开任何文件,而不仅仅是您“处理”的文件。互联网上也有很多例子。

EDIT:

只需将顶点放入紧密排列的数组中即可:

vertexX, vertexY, vertexZ, normalX, normalY, normalZ

这样你就有了一个一维浮点数组,但像上面一样映射出来。一旦有了浮点数组,渲染就很简单了。

glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY);
        
glVertexPointer(3, GL_FLOAT, sizeof(vertices[0])*6, &vertices[0]);
glNormalPointer(GL_FLOAT, sizeof(vertices[0])*6, &vertices[3]);
        
glColor4f(R, G, B, 1); //range 0-1
glDrawArrays(GL_TRIANGLES, 0, numVertices); //number of floats in array divided by 6
        
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);

然后将其放入 OpenGL-ES 1.1 渲染循环中。让我知道这是否适合您。

EDIT2:

只是向您澄清一下,如果您在文本编辑器中打开 OBJ 文件,它的布局如下:

list of vertices
list of texture coordinates
list of normals
list of faces

并且面孔列表以相同的顺序引用其他三个列表中的索引。例如,一行可能如下所示:

f 16/4/1  4/4/4  1/1/1

表示面的第一个顶点引用顶点索引 16、纹理索引 4 和法线索引 1。第二个索引引用顶点的索引 4、纹理的索引 4 和法线的索引 4 等。然后,您只需解析面并将正确的值从不同的数组中提取到一个包含基于顶点和法线的浮点数组中。面指数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Maya 模型导入 iPhone 的相关文章

  • iPhone Simulator - 模拟慢速连接?

    有没有办法减慢 iPhone 模拟器的互联网连接速度 以便模拟当您处于蜂窝网络速度较慢的位置时应用程序的反应 如何安装 Apple 的网络链接调节器 这些说明截至 2019 年 10 月有效 警告 如果您刚刚升级到新版本的 macOS 确保
  • 使用 UIImagePickerController 选择图像后,照片库视图保留在屏幕上

    当我通过 UIImagePickerController 界面从照片库中选择一张图片后 照片库视图保持显示 即使我调用了解雇模型视图控制器动画 in imagePickerController didFinishPickingImage e
  • 在哪里可以找到“get-pip.py”下载链接?

    作为教程的一部分 我尝试下载 pip py 但链接现在不同了 我找不到可以下载 pip 的按钮 这是我得到的链接 https pip pypa io en stable installing cmdoption no setuptools
  • iOS - 自动调整 CVPixelBufferRef 的大小

    我正在尝试裁剪和缩放CMSampleBufferRef基于用户的输入 基于ratio 下面的代码采用 CMSampleBufferRef 将其转换为 CVImageBufferRef 并使用 CVPixelBuffer 根据其字节裁剪内部图
  • 处于编辑模式时滑动即可删除

    我有一个使用 uitableview 的 iPhone 应用程序 我希望始终显示 重新排序 控件 并让用户滑动以删除行 我目前采取的方法是将表格视图置于编辑模式并允许在编辑模式下进行选择 self tableView editing YES
  • iPhone应用程序崩溃错误访问异常DataDetectorsCore processToken

    我的 iPhone 应用程序在客户端设备上的 ios 7 0 iphone 5s 上崩溃 我无法弄清楚它出了什么问题 我正在使用 crashlytics 进行崩溃报告 Crashlytics 报告由于线程 9 DataDetectorsCo
  • 如何降低iphone的sdk Audioqueue的声音?

    我正在使用 Aran Mulhollan 的 RemoteIOPlayer 在 SDK iphone 中使用音频队列 我可以毫无问题 添加两个信号来混合声音 通过乘以从 wav 文件中获得的 UInt32 来增加音量 但所有其他操作都会给我
  • 我如何知道网页视图已加载完成

    我有网络视图 因为我正在加载pdf文件 pdf 文件大小为 2 mb 因此需要时间 我想添加指标 为此 我如何知道我的文件已加载到网络视图中 UIWebView 委托 http developer apple com library ios
  • 将 NSString 的 NSArray 转换为 NSNumber 的更好方法

    考虑下面的代码 NSString param string 1 3 6 10 15 22 28 30 NSArray params param string componentsSeparatedByString NSNumberForma
  • 如何在iPhone应用程序中的类结构中实现主键和外键表数据[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如何连接sqlite数据库中的两个表数据 if sqlite3 open dbPath UTF8String database SQL
  • 当用户到达 UITableView 的最后一行时,如何动态添加行?

    我有一个UITableview当前显示 10 行 固定为静态 现在我想在其中添加一个功能 当用户到达最后一行时 我想向表中添加更多 10 行UITableView 我的意思是目前我在应用程序中显示固定的 10 行 但现在我想在用户到达上一个
  • 从视频创建缩略图 - 提高速度性能 - AVAsset - iPhone [重复]

    这个问题在这里已经有答案了 我正在使用基于以下线程中的代码的代码来生成视频缩略图 从 iPhone SDK 中的视频 URL 或数据获取缩略图 https stackoverflow com questions 1347562 gettin
  • iPhone iOS 保存从 UIImageJPEGRepresentation() 获得的数据第二次失败:ImageIO: CGImageRead_mapData 'open' failed

    我的 UIImage 操作遇到了一个奇怪的问题 我正在进行保管箱同步 并且必须将我的图像存储为本地文件 为此 我使用以下命令保存它们UIImagePNGRepresentation image or UIImageJPEGRepresent
  • 如何在 iOS 中查找蓝牙音频设备

    好的 我正在开发一个有趣的项目 该项目有一个障碍 我需要为我的 iOS 应用程序启用蓝牙音频支持 我遇到的障碍是我什至无法开始获取已连接的蓝牙音频设备的列表 即使我的 iPhone 5S 可以识别我的耳机 大约 3 4 岁的耳机 LG HB
  • 如何建立辅助NSSortDescriptor排序键?

    我已成功按排序键对数据进行排序lastName 但我想知道如何排序lastName 然后由firstName 这是我用来排序的代码lastName NSSortDescriptor sortDescriptor NSSortDescript
  • Objective-C:在哪里定义宏以便随处可用?

    我有一个 iOS 应用程序 它在许多视图控制器中使用相同的字符串 数字等 所以我认为最好在一个文件中定义这些常量并在所有视图控制器实现中使用它 优点是更改一个数字 我只需要做一次 而不是在所有视图控制器中都使用该数字 实际上 我的 h 文件
  • iPhone 中的 NSNotification

    我正在将 NSSNotifcation 发送到 iPhone 应用程序中的另一个视图控制器 但它的观察者方法收到两次通知 这可能如何 任何人都可以指导我 我已经使用此代码来发布通知 NSNotificationCenter defaultC
  • iphone - 自动释放,没有池 - 只是泄漏

    我的主代码中有这一行 self performSelectorInBackground selector animateMe withObject nil 这是 animateMe void animateMe UIView animate
  • 3D 图形批处理

    很多网站 文章都说 批量 批 批 有人可以解释一下着色器中的 批处理 代表什么吗 即 是否 改变纹理 更改任意着色器变量 意味着某些东西不能 批处理 最简单的总结方法就是尝试尽可能少地调用 API 来绘制您需要绘制的内容 使用顶点数组或 V
  • 虚拟乐器 iPhone 应用程序中的 VoiceOver 辅助功能?

    我收到盲人用户的评论 称我的一些声音和音乐相关应用程序只能在关闭 VoiceOver 的情况下使用 在 iOS 设备上启用 VoiceOver 辅助功能后 是否可以启用音乐键盘或鼓垫触摸区域 以便在点击键盘键或虚拟鼓组 等 时可以立即播放音

随机推荐

  • 为什么我用 Perl 编写的图像下载 CGI 脚本不起作用?

    usr bin perl use CGI standard use CGI Carp qw fatalsToBrowser my files location my ID my fileholder files location C Use
  • 如何设置剪贴板复制文件?

    在我的应用程序中 我允许用户选择与磁盘上的文件相对应的项目 当用户按 Ctrl C 时 我希望将文件发送到剪贴板 然后用户可以将文件粘贴到其他位置 我想以某种方式实现它 以便用户可以复制 但不能粘贴到我的应用程序中 然后 用户可以自由地将文
  • 将 Windows 应用商店应用程序中的画布保存为图像文件

    我正在寻找从 Windows 商店应用程序保存画布的方法 我发现 private void CreateSaveBitmap Canvas canvas string filename RenderTargetBitmap renderBi
  • 使用 CreateFileMapping 时出错 - C

    我正在使用教程这个 MSDN 链接实现一种将数据从一个进程传输到另一个进程的方法 尽管有人建议我先前的问题要使用 Pipe 方法 由于某些限制 我别无选择 只能使用 CreateFileMapping 方法 现在 我已经成功地在同一解决方案
  • 使用Python 3快速计算实大整数的以3为底的值

    我们有一个很大的数字 例如 10 1500000 1 并且想要将其转换为基数 3 下面是我们在普通 Python 中找到的最快方式运行代码 不使用 numpy 或 CAS 库 如何加速基数转换 到基数 3 的性能 我们想知道如何通过以下两种
  • 当 xml 标签名称包含大写字母时,BeautifulSoup 引发 AttributeError

    我正在尝试获取该标签的所有 XML 属性Name 出现此错误 AttributeError NoneType object has no attribute attrs 当我执行以下代码时 import BeautifulSoup as b
  • 如何在序言中打印所有数据库事实

    我在序言中有一个数据库 我想做的就是枚举它的元素并一一打印 如何才能做到这一点 fact is mike asthmatic fact has andy highPressure fact is mike smoker 我已经写了这个 它工
  • Android Instant 应用程序无法通过应用程序链接在我的 Beta 预发布测试中运行

    我的即时应用程序处于 Beta 预发行版 但我无法通过应用程序链接启动即时应用程序 相反 它会将我带到网络浏览器 有什么帮助吗 我自己也一直有同样的问题 我的解决方案是转到您的即时应用程序设置并关闭即时应用程序然后再次打开 您应该可以通过
  • c++:类的通用 getter

    我有点需要帮助 我想为我的类定义一个模板方法来访问其私有字段 这是我的代码 include
  • NSWindow 纹理背景与 NStextField

    我有一个超级奇怪的问题 我想要一个纹理窗口具有正常的渐变颜色 我在这个窗口中有一个 NSTextField 该文本字段注定是一个 URL 输入字段 因此它需要很大 问题是 当它太大 大约超过窗口宽度的 1 3 时 它只是切换纹理窗口以绘制渐
  • 无法使用.bss段内存

    我正在尝试在 bss 内存中存储一 个文件描述符 用于从一个文件读取并写入另一个文件的基本 Linux 程序 我一直无法让它发挥作用 该程序不会返回错误 但无法正常工作 将文件描述符存储在堆栈上时它可以正常工作 当我尝试在 gdb 中运行该
  • 如何使用boost序列化进行二进制输出?

    函数 boost serialization binary object void t size t size 和 boost serialization make binary object void t size t size 之间有什
  • 排序时间总是与第一次排序不同

    我写了情侣排序算法 我想比较他们的排序时间 至少是差不多 但在第一次循环之后 除了 StoogeSort 之外 所有排序时间都减少了 我认为可以在后台进行一些优化 但我应该考虑哪种措施 第一个还是其他 为什么会发生这种情况 public s
  • 最大大小未知时的 MatLab 内存分配

    我正在尝试加快我在 Matlab 中编写的脚本的速度 该脚本动态地将内存分配给矩阵 基本上是从文件中读取一行数据并将其写入矩阵 然后读取另一行并为更大的矩阵分配更多内存 存储下一行 我这样做而不是使用 Zeroes 或其他东西预分配内存的原
  • 分析 C++ 编译过程

    我倾向于编写相当大的模板化标头 C 库 而我的用户经常抱怨编译时间 经过思考这个问题 我突然想到我不知道时间都去哪儿了 是否有一些简单的方法来分析常见编译器的 C 编译过程 例如GCC g 英特尔 C 编译器 icc and XL C C
  • 浏览 FindContours 方法找到的轮廓层次结构?

    对于直接使用 OpenCV 的 C 开发人员来说 这一定很简单 然而我使用的是 Emgu NET 的 OpenCV 包装器 在最新版本中我们有这个方法CvInvoke FindContours返回void 输出结果通过参数引用传递 类型为V
  • 新存储库仅包含当前跟踪文件的复制历史记录

    我们当前的存储库有数以万计的提交 并且一个新的克隆传输了近 GB 的数据 有很多 jar 文件已在历史记录中删除 我们希望通过创建一个新的存储库来减小此大小 该存储库仅保留存储库中当前活动文件的完整历史记录 或者可能只是修改当前存储库以清除
  • Tango 图像帧的计时问题

    当我尝试同时获取深度数据 图像数据和姿势数据时 Tango 似乎正在丢弃图像帧 我正在尝试捕获深度和图像帧并将它们与姿势数据同步 使用 C point cloud jni example 我添加了代码将点云数据转储到内存缓冲区 然后转储到文
  • (Libgdx 1.6.1) BitmapFontCache.draw 由于索引越界而崩溃

    我最近刚刚将 Libgdx 项目从 1 4 x 更新到 1 6 1 我在游戏中的对话中使用 BitmapFontCache 使用 BitmapFontCache draw start end 逐个字符地绘制字符串 这在 1 4 x 中工作正
  • 将 Maya 模型导入 iPhone

    做这个的最好方式是什么 谷歌搜索向我展示了很多方法 但目前最好的方法是什么 我很高兴能从 Maya 导出模型并在 iPhone 屏幕上渲染 但如果有一种方法可以渲染它 然后支持捏合缩放等 我会很兴奋 非常感谢 今天刚刚完成我的第一堂 3D