【问题标题】:Implementing terrains in XNA similar to Battle Zone (1980)在 XNA 中实现类似于 Battle Zone (1980) 的地形
【发布时间】:2012-11-10 11:46:09
【问题描述】:

我正在为 Windows Phone 开发一款 3D 游戏,其中包括无限距离的地形和火山,类似于 Atari Inc. 的 Battle Zone (1980)。无论玩家驾驶多远,玩家都无法接触到地形。目前,为了实现这一点,我在圆柱壁内映射了一个 2D 纹理。圆柱体也随着玩家移动,因此玩家永远无法到达地形。我不确定这是否是实现地形的好方法,因为我在将其映射到圆柱体壁上时遇到了诸如纹理失真之类的问题。

请建议我在 XNA 中实现类似于 Battle Zone 的地形视图的方法?

【问题讨论】:

  • 当然你使用的方法已经足够好了,但是你有什么特别的顾虑吗?为什么你觉得不够好?详细说明问题。
  • 第一次开发3D游戏,不确定使用的方法好不好。另外,我需要火山喷发与地形,所以我使用多个帧来制作喷发动画。但现在我尝试了火山喷发动画的粒子系统,效果很好。感谢您的帮助

标签: windows-phone-7 3d xna terrain


【解决方案1】:

通常开发人员使用盒子(所谓的 SkyBox)代替圆柱体

它具有较少的多边形,并且通常失真较小(可能在边缘处有一些)

为了让它看起来更真实,一些开发人员(如 Valve)在第一遍中使用了屏幕外渲染,其中包括天空盒 + 一些具有低细节和移动云精灵或带 alpha 的纹理环的远距离模型。两个视点是同步的(主摄像头和屏幕外摄像头),然后(不清除颜色缓冲区)它们在顶部渲染最终场景。由于远处的建筑物会移动一点,并且周围的场景看起来不那么平坦。为了避免通道之间的 z 缓冲区清理,他们只需在主通道场景的地板下(字面意思)进行第一次通道。

【讨论】:

  • 谢谢。由于我是3D游戏开发的新手,我对天空盒,离屏渲染等不太了解。因此,请您提供一些涵盖3D游戏整体场景实现的好链接?任何帮助将不胜感激。
  • 我相信没有简单的阅读方法。你有两种方法。第一个:了解您的图形引擎的可能性,并仅在您的项目中依赖它们。大多数东西都在引擎核心深处,你可能永远不需要知道它是如何工作的。但是您需要分析您的代码宽度和深度,因为您对它在基本 lvl 中的工作方式没有深入了解。当您发现问题时 - 在 stackoverflow 或引擎论坛上提问。
  • 第二种方法:获取有关 3D API-s、设备开发软件、算法、线性代数等方面的新书。查找开源引擎并了解其工作原理。这将花费大量时间和精力,但您将能够编写出好的代码。
猜你喜欢
  • 1970-01-01
  • 2011-01-06
  • 1970-01-01
  • 1970-01-01
  • 2014-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多