【问题标题】:Android and openGL es how to tell when object is within camera viewAndroid和openGL es如何判断对象何时在相机视图中
【发布时间】:2012-03-07 04:57:51
【问题描述】:

我有一个应用程序,我使用 min3d 在 opengl 中为我设置场景和相机视图,并且我能够实现光线拾取,但因为我的场景中有超过 120 个或更多可点击对象,屏幕点击有时会是稍微偏离一点,一个不在屏幕上的对象可能会获得点击,因为它刚刚离开相机。

我想做的是获取我在场景中拥有的对象的数组列表,并且在每次调用 updateScene 方法时,我想检查一个布尔值以查看对象是否在相机视图内。这将允许我将对象删除或添加到另一个数组列表中,当我的光线拾取方法在屏幕触摸上被调用时,我将遍历该数组列表。

我缺少的部分是如何跟踪屏幕上的对象。我知道我已经有了得到这样的东西的数学我只是有点困惑如何以正确的方式实现它以在屏幕上获取对象。任何帮助都是极好的。是否与截锥体中的跟踪有关?

【问题讨论】:

    标签: android view opengl-es


    【解决方案1】:

    我相信您要查找的内容通常称为“截锥体剔除”。基本上,您将一个简单的边界框/球体/圆柱体/等包裹在您的对象周围,然后针对平截头体的每个平面测试这个简单的几何形状,看看它是否完全在盒子之外。

    本教程可能会对您有所帮助:

    http://www.lighthouse3d.com/tutorials/view-frustum-culling/

    【讨论】:

    • 是的,我从昨天早些时候就一直在努力解决这个问题。我在学校时处理过截锥体剔除,但我忘记了所有精彩的数学知识:p 我什至昨晚看到了那个教程,但当时我太激动了,我没有看到教程其余部分的链接。
    • 虽然灯塔教程很不错,但我发现下面的教程对我更有帮助....crownandcutlass.com/features/technicaldetails/frustum.html
    猜你喜欢
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    • 2013-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多