【问题标题】:Raycasting through a custom camera projection matrix通过自定义相机投影矩阵进行光线投射
【发布时间】:2015-09-11 08:29:57
【问题描述】:

修改我的主相机的投影矩阵后,使用射线投射的 ScreenPointToRay 方法开始失败,因此使用射线投射检测触摸物体的方法也失败了。有什么方法可以将 ScreenPointToRay 方法与自定义相机投影矩阵一起使用?

【问题讨论】:

  • 我建议使用逆投影矩阵手动查找点,但这并不能解决任何内置问题。您是对手动解决方案感兴趣,还是只对修复内置方法的方法感兴趣? (我环顾了一些正确的方法,但我只发现其他人有同样的问题。)另外,如果你发布为什么你改变了视图矩阵,也许有人可以建议一种替代方法来获得相同的结果。
  • 我想做一个这样的效果:当相机在上面时,相机会设置完整的正交矩阵;然后如果将相机移动到前或左尺寸相机将设置完整的透视矩阵。这是我的演示使用自定义矩阵:youtu.be/U1km79bXiwE 你有其他方法来制作这个效果吗?如果可能的话,你能发布一个演示代码来解决这个问题吗?谢谢
  • Here's a way to replicate it using a perspective camera。这是“小车缩放”效果,只需少量三角函数即可完成。不过,这并不是对原始问题的真正答案,所以我将其留在这里。

标签: matrix unity3d camera projection


【解决方案1】:

如果您制作了自定义的相机投影矩阵,那么您可能知道用户指向哪里,如何自己投射光线而不使用辅助函数?

如果您在将光标转换为世界位置时遇到问题,则可以使用一个很好的近似值 - 在相机视点的边缘(视口水平中心的顶部、视口垂直中心的左侧等)大约取四个角度。 ) 并在它们之间进行插值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-11
    • 1970-01-01
    • 2018-10-29
    • 1970-01-01
    • 1970-01-01
    • 2016-08-09
    • 2022-10-15
    • 1970-01-01
    相关资源
    最近更新 更多