摘 要:在虚拟现实领域,树木的低分辨率三维模型资源必不可少。通过树木模型再设计、两套树叶贴图的设计制作、静态照明的创建、风动画、环境光遮挡的计算、碰撞对象的添加等环节,创建的树木低分辨率三维模型资源完全符合虚拟现实领域的要求。
关键词:低分辨率;树木;三维模型
采用SpeedTree Modeler UE4创建低分辨率的模型成为动漫和数字媒体艺术领域一种愈来愈普遍的方式。不过,用于虚拟现实领域的低分辨率树木模型与用于影视的高分辨率树木模型的贴图设计与制作技法,有所不同。其一,树干和树叶划分不同。高分辨率树木模型,需要把树干和树叶的贴图分开绘制,而低分辨率的树木模型虽然也需要单独制作树干贴图,但还需要把小树枝与树叶结合起来设计贴图。其二,通道数量不同。用于影视的高分辨率树木的贴图通道多,SpeedTree Modeler UE4中提供了10个通道,而用于互动媒介的低分辨率树木模型的贴图通道较少,SpeedTree Modeler UE4中只提供了5个通道。其三,树干和树叶的排列方式不同。从古柏的小树枝和树叶的贴图设计制作过程中就可以直观体会到这种不同。
1 古柏树模型和贴图创建
在SpeedTree Modeler UE4中创建树木模型,过程既可以复杂,又可以简单。从程序商店购买需要的三维树木模型几乎是一键操作,十分容易,但结果不一定令人十分满意。以程序中预设的范例三维树木模型为基础,通过编辑获得创作者满意的模型,比从主干、树枝、小树枝、树叶一步一步创建模型来得更容易。普通古柏的三维模型是以程序范例树木模型“Broadleaf_Desktop”为基础,通过节点模式调整树枝的位置、长短和角度,编辑属性栏树干、树枝的参数,编辑生成器中树干、树枝、树叶的节点等环节来完成创建的。
小树枝和树叶的贴图设计制作可分为两个阶段,第一阶段,选择合适的古柏树叶进行图像采集。采集古柏树叶、树枝图像素材的办法有无数种,但需要注意的要点只有一个,即为了使采集的图像在随后的数字图像处理中变得更加容易,视觉效果更好,一定要选择光影变化不大、背景颜色单纯、拍摄角度恰当的图像素材,否则,辛苦采集来的图像可能因为图像处理难度太大或视觉效果差而变得毫无用处。第二阶段,选择合适的树叶排列方式、恰当的树干表现形式制作贴图。最终,设计制作出两种排列方式的Diffuse(颜色)贴图、Normal(法线)贴图和Specular(高光)贴图。这两种排列方式,一个以Broadleaves(阔叶)形式分布在树枝上,另一个以Cards(卡片)形式主要分布在树冠顶部的位置。如此设计,一举三得,既符合柏树树叶排列的规律,又增加了树叶的变化层次,还能掩盖一部分贴图中树干外漏的瑕疵。
为了更好地表现古柏树的造型特点,还需要调整小树枝和树叶的网格。在生成器中选择树叶节点和材质面板中的树叶贴图,单击Generate Mesh(生成网格)按钮,此时会弹出对话框,通过对网格的Width steps(宽度步阶)、Height steps(高度步阶)等控件参数进行编辑,使小树枝和树叶的网格与贴图相适应。
2 树木模型静态照明的创建
为了在UE4中使用静态照明(Lightmass),必须为树木模型计算一组展开的UV坐标,这种UV映射被称为模型的光照贴图。获得一个良好的光照贴图需要科学和艺术的融合,在SpeedTree中创建光照贴图的UV映射,一般有四个步骤:
第一步,切换到光照贴图密度渲染模式。点击工具栏中的Render(渲染)按钮,将渲染模式切换为Lightmap density(光照贴图密度),此时,可视化显示了光照贴图分辨率在树木模型中的分布情况,旨在与UE4中的相同可视化模式Show(显示)>Lightmap density(光照贴图密度)紧密匹配。模型的绿色部分表示理想光照贴图密度;蓝色部分表示光照贴图分辨率太低,并且可能会在UE4的光照贴图构建时显示伪像;红色部分表示光照贴图分辨率过高,多边形有浪费。
如果选择树木模型的一个节点,便可在位于窗口左下角的光照贴图上查看它在光照贴图中的位置,也可选择光照贴图中的UV簇来查看它们是模型的哪个节点。
光照贴图的大小单位很重要。选择生成器中的Tree节点以外的其他节点,可在属性栏Lightmap(光照贴图)组中编辑Scale(缩放)控件,保证导入到UE4中缩放模型的量是相同的。此处的默认值是1.04,它与导入器的默认值相匹配。
第二步,选择光照贴图分辨率。光照贴图的分辨率取决于项目的需求和三维树的复杂性。通过选择生成器中Tree(树)节点并在属性栏Lightmap(光照贴图)组的Target Resolution(目标分辨率)中,选择目标光照贴图分辨率的大小。如果模型过于复杂且不适合所选择的分辨率,那么系统会在输出时发出警告,并且将把不恰当的分辨率调整到最小分辨率。如此处理,将使模型中的每个节点在光照贴图中至少有一个纹理元素,同时保留必要的一个纹理边框以防渲染伪像。
Lightmap(光照贴图)组的Display multiplier(显示倍数)控件,将显示分辨率相同或大于目标分辨率的光照贴图密度。使用此选项将会把uvs打包到较小分辨率的贴图中,并预览较大分辨率的贴图在打包时的样子。这种方法允许将光照贴图uvs打包到一个小空间中,并仍尝试使用更高的分辨率。
第三步,调整光照贴图。当确定了光照贴图的分辨率后,下一步就是调整光照贴图的分布方式。一般来说,树干、较低的树枝和根部,是参与者最容易看到的区域,需要的光照贴图密度应该是最高的。如果光照贴图密度太低,则最容易出现明显的伪影。
第四步,选择UE4中的光照贴图分辨率。在UE4中导入模型时,它具有像所有静态网格物体一样的默认光照贴图分辨率125,此时需要选择网格资源并输入在此前确定的光照贴图分辨率。
3 树木模型的风动画
在风动画方面,SpeedTree Modeler UE4与SpeedTree Cinema幾乎完全一致。从风向导开始,对预设的几个风的问题进行选择性回答,是获得树木模型风动画的最佳途径。另外,选择Fan(风扇)对象并通过属性栏Presets(预设)组选择Style(样式),将直接影响树木模型风动画在UE4的呈现效果。
4 树木模型细节层次的创建
通过选择Tree(树)生成器并勾选Level of Detail(英语缩写LOD,意为细节级别)组中的Enabled(启用),设置当前被选择节点的细节级别。每个生成器,如Trunk、Knots、Leaves等节点,在属性栏都有一个细节级别控制组,用来控制树木模型的细节级别。
5 树木模型的环境光遮挡计算
SpeedTree将为树木模型的每个顶点计算Ambient occlusion(环境遮挡)值,并可以链接到UE4的材质环境遮挡材质着色器中。执行菜单Tools(工具)>Compute ambient occlusion,弹出Ambient occlusion对话框,调整参数至适当。
6 树木模型的碰撞对象添加
把一系列球体和胶囊状几何体添加到树木模型中,它们将在UE4中起到碰撞体作用。添加碰撞对象最快方法是在菜单栏选择Tools(工具)>Generate collision primitives…(生成碰撞原语),SpeedTree将自动添加碰撞体。为古柏树模型添加碰撞对象后,可在属性栏调整碰撞对象的类型、大小、位置、旋转等。
7 结语
通过树木模型再设计、两套树叶贴图的设计制作、静态照明的创建、树木模型的风动画、树木模型的环境光遮挡计算、树木模型的碰撞对象添加等环节,创建出的低分辨率模型完全符合虚拟现实领域的要求。
作者简介:贺宏福(1975—),男,陕西宝鸡人,渭南师范学院副教授,主要从事文化资源的三维数字化与动画创作研究。