2

XNA 是否存在不同相机的库?我四处搜索,发现许多不同的相机类具有不同的接口(或根本没有定义的接口),但没有标准相机定义的通用接口。

我觉得一定有一些我遗漏的东西,这似乎是任何游戏的一个重要方面,所以缺少相机库一定是有充分理由的。

4

1 回答 1

4

你的问题有点模棱两可。所以我会尽力解释如何在XNA中做相机。

基本上,相机只是一个矩阵(您似乎已经知道),或矩阵的集合。通常,您有一个视图矩阵(将相机定位在世界中)和一个项目矩阵(将世界的 3D 点投影到 2D 视口上)。

因为相机就是这么简单——真的不需要某种全面的相机库。游戏通常更容易“硬编码”一个简单的相机类来满足该游戏所需的功能,而不是尝试解决指数级复杂的问题,即制作适用于所有游戏的通用相机类。

为了为相机创建有用的矩阵,XNAMatrix类提供了各种方法。就像CreatePerspective投影矩阵或CreateLookAt视图矩阵一样。

(所以,要制作一个简单的相机类,让它获取您的相机设置信息 - 位置、视野等 - 并输出必要的矩阵。)

要在绘制时使用这些矩阵,您需要在效果上设置它们(它们将用于将顶点转换到顶点着色器中的屏幕位置)。XNA 4.0 引入了效果接口,它为此提供了一致的接口。

于 2011-03-04T11:26:37.753 回答