microsoftxiao

记忆 流逝

导航

聚焦3D地形编程第一章 The Journey into the great Outdoors

 

聚焦3D地形编程第一章 The Journey into the great Outdoors

聚焦3D地形编程

翻译的烂,请见谅, 还请阅读原著 《Focus on 3D Terrain Programming》
译者: microsoftxiao@163.com 邵小宁 神杀中龙
第一部分
地形编程入门

 第一章室外旅行 The Journey into the great outdoors

欢迎来到奇妙的3D地形编程世界!我将指导你愉快的阅读地形书籍,并且我们一起渲染最高的山脉,低的山谷,甚至一些草地。总之,本书你将学到关于地形编程和它的游戏开发应用的很酷的东西。所以,装好你必要的背包(你知道,音乐, 咖啡, 零食, 还有一点teddy bear在你的卧室中)因为我们将要开始了。

地形? 谢谢, 我已经吃了。

我知道第一个问题你会问这个: “什么是地形, anyway?” 好,我将立刻回答它。地形是陆地: 多岩石的山脉,绿色的平原,起伏的小山,所有形态组合成美丽的风景。地形渲染领域关心怎样实时的渲染所有这些宏伟的自然风貌。之后你要作出地形的计算,你需要解决怎样渲染其他的自然风貌,像水,云,太阳,雾还有其他有趣的素材。

通过这本书,你至少可以理解怎样创建一个不能相信的真实的室外场景,有非常多的细节且速度极快。要通过一些通常的地形信息,从地形(不在游戏开发方面)的一些通常的应用开始。

常规应用

在我们非常酷的游戏开发应用之前, 让我们看下它的其他应用。我从Virtual Terrain Project(http://www.vterrain.org/)找到了一些信息,这是一个伟大的站点,有所有关于地形的应用。下面是地形的一些应用:

n        虚拟游览(travel planning)

n        可视化天气和环境拓扑

n        Real estate walkthroughs

n        军事用途,像飞行模拟(以训练为目的)

有许多地形的应用,正如你看到的,地形可视化和渲染是很重要的一个领域。使用工具来制作地形, 它有足够的细节和每帧平滑的速率。(缓慢的应用将扰乱任何地形场景,真实是最重要的。)这些信息仅仅是冰山一角; 如果你对地形感兴趣但是不在游戏开发,看一看上述站点。

地形和游戏开发

3D地形在游戏开发界是巨大的应用,尤其是出现了最新的连续等级细节(CLOD)算法后。(CLOD的定义将在第5章得到解释), “Geomipmapping for the CLOD impaired”)3D游戏以前在游戏内削弱了大量室外图形。他们更趋向于室内在小的卧室和不透气的走廊。(这在第一人称设计类型里尤其明显。)

在过去的几年内,作为玩家,已经见到一系列基于室外的游戏,跨越了各种类型: 策略,动作和第一人称设计。像Black and White(1.1)Starsiege: 部落是两个最主要的基于室外的游戏使用了广阔的地形。

所有的室外游戏最近两年内发布的,一个特殊的游戏可以代表了3D地形在游戏内的特殊应用和一些话题: Treadmarks

Treadmarks

发行于2000年一月, Seamus McNallyTreadmarks在人们回想的地形引擎领域是十分具有革命性的。游戏,如图1.2, 是一个基于坦克战斗和围绕着一种基于ROAM地形风景的竞赛游戏(这些细节将在第7章讲述, “Wherever You May ROAM”)还有包括一些大的爆炸。最好的部分是关于在游戏每个子弹爆炸将影响到地形。例如,正常情况下炮轰会留下洞在地形上,然而大量武器创造了更大的弹坑。

甚至现在, 这个游戏已经3岁了,它仍然跟人的印象很深刻。这要归功于McNallyROAM实现算法,显示出了新思想和改变算法的更多可应性到a fast-paced 图形应用像Treadmarks或者任何其他游戏。

不幸的是,Seamus McNallyHodgkin’s Lymphoma抗争了3年死于2000330日,享年21岁。

虽然我不了解Seamus或他的家人(创建Treadmarks的全体工作人员), 但我想要感谢他和他难以置信的主意和想法在地形可视化方面并且希望他静静的安眠。为了纪念他在GameDev.net创建了

