第一章 DF2地形生成原理
地形文件一共有7个文件组成.它们分别是:
*.TRN文件,DF和DFEDIT对地形的呼叫文件;
????_C.JPG或????_C.TGA文件,地表贴图文件,又称纹理贴图文件;
????_D.PCX文件,地形形成文件;
????_M.PCX文件,地形像素贴图坐标文件;
????_DM.TGA文件,地形像素贴图文件;
????_CM.PCX文件,地形像素形成文件;
????_CM.CAL文件,地形像素贴图呼叫文件。
看了这些文件,到底是有什么用呢?这里用3DSMAX作一个示范:
打开3DSMAX,先画一个长宽各为100单位的PATCH GIRD,然后将它的段面数调高
然后切换的MODIFY面板,点击MORE按钮,选择DISPLAYS(置换)工具,选择一个地形形成文件(如DF2提供的Dfdg1_d.pcx)。
并将STRONG(强度)调高,就可以得到高低起伏的地形了
打开材质编辑器,任意选择一个材质球.点击DIFFUS后面的方块按钮,在跳出来的菜单中选择BITMAP贴图,在贴图文件中选择Dfdg1_c.jpg。
打开贴图按钮并将材质赋予置换后的PATCH GIRD,这样一个DF2的地形就在3dsmax中生成了。
进入地形中间渲染一张看看,是不是和DF2中的一样
现在可以了解到voxels space好比将一个无边无际的PACT GIRD通过置换和无穷无尽反复贴图后形成了较为真实的地形。
DF2比DF1地形表现出色的地方就是植被的建立,也就是“草”的效果。那么“草”是如何形成的呢?前面已经提到的地形像素贴图坐标文件、地形像素贴图文件、地形像素形成文件和地形像素贴图呼叫文件就是让“草”在地形上张出来的关键。现在分析以下其中的原理仍然以Dfdg1为例子:
这两幅图的结构是一样的,左边是像素贴图坐标贴图,右边是地形纹理贴图,它们在文件中的尺寸都为1024*1024,但它们的颜色结构是完全不同的,Dfdg1_m.pcx是256色图而Dfdg1_c.jpg是16位色图形。为什么Dfdg1_m.pcx是256色图形呢?请将该图形放大到极限,就会发现每一个像素和色块都是独立存在的一个正方形,在Dfdg1_m.pcx中每一个像素色块都有其特别的意义,其实每一个像素色块都有一个特定的像素贴图文件,这些像素贴图文件并不是散在TERRAINS.PFF文件包的各个地方,而是有一个专门的像素贴图文件所支持,它就是????_cm.tga,而例题Dfdg1所使用的像素贴图文件既是Dfdg1_cm.tga。打开Dfdg1_cm.tga文件,可以看到它的尺寸为64*16384分辨率的图象文件。
仔细分析这个文件,可以看到该文件是由256个64*64的小贴图组成,这正和Dfdg1_m.pcx的颜色结构相吻合。那么游戏怎么知道什么颜色的像素贴什么纹理呢?Dfdg_cm.cal登场了,它就是当遇到Dfdg1_m.pcx配置给某个像素什么颜色,就呼叫Dfdg1_cm.tga中某个贴图到达指定位置。(想要仔细分析,就用WINDOWS的记事本将其打开)不过光有贴图文件“草”还是张不出来,这根据置换原理,在每个像素点上还要进行一次置换,????_pm.pcx像素形成文件即可担当起这个重任。其文件尺寸大小和????_cm.tga一样,不过颜色为灰度处理,这并不奇怪,因为用于置换的文件必须是256色灰度图形。
这些贴图文件、置换文件和呼叫在DF2中是不会给直接调用的,必须有一个文件协调它们之间的关系和使用位置,这个文件就是*.TRN文件。如果使用过DF2MED程序的话,就可知道*.TRN文件的重要性了。因为DF2是通过*.TRN文件来组织这些形成地形的这些文件。可以使用WINDOWS的记事本来打开和修改这个文件。