所有图形引擎都使用矩阵在不同的协调系统之间进行转换。的确,OpenGL和DirectX使用它们,因为它们是标准的方式。
摄像机通常使用你有参数构建矩阵:
视图矩阵(变换世界位置的方式你看它从摄像机位置)时,它使用LOOKAT位置和照相机的位置(也是向上的向量,通常是0,1,0)
投影矩阵(从3D坐标转换到2D坐标),它使用fov,near,far和aspect。
你可以找到如何构建在互联网搜索的矩阵为创建它们的OpenGL函数信息:
gluLookat创建viewmatrix
gluPerspective:创建投影矩阵
但我无法想象一个引擎th在不允许你得到这些矩阵,因为我可以确保你在哪里,引擎正在使用它。
一旦你有了这些矩阵,你将它们相乘,得到viewprojeciton矩阵。这个矩阵从世界坐标变换到屏幕坐标。所以,只需将矩阵乘以你想知道的位置(以向量4格式,即4º分量1.0)。
但是等等,结果将会是齐次坐标,您需要将生成的向量的X,Y,Z除以W,然后在Normalized屏幕坐标中有位置(0代表中心,0.5代表右边等)。
从这里很容易变换乘以宽度和高度。
祝你好运:)
P.S:当您使用3D工作,它是非常重要的,了解三个矩阵(模型,视图和投影),否则你会跌倒每次。