【问题标题】:3D CAD models with OpenGL-ES使用 OpenGL-ES 的 3D CAD 模型
【发布时间】:2012-03-26 11:06:11
【问题描述】:

我正在努力将 3D CAD 模型导入我的 iOS 应用程序,但我很难弄清楚限制在哪里,谈到顶点和曲面的数量。

我有一个模型:

  • 表面:41525
  • 顶点:21504

基本上没有限制,但实际上加载到我的 iOS 应用程序需要 2 小时。

我一直无法找到一种在不造成太大损坏的情况下减少这种模型的好方法,所以我非常想知道这是怎么可能的。

我有 AC3D 和 STEP 格式的模型。

我尝试通过 AC3D 减少多边形,但最终看起来很糟糕。

【问题讨论】:

  • 在您执行任何其他操作之前,请在 Time Profiler 下的 Instruments 中运行您的应用程序,并在加载模型时识别热点。我的猜测是你有一个非常慢的解析器,因为我在我的应用程序中从 SQLite 加载几何的大小需要不到一秒钟的时间。但是,永远不要对性能做出假设,首先要配置文件。
  • 再举一个例子,Davido 能够在 this question 中描述的 iPad 应用程序中以 10 FPS 的速度渲染近一百万个三角形,因此与此相比,这种几何图形是微不足道的。
  • 感谢您的回复。这是我第一次使用 Instruments,当我吃午饭并选择 Time Profiler 时,它会出现错误 iOS Simulator failed to find the process ID of ....
  • @JavaCake 您使用的是哪个版本的 Xcode?完全主观地说,与 Instruments 的集成似乎是苹果设法打破几乎所有其他版本的事情之一。我怀疑他们有工程师,他们唯一的工作就是交替破坏 developer.apple.com 的所有外部链接,并破坏 Xcode 中的调试器或 Instruments 集成。
  • @JavaCake - 正如 Tommy 所指出的,在 Xcode 中运行 Instruments 可能会很棘手。相反,使用菜单项 Xcode |打开开发者工具 |如果您使用的是 Xcode 4.3,则可以将其作为独立应用程序启动。对于旧版本,您需要在 /Developer 中找到它并运行它。在那里,选择您连接的 iOS 设备(针对模拟器的性能分析实际上毫无价值),然后从设备上安装的应用程序列表中选择您的应用程序。您应该能够毫无问题地在该应用程序上启动跟踪。

标签: ios opengl-es 3d cad


【解决方案1】:

没有正式的限制,您实际获得的吞吐量将取决于您选择要绘制的内容的智能程度、要应用的表面效果类型等。

话虽如此,查看 STEP 文件会发现它是用于交换的纯 ASCII 格式。两个小时太长了,以至于表明除了解析之外还有一些相当重要的潜在性能问题,但您绝对应该考虑至少在将文件包含到应用程序之前对其进行标记。

OBJ 是另一种 ASCII 格式,我发现只需在 Mac 上对文件进行标记,然后在应用程序中加载标记化的版本即可将 20 秒的模型加载时间减少到不到 1 秒。切换到没有 OBJ 兼容性的二进制格式(以便我可以预先剥离等)进一步缩短了加载时间。

【讨论】:

  • 这很有意义,看看@Brad Larson 的例子,很明显它应该能够处理我拥有的这个特定模型。但是我需要再次查看代码,因为我花了 30 分钟来渲染模型。
猜你喜欢
  • 2012-01-06
  • 2013-03-25
  • 1970-01-01
  • 2012-05-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-30
  • 1970-01-01
  • 2022-07-24
相关资源
最近更新 更多