c++ - 设置 3D 环境引用

标签 c++ frustum openinventor

我正在设置一个 Frustum 相机来创建一个虚拟现实环境,当您看着屏幕时,它看起来像一个窗口。我检查了 SoCamera、SoFrustumCamera、SoPerspectiveCamera 和 SoOrtographicCamera 的所有文档,但无法找到一种方法来设置我的场景以使其边界与屏幕边界相匹配。

我想做这样的事情......

https://www.youtube.com/watch?v=Jd3-eiid-Uw

我的代码的问题是整个场景都在移动,而不仅仅是场景的“背面”。 它看起来像 3D,但不像真正的窗口那样令人身临其境。

有没有人有提示或可以帮助我?我使用 OpenInventor 在 C++ 中编写代码。 谢谢!!

最佳答案

我认为您可能需要一个偏离中心的透视相机才能像 youtube 剪辑中那样进行透视转换。看看DirectXMath XMMatrixPerspectiveOffCenterLH()功能。也许这会有所帮助。

关于c++ - 设置 3D 环境引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24944109/

相关文章:

c# - 在 C# 代码中使用 cpp dll

c++ - 显式赋值与隐式赋值

c++ - WIndows API 中的 'L' 和 'LPCWSTR'

剔除适用于从 View 投影矩阵中提取平面,但不适用于投影矩阵

c++ - 为什么此用户定义的转换失败?

c++ - 用于桌面 VR 的 OpenGL 非对称截锥体

c++ - 边界框视锥体渲染 - 距离渲染 - OpenGL

c++ - Open Inventor 中的 SoRayPickAction?

graphics - 如何在 Open Inventor 3D 图形 API 中画一条线?