我正在尝试为我注入应用程序的特定屏幕保护程序实现覆盖。 此屏幕保护程序使用3d对象和动态相机。
我有相机位置和方向以及3d对象位置和fov值,我想创建一个基于音频的叠加层,为对象添加图标。
我有2d覆盖到位,并且可以成功迭代对象,但我无法计算如何用我拥有的数据计算平截头体。
基本上:如何从相机方向创建一个截头体?是否需要创建截锥体的屏幕矩阵世界?我没有w2s矩阵,那么这会使问题无法解决吗?
答案 0 :(得分:0)
http://web.archive.org/web/20120531231005/http://crazyjoke.free.fr/doc/3D/plane%20extraction.pdf有一个很好的资源,可以解释你需要的一切,并概述了如何使用视图和模型矩阵提取视锥体。
关于世界屏幕(W2S)矩阵,您可以使用以下变体即时计算:
ScreenPosition = (ProjectionMatrix* (ViewMatrix * WorldPosition))
你可以根据需要随时计算它。
在Lighthouse还有一个针对截头剔除的截然不同的教程,但很好地解释了实现。