孤岛危机 教程:使用Voxel技术创建地形

来源:互联网 发布:淘宝闲鱼可靠吗 编辑:程序博客网 时间:2024/04/28 02:37

看到Enforcer兄也不打算继续发了,我也蛮动摇,不过已经答应的东西还是要写完,这种技术性教程的确没什么人看,说实话我自己都看的有点累,还得边看边实践,否则很难理解,所以大家有需要的就来看吧,能有一个人看就有一个人好了


这篇教程将演示如何使用Voxel技术来创建悬崖和洞窟


首先什么是Voxel技术?
voxel即volume pixels(立体像素)这两个单词的组合,它是Novalogic的技术,现在大量用于游戏中的地形的创建。
voxel技术可以让你在编辑器中创建复杂的有组织的三维的网格(mesh)。在编辑器中它通过voxel对象(以下简称VO)的使用来体现。

 

每一个voxel对象都有许多内在的立体像素的3D网格(通常包含32x32x32个元素),每一个元素包含的信息就是这个单元是否是空的、这里使用的是什么类型的表面以及基色是什么。这组信息将作为网格生成器的输入。

在编辑的过程中,设计者会改变一组立体像素,并且每个改变都会引起网格的重新生成,所以设计者可以立刻得到可视化的反馈。VO既可以用于室内环境也可以用于室外环境。

例一:带有外檐的悬崖
VO可以和等高图(heightmap)一起使用,来改进你的地形的外观。使用VO来对整个地形建模也是可以的,但是使用等高图来对大部分地形建模、然后用VO来对它添加更多的细节则是更好的办法。


 

建立voxel区域
接下来让我们在关卡中像上面描述的那样创建一个悬崖。首先呢我们要有一个像下面这张图里一样的小山。

要想在你的VO和等高图之间建立无缝连接,你需要把VO在x和y坐标上与等高图对齐。能实现这一目标的最简单的方法是在放置VO前激活“Snap to grid”。网格的尺寸应该设置为64米,这正是地形区域(sector)的尺寸。在控制台中键入“e_terrain_bboxes 1”来打开地形区域的可视化显示也是很有用的。这也开始使地形区域的蓝色边框以符合透视效果的方式来显示。现在,在右侧的滚动栏中选择“misc--VoxelObject”,放置一个新的VO到你的关卡中。

 

起初,你的VO会是空的,你也只能看到它红色的像盒子一样的辅助对象。

连接到地形上
接下来,我们要让VO来渲染地形的表面而不是用等高图引擎。选择VO并且在“VoxelObject Params”中选中“LinkToTerrain”单选框,你会看到除了你当前选中的VO闪了一下以外没有任何变化。

编辑voxels
如下图,在右侧滚动栏中找到“Terrain Voxel Painter”,并且把其中的Brush Setting中的Type设为Create。接下来,用下面描述的步骤来给悬崖的边上添加像房檐一样的几何形状,步骤如下:左键点击会创建新的几何形状。减少Radius(半径)会减少创建的几何体的形状。几何体可以是正方体或球体。使用Alight Plane中的功能可以很好的控制你创建的几何体。首先点击其中的“Setup position”,移动或者旋转出现的那个平面,把它放到你想放的位置,记下来点击“align to plane”,现在可以在这个平面上绘制你的voxel对象了,可以将Type从Create设为Blur来改变笔刷,这样就可以修整你的几何体,来平滑它的边缘,直至到达你满意的效果。

 


示例二:创建一个洞窟
这一次我们还是想在那个山上动手脚,不过这回我们打算在上面建一个山洞。

首先,在想要的位置放置一个VO,就像我们上面做的那样。因为我们想去地形表面的下面,所以我们得告诉游戏的物理引擎我们想在这儿搞一个洞。仍然在右面的滚动栏里,找到Terrain(地形)中的Holes(洞),在你想要的地方放置一个洞,注意这只是改变了你的等高图,并没有改变VO。

接下来就是和上面的例子不同的地方了。“LinkToTerrain”选项是不允许我们在地形的下面创建一个洞的,它只允许我们在地形的上面添加细节。我们使用复制等高图数据来替代那个选项。这样我们就可以利用Voxel Painter工具来完全控制这块区域了。

 

 

如下图,选择VO并且点击"Copy Terrain into Voxel"这个按钮,在VO覆盖的地形区域上我们刚才在等高图上创建的那个洞就看不到了。

现在我们可以来挖这个洞了。在滚动栏里打开“Terrain -> Voxel Painter”,选择Brush Settings中的Type为Subtract,在洞的位置上连续点击左键。同样的,在这里使用“align to plane”功能仍然是很有用的。

改变一个VO的材质
在“Brush settings”中,选择Type中的Material,接下来在下面的Surface types(表面类型)中选择一个3D材质。现在你就可以用左键给voxel区域上绘制材质了。

 

与悬崖的材质被用来进行一般的地形绘制一样,在voxel上绘制的材质应该有3中子材质,每一个对应xyz轴中的一个。因此作为基础,让我们来使用以下的材质:在Material Editor中选择materials/voxel/rock_mine

如下图,在Terrain/Texture窗口中创建一个新层。

 

点击“Edit Surface Types”

添加一个新类型

进入Material Editor(材质编辑器)并选择你的材质

关闭Material Editor并且点击Pick Selected

现在你就可以在voxel工具中的表面类型中选择新的材质了。

 

 

结果
就像你看到的那样,只要肯练习,靠给已有的地形中添加voxel对象,创建洞穴或者完成独立的voxel关卡,你就能取得很棒的成果。


 

这是我自己今天挖的洞,至于平滑洞口也很简单,只要挖好了再用Holes那个工具在边缘修正一下就可以了





esonic /游侠会员


 

 

原创粉丝点击