【问题标题】:Ray AABB intersect test fails when AABB is rotated旋转 AABB 时,Ray AABB 相交测试失败
【发布时间】:2014-05-09 01:07:11
【问题描述】:

我正在用 AABB 进行光线相交测试。它工作正常,直到我开始旋转 AABB 包含的对象。默认情况下,我的 AABB 已标准化协调范围从 (-1 , 1) ,所以为了让它们进入对象的世界维度我用 Object 的模型矩阵更新 AABB mins 和 max 转换那些。但是如果矩阵上有一个旋转,那么射线测试只有在它有默认的零旋转时才起作用。这是否意味着我不能旋转 AABB 进行相交测试?

【问题讨论】:

  • 好吧,如果你旋转 AABB,那么它就不再是 AABB 了:)
  • 是的,我明白了,但是我怎么能针对这样一个旋转的 AABB 进行测试。可能需要转换光线?
  • 不,这行不通。如果你用一个模型旋转 AABB,那么它就不再是那个模型的 AABB。没看到就画出来。每次旋转模型时都必须重新计算 AABB,或者必须使用其他边界框。
  • 你的意思是,重新计算以从对象的旋转中清除?
  • 不,从旋转后的对象重新计算。

标签: opengl math matrix computational-geometry aabb


【解决方案1】:

如果您使用原始模型旋转 AABB,则不再是该模型的 AABB。您需要做的是在旋转对象后再次计算 AABB,或者您需要使用不同的边界框,即非轴对齐 (OBB)。

看看如果将 AABB 与一个对象一起旋转会发生什么:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-05
    • 1970-01-01
    • 2011-10-03
    • 1970-01-01
    • 2018-03-27
    • 1970-01-01
    • 1970-01-01
    • 2011-04-14
    相关资源
    最近更新 更多