天空体介绍
摘要:我们的3D世界通常开始时看上去的感觉是非常复杂的,但它们目前都有一个很明显的缺点:它们都被一个空白的背景所提供。我们为我们的精灵工程创建一个背景图片,通过在渲染精灵前,先简单用绘制一个屏幕大小的图片。这个工作在2D中是很好完成的,但在3D中它就会崩溃:随着相机移动,背景也必须跟着移动,我们不能让这个发生在一个静态的图片中。这有多种方法,我们可以采取工作的3D背景来实现,这里你所看到的称为天空体。之所以这么称呼,因为它实现效果是一个盒子(一个立方体),放置在相机中。相机在集中在盒子里,并且它的角度变化为看到的围绕的场景,它也环顾四周的天空体。结果是现实的外观背景移动与在场景中的相机和对象一致的。
阅读全文
posted @
2012-06-25 13:37
AppleSeeker(冯峰)
阅读(714)
推荐(0)
添加雾化效果
摘要:XNA提供了一个有用的功能是能够在渲染场景中添加雾化效果,它提供简单的模仿真实世界中的雾,让对象逐渐远离相机知道看不到它们。显然,Windows Phone 7设备可以渲染到屏幕上,有大量内容是被限制的,如果你已打开环境延伸到远方,在某个阶段你必须绘制一条线,并告诉XNA不会去绘制任何较远的东西。这个距离限制对于剪辑平面通常通过设置一个适当的值来达到,当设置投影矩阵,如我们在第7章节所讨论的那样。缺点是,当对象到达剪辑平面,它们明显消失了。它们通常留下它们的一部分任然可见,当他们的边缘穿过剪辑平面,会导致一个非常不自然的场景。在它们消失之前,你可以使用雾化效果通过允许它们逐步消失来帮助减少消失
阅读全文
posted @
2012-06-17 13:33
AppleSeeker(冯峰)
阅读(1033)
推荐(0)
使用追踪相机
摘要:现在你已准备好去飞行,那让我们做一些过去小的游戏的变化,然后看看它的外观。ResetGame方法创建纸飞机对象并存储它到一个称为_plane类级变量中,为了以后能方便的访问。创建相机后,在初始化后,是没有追踪对象的。因此,相机位置服从手动提供的转换而不是跟随飞机。当工程运行后,初始化配置就出现了。房屋和飞机是可见的,但相机缓慢围绕场景。在游戏的CameraObject.Update函数中使用简单的旋转和转化矩阵来处理相机移动路径。当玩家轻拍下屏幕,然而,我们激活了追踪摄像机。游戏类的Update方法中检查屏幕的轻拍,每一次发现,它都将增加下一次的4个相机配置。以下代码将描述如何激活追踪相机。/
阅读全文
posted @
2012-06-09 11:48
AppleSeeker(冯峰)
阅读(704)
推荐(0)
实现追踪摄像机
摘要:为了允许游戏可以简单的使用追踪摄像机,我们将添加一个新的属性给MatrixCameraObject类,它可以放置目标对象的一个引用。如果这个属性,命名为ChaseObject,默认值为null,相机将完全像以前那样,仅按照它的位置和LookAtTarget坐标放置它本身。如果提供了游戏对象,然而,相机的行为将改变以便它围绕场景来跟随对象。当操作视角设置模式时,相机有2个责任它必须实现每一个它的Update方法:它必须放置它本身在目标对象后面,并且它必须直接看到目标对象。让我们看下它是如何实现的。首先,Update代码检查看下是否提供ChaseObject。如果不是,它申请默认的对象转换,不做任
阅读全文
posted @
2012-06-01 11:44
AppleSeeker(冯峰)
阅读(786)
推荐(0)