假设我有一个3D (但不是立体的) DirectX游戏或程序。有没有办法让第二个程序(或车手)在游戏中改变摄像机的位置?
我试图建立一个头部跟踪插件或驱动程序,我可以使用我的DirectX游戏/程序。惯性运动传感器会给我头部的位置,但我的问题是使用位置数据来改变相机的位置,而不是考虑到头部跟踪的硬件/数学问题。
到目前为止,我还没有找到任何关于如何做到这一点的方法,但是iZ3D能够在原始相机附近创建两个摄像机,并将其用于立体拍摄,因此我知道DirectX中存在一些钩子/链接/连接,这使得第二个程序可以对相机进行操作。
如果我能做到这一点,我将释放代码。
-Shane
发布于 2013-02-13 19:03:25
挂起Direct3D调用本质上就是连接DLL调用。也就是说,它对D3D来说并不是什么特别的东西,而只是一种普通的技术。尝试谷歌寻找“挂钩dll”或从这里开始:[C++] Direct3D挂钩示例。与钩子一样,有许多警告,您将不得不制作一个非常巨大的样板,以满足钩子应用程序的所有需求。
然而,在游戏中使用相机进行操作通常不会带来好的效果。现代电脑游戏至少有两个关键特点,这将严重限制你的想法:
顺便说一下,#2是为什么立体模式不能100%兼容所有游戏的原因。例如,在源引擎中,HDR场景是在三次传递中呈现的,如果您不知道如何区分它们,则只会破坏游戏。看看nVidia是如何实现他们的立体感模式的:他们为每一个流行的游戏制作一个单独的钩子,即使使用这种方法,也不总是能够得到预期的结果。
https://stackoverflow.com/questions/14805120
复制相似问题