(http://www.gamedev.net/community/memorial/seumas)

因为Treadmarks 是地形编程世界的里程碑,我可以包含这个dmo(来自于http://www.treadmarks.com/)在本书的附件CD(Demos/TM_16_Demo.exe).我强烈的推荐给你。这个游戏有很多伟大的地形效果, 然而更伟大的是我们将在本书讨论它。甚至it’s just such an addicting game!

Demo Building Made Easy!

这本书的demos被分成了三个组: 主要章节demos, 预备的主要章节demos和各种无偿的任意的demos包含在内。所有这些可以在本书的极好的伴随CD内。捐献的demos将不被包含; they will be left as a project for you to figure out.

The Main Demos

主要的demos是官方附加demos在每章的代码,提供给你。这些demos使用了OpenGL渲染API和自定义的Windows代码,所以你可以仅仅运行它们在Windwos操作系统。主要的demos也使用C++Microsoft Visual C++ 6.0

每个章节的代码被划分了两个部分: demo代码和基础代码。Demo代码被所有书的理论和内容的实现,而base代码包含了应用程序的初始化,摄影机例程(routine), 数学操作等。这所有在VC++(Microsoft Visual C++)工作区被命名为demoXX_YY.dsw, XX是章节的号,YYdemo的当前章节编号。

Note 注意

It is import to note that although this book’s accompanying demos stick to a certain API,

虽然这本书附加的demos关联的API是重要的,实际的文本API和操作系统独立的。无论你使用OpenGL, Direct3D, 或者其他API, 你将可以理解本书的内容。

当你用VC++打开工作区时, 你可以构造应用程序,并且被平稳的编译。让我们一步步的实现这些,你可以在附加CDCode\Chapter 1\demo1_1.First内找到,打开Microsoft Visual C++demo1_1.dsw(文件, 打开工作区). 之后你照着做,如图1.3

从那里,你可以简单的构造(Build, Build demo1_1.exe)demo和可执行的EXEDemo几乎精确的demo7_1的复制品(7章的第一个demo), 所有你可以期望看到本书后面相似的东西。For now though, 将快速的解释。Demo展示了看起来像ROAM算法的tessellation例子。现在有点是在戏弄你,直到你看到第7!如果你正确的Build demo1_1,它将像如图1.4。也可以看表1.1的控制。

Table 1.1 Controls for demo 1_1()

这不是一个美丽的截图么?我认为。无论如何,在这本书将完成的例子中这是没有说服力的,但是它的工作只是戏弄别人了点。

The Book at an Itty-Bitty Glance

本书将关于地形,地形,地形,喘口气甚至更多地形! 我们将包含从不规则高度图的产生到三种不同的CLOD算法。我们将以可怕的特效结束以增加3D地形场景的真实感。这些效果由像雾, 云渲染, 镜头光晕,和其他各种各样的技巧方法和效果组成。所以,without further ado, 让我们开始摘要。

我们将以一部分一部分的代替一章一章的。

第一部分: 地形编程入门 ()

第二部分: 高级地形编程 ()

The Demos

我编制了在本书讨论的每个主要主题的demo程序。As we proceed through the book, 作为贯彻本书始终,这需要你不断留意我提供的仅仅是你自己实现的一些步骤。It is imperative that you keep in mind the demos I provide are only to be used as a stepping stone for your own implementation. 我的实现制作成好的教学指南给你;不要仅仅复制粘贴demo代码到你自己的项目内。Demos提供的不是高度优化的,没有提供最佳的细节,并且所有各式我们讨论技术的bellswhistles没有被实现。

因为我是个和蔼的家伙,我决定帮助你个小忙。地形是一个动态问题: 技术导致工作一天也许需要更多天来检查。因此,我决定奉献我的站点(http://trent.codershq.com/)为地形研究和实现,我将保留一些不变的数据库在3D地形编程领域。我将尝试开发大量细节和我可以实现的最快的实现,我将保留一份开发日志。如果demos在本书CD没有提供,那么到我的站点来看一系列demos和将供应这些无价的信息。

摘要

本章包含了地形的基本常识和它的应用。它也说明了怎样编译和执行不同类型的demos和提供整本书的概述。准备好: 你的旅行将通向奇妙的地形渲染世界。

 

posted on 2008-07-05 02:59  龙巢NET刀  阅读(1413)  评论(0编辑  收藏  举报