作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我搜索了该板,以及 Oculus 板和 Unity 板。无法真正找到有帮助的东西。
我正在研究车辆模拟。在我们开始使用 Oculus 之前,它只是普通的第一人称视角。您使用赛车方向盘/踏板来驱动,使用鼠标来控制所有按钮和开关等。我们使用从屏幕上的鼠标点到世界的光线转换来与车辆中的各种控件进行交互。
现在我们使用的是 oculus,光线转换没有考虑 oculus 相机上使用的失真矩阵。所以你实际上并没有在你视觉上点击的地方转换光线。使用 Debug.DrawRay 我发现它有点偏离。可以肯定的是,我通过 OVRCameraController 上的检查器禁用了镜头校正,果然光线转换再次工作。
射线本身的计算方式与从鼠标点发射时的常用方式相同:ScreenPointToRay(Input.mousePosition);
有人知道如何调整我的光线以使其在启用镜头校正的情况下工作吗?
干杯,戈登
最佳答案
只需将畸变矩阵与光线的向量(位置和法线)相乘,就可以得到新的光线。我建议使用具有 4x4 矩阵和 Vec4 的齐次坐标,其中 Positions 的分量 w = 1.0,Normals 的分量 w = 0.0;通过这种方式,您可以简单地相乘并完成 - 根据查找方向,您可能必须使用逆矩阵 :)
关于c# - 通过畸变矩阵从鼠标转换光线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21118361/
我正在尝试使用 Sfml 编写 2D 游戏。对于那个游戏,我需要一个 Lightengine 和一些代码,这些代码可以为我提供玩家可见的世界区域。由于这两个问题非常吻合(实际上是相同的),我想同时解决
我是一名优秀的程序员,十分优秀!