摘要:
2.5 检查对象是否可见 问题 你想检查对象是否可见来决定是否要绘制这个物体。 解决方案 XNA拥有BoundingFrustum类支持这个功能,你可以通过传递View和Projection矩阵创建一个BoundingFrustum类,然后就可以很容易地在这个类中检查对象是否包含在视锥体中。 工作原理 视锥体定义了相机可以看到的范围,类似于削去顶部的金字塔,如图2-4所示,它的边是由视... 阅读全文
posted @ 2010-10-18 21:32
AlexCheng
阅读(436)
评论(0)
推荐(0)
摘要:
2.3 创建一个第一人称射击游戏(FPS)的相机:Quake风格的相机 问题 你想创建一个类似于第一人称射击游戏的相机。你想使用鼠标旋转相机,使用键盘移动相机。 解决方案 首先使用教程2-2中的方法,只要检测到用户输入就更新相机的位置和旋转。相机的旋转矩阵会根据鼠标的移动进行改变,按Up或Down键让相机前后移动,按Left或Right键左右移动。 工作原理 通常,在FPS游戏中,玩家可以自由地... 阅读全文
posted @ 2010-10-18 21:17
AlexCheng
阅读(437)
评论(0)
推荐(0)
摘要:
2.4 创建一个Freelancer风格的相机:使用四元数的3D旋转 问题 译者注:《Freelancer》应该是指Digital Anvil制作,微软发行的游戏,中文译名《自由枪骑兵》,好像曾获2003年E3大展最佳PC游戏奖,是一个太空冒险游戏。 你想创建一个可以朝任意方向旋转的相机,例如,一个空战游戏。你需要能绕着三根轴旋转才能实现这点,但是因为万向节锁(Gimbal lock)(一... 阅读全文
posted @ 2010-10-18 21:15
AlexCheng
阅读(429)
评论(0)
推荐(0)
摘要:
2.2 指定相机的目标 问题 当定义View矩阵时,你需要指定Target向量作为参数,这个向量设置了相机的旋转。 解决方案 当选转相机时,相机的位置会保持不变。这意味着旋转取决于相机的Target点和Up向量的变化。你可以通过使用 (0,0,-1)Forward向量并将旋转施加到这个向量上获取Target向量,这会产生一个新的Target点。你可以使用相同的方法获取Up向量。 工作原理... 阅读全文
posted @ 2010-10-18 21:05
AlexCheng
阅读(487)
评论(0)
推荐(0)
浙公网安备 33010602011771号