【问题标题】:How does one interact with OBJ-based 3D models on iPhone?如何在 iPhone 上与基于 OBJ 的 3D 模型进行交互?
【发布时间】:2009-12-17 04:38:28
【问题描述】:

我有几个不同的 OBJ 文件可以解析和显示。此代码基于 Jeff LaMarche 的 The Start of a WaveFront OBJ File Loader Class。但是,我需要一些方法来检测我在显示的模型中选择了哪些坐标。通常一次显示一个模型,但有时屏幕上会显示两个或更多模型,我想设置一个 NSNotificationCenter 对象来通知其他代码部分“选择”哪个对象。我还查看了 javacom 的“用于 iPhone 的 OpenGL ES:一个简单的教程”,并想模拟我试图在他之后编程的行为。

这是我目前的逻辑:

  • 设置一种方法来检测用户触摸屏幕的位置
  • 将这些坐标与基于 OBJ 的模型的当前坐标进行比较
  • 如果它们匹配,则表明所述触摸在对象的范围内
  • 可触摸的坐标集必须随模型缩放。目前该模型能够缩放,所以我很可能需要能够遵循这种缩放。

另外请注意,我不需要在屏幕上移动模型。只需检测触摸的时间是显示一个模型还是多个模型。

虽然这很可能很简单,但我已经为此困扰了好几个月了。我真的很感谢其他人能就这个话题发表任何看法。

【问题讨论】:

  • 嗯,除非您所说的内容更多,否则您只需要学习如何处理“拣货”即可。谷歌搜索“opengl Picking”会让你有很多动作。

标签: iphone objective-c 3d opengl-es


【解决方案1】:

在触摸坐标上使用 gluUnProject 来获得一个从屏幕到世界的矢量,然后将它与您的模型相交以查看其中一个是否已被触摸。默认情况下,gluUnProject 在 iPhone 上不可用,但您可以查找它的实现。 http://www.mesa3d.org/ 有一个开源实现。

在此处了解 gluUnProject:http://web.iiit.ac.in/~vkrishna/data/unproj.html

【讨论】:

    猜你喜欢
    • 2020-07-16
    • 2015-03-29
    • 2013-07-22
    • 2016-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-28
    相关资源
    最近更新 更多