假设我有一个3D(但不是立体)DirectX游戏或程序。有没有办法让第二个程序(或驱动程序)改变游戏中的摄像头位置?
我正在尝试构建一个可用于DirectX游戏/程序的头部跟踪插件或驱动程序。惯性运动传感器会给我我的头部位置,但我的问题是使用该位置数据来改变摄像机位置,而不是头部跟踪的硬件/数学问题。
到目前为止,我还没有找到关于如何做到这一点的任何内容,但是iZ3D能够在原始相机附近创建两个相机并将其用于立体内容,所以我知道存在一些钩子/链接/连接进入DirectX,可以通过第二个程序进行相机操作。
如果我能够使用它,我将发布代码。
-Shane
答案 0 :(得分:1)
挂钩Direct3D调用本质上只是挂钩DLL调用。即它不是D3D的特别之处,而只是一种通用技术。尝试谷歌搜索“钩子dll”或从这里开始:[C++] Direct3D hooking sample。由于钩子总是会发生这种情况,因此需要制作一个非常大的样板来满足钩子应用的所有需求。
尽管在游戏中使用相机进行操作通常会产生不好的效果。现代PC游戏至少有两个关键功能会严重限制你的想法: