Vision引擎中 环境地形植被

来源:互联网 发布:usb端口管理软件 编辑:程序博客网 时间:2024/04/29 02:21

引言
植被对象是轻量级装饰对象,没有游戏互动。 地形系统中有一条用于显示植被的专用渲染通路,其渲染速度比通过实体等方式渲染同样数量的植被要快得多。
地形编辑器”Vegetation”(植被)选项卡的列表中可添加不限数量的装饰模型和公告牌,帮助您创造出带有丰富茂盛的植被的场景。

植被类型
vForge 地形系统支持为植被类型使用标准几何网格或镜头对齐公告牌。

目前支持以下植被模型类型:
*.model(引擎模型文件):引擎模型与地形对齐,因此可模拟密集的植被(例如草地)。 风动画为可选特性,应用于专用顶点着色器。 这些模型实例内部的呈现方式相当紧凑,不作为实体呈现。 它们会作为独立批次渲染,带有特殊优化。 与这些实例的碰撞可选用简单的胶囊方式,但不能使用更复杂的碰撞。 胶囊半径可作为植被通道属性指定。
*.atlas(屏幕对齐公告牌): 这种植被类型适合特定草地类型或远处的树木。 纹理集文件定义了公告牌图像使用的纹理子矩形。 最简单的纹理集只有一个框架,覆盖了整个纹理。 .atlas 文件可通过植被选项卡中的相应工具栏项来创建和编辑。 这些文件与公告牌组图形使用的纹理集文件兼容。 纹理集文件只在 vForge 中需要;运行库总是使用预烘培格式的公告牌,所以零售版本中无需附带 .atlas 文件。 公告牌的性能负担很低,是大范围装饰地形的好选择。
*.srt(Speedtree 5.0 树木模型): 地形植被系统内置 Speedtree 5.0。 请注意,您需要购买 Speedtree 许可证方可在零售版中使用这一植被类型。

哪种植被类型最合适?

公告牌对远距离物体非常适合,例如密林中的树木或远方地平线的山顶。 由于视觉效果的原因,它们通常不是镜头近处对象的最佳选择。 密集草地可使用 *.model 文件添加。 理想状态下,一片草地(例如一平方米)应建模后在修剪对齐模式下以高密度绘制。 因为引擎使用硬件来实例化此类渲染,所以渲染性能非常优异。

Speedtree 模型的视觉质量极高,同时还有内置 LOD。 所以,它们是高品质树木模型的理想方案。 不过依然要注意的是,Speedtree 模型会显著增加总体性能中的多边形负担,因为模型通常都有极高的多边形数,哪怕在低 LOD 下也一样。

局限
植被绘制非常适合在镜头周围渲染的密集植被。 不过局限依然存在:
不可能支持复杂碰撞: Speedtree 图形能使用在建模工具中创建的碰撞胶囊,.model 文件也可选择使用一个胶囊。
但任何游戏互动都是不可能的(例如无法移动)。
不能完全控制精确位置。
植被模型的剪切距离应非常小。
每个模型 1 个 alpha 混合材质
如果有任何限制对某个装饰类型来说不可接受,则应该用实体。

公告牌
作为植被使用之前,需要在一个纹理集文件中定义公告牌。

几何网格
植被系统可使用标准模型文件或第三方 Speedtree 模型。 标准植被装饰模型的文件类型为 *.model(同实体)。 为了进行渲染,该模型文件必须具备如下属性:

仅由一种材质构成。
使用 alpha 混合,从而实现远距离淡出。

添加一个植被类型
要在列表中添加一个植被类型,只需选择添加图标并定位一个合适类型的植被文件:*.Model、*.atlas 或 *.srt 皆可。 该文件会被添加到列表中,可随时用于绘制地形。

移除一个植被类型
要移除一个植被类型,选中该项并点击删除图标。 该操作将从列表和场景中移除该项。

   注: 这是破坏性操作,所以在使用之前请务必保存。 撤消无法重新绘制地形,只能将该植被类型恢复到列表中。

绘制植被
要绘制您的植被,只需选中植被装饰类型,然后使用组合键 CTRL + 鼠标左键来绘制,CTRL + 鼠标右键来擦除。

   绘制提示:

  • 如果您无法看到新植被,请确认观察距离是否设置正确。 这可以通过调整近切和远切距离属性来实现。
  • 如果绘制添加的项不太多,请提高 Density(密度)设置。
  • 如果一切显得过于雷同或过于齐整,试着修改图集概率(如果您使用公告牌),调节 SizeVariation(尺寸变量)和分布随机性。
程序化生成植被密度
植被系统提供一些过滤器,用来为选中的装饰类型程序化生成植被密度。 可通过插件代码添加自定义过滤器类型。 这些过滤器可根据一套规则迅速覆盖大片区域,从而加快开发速度、减少布置游戏世界的时间。 使用过滤器时,您可以随时换回手动模式绘制植被,以进行更精确的控制。

要生成植被密度,右键单击模型并从上下文菜单中选择一个过滤器:

清理
清理过滤器可迅速减少所选装饰类型的数量。 这与装饰密度属性的工作方式类似。

从光度纹理导入
该过滤器可让您载入之前保存的植被密度贴图并应用到选中的装饰类型上。 

从细节纹理
该过滤器可让您将植被放置到某个特定细节纹理上。 选择源纹理并设定缩放比例值以控制装饰的放置密度。

例如,您可以使用青草细节贴图作为放置青草装饰类型的密度贴图。

从斜度
设定好最大和最小角度,您就可以将植被应用到场景的特定区域,并用maxDensity(最大密度)属性控制覆盖量。 这是非常快速地为您的世界布置植被的方法。 为不同的植物类型选择不同的角度限制,再结合细节过滤器,您的世界很快就会被茂密的植被所覆盖。

在静态几何网格上绘制
有时,您可能需要在静态几何网格上绘制植被。 例如,当您使用悬崖模型,且附近的植被也需要放置到该悬崖顶部;或是历经岁月侵蚀的废弃老建筑,植物已在残垣断壁中安家。

使用工具栏图标选择静态几何网格,您就可以把静态几何网格当成地形,在上面轻松地进行绘制。

 风只能通过内置着色器应用于模型类型。 通过项的属性,每个装饰的风强度可以分别调整:
Shader Properties(着色器属性) → ApplyWind(应用风) 

光度覆盖
光度覆盖功能为您提供可视反馈,让您了解每种植被装饰类型分别绘制在哪些区域。 当您绘制了很多植被类型、需要定位某个特定类型所绘制的区域时,这一功能会非常实用。

在 vForge 内,每种类型的植被都以其植被密度表现。 密度代表地形上的概率分布。 切换工具栏上的图标,即可将密度可视化为灰阶覆盖。

属性
地形编辑器植被部分的属性是变化的,根据选中的植被装饰类型,好几个属性组都会有所不同。

   注: 当某个参数被改变,场景会立即反映这一变化,因为这可能占用大量时间,您可以在属性对话框中一次性编辑所有属性。 要打开属性对话框,请双击选中列表项,即可在引擎更新场景前一次编辑多个属性。

常用属性
所有类型都有如下常用属性:

资源文件

Name(名称): 植被装饰项的名称。 该名称被引擎忽略。
FileName(文件名): 植被装饰项的文件名。

尺寸和分布组

AverageScale(平均缩放比例): 装饰的平均缩放因数。 1.0 的值将该实例设为原始大小。
SizeVariation(尺寸变量): 平均尺寸(百分比)变量。 值为 0,则所有装饰实例都会是一样大小,值越大,不同实例的大小差异就越大。 例如,如果平均缩放为 1.0,变量设为 60%,则尺寸会在 0.4 到 1.6 的缩放间隔之间变化。

Density(密度): 相对密度因数,较高的值产生较高的绘制植被装饰密度。 因数为 1.0 时所使用的网格和模型边界框同样大小。 因此该因数与模型尺寸和其平均缩放比例有关。

DistributionRandomness(分布随机性): 如改变该值,植被实例会随机改变其位置,如果是基于模型的装饰,则旋转也会变化。

导出为光度
如果该装饰要被导出为密度贴图,则使用该文件。

公告牌

NearClipDistance(近切距离)模型类型被剪切的距离,以世界单元为单位。
FarClipDistance(远切距离)模型类型被剪切的距离,以世界单元为单位。 植被着色器也能支持 alpha 软淡入淡出。
VisibleBitmask(可见位元蒙版) 渲染过滤器位元蒙蔽,用于在渲染上下文中过滤该装饰类型。
CastLightmapShadows(投射光照贴图阴影)如启用,该植被会在静态光照计算中投射阴影,因此只能用于大型对象。
CastDynamicShadows(投射动态阴影)如启用,该植被会投射动态阴影(例如在延迟系统中)。
CustomLightmapCasterMesh(自定义光照贴图投射器几何网格): 如果为该装饰类型启用光照贴图阴影,则该参数定义了一个可选的、用于该光照贴图的低多边形几何网格。 这一几何网格不用于渲染。

模型

ModelAlignment(模型对齐)定义了装饰在地形上摆放的模式。 树模型通常为“AlwaysVertical”(始终垂直),但草地块和类似模型应与地形对齐。 “ShearedAligned”(剪裁对齐)是一种特殊模式,会生成非正交旋转矩阵,将模型地平面与地形对齐,但保留 Z 轴垂直。
PivotHeight(中心点高度)中心点离地面相对高度(0.0 = 模型中心点;1.0 边界框底部)。
NearClipDistance(近切距离)模型类型被剪切的距离,以世界单元为单位。
FarClipDistance(远切距离)模型类型被剪切的距离,以世界单元为单位。 植被着色器也能支持 alpha 软淡入淡出。
VisibleBitmask(可见位元蒙版) 渲染过滤器位元蒙蔽,用于在渲染上下文中过滤该装饰类型。
CastLightmapShadows(投射光照贴图阴影)如启用,该植被会在静态光照计算中投射阴影,因此只能用于大型对象。
CastDynamicShadows(投射动态阴影)如启用,该植被会投射动态阴影(例如在延迟系统中)。
CustomLightmapCasterMesh(自定义光照贴图投射器几何网格)如果为该装饰类型启用光照贴图阴影,则该参数定义了一个可选的、用于该光照贴图的低多边形几何网格。 这一几何网格不用于渲染。

ApplyWind(应用风)应用到该装饰上的风力量。 该功能仅对基于装饰类型的模型起效,不对公告牌起效。
RelativeFadeOutStart(相对淡出起点)相对于远切距离的起点,从该点开始淡出。 默认值是 0.8,表示在远切距离 80% 处开始淡出。
ApplyConstraint(应用约束): 必须由植被着色器支持。 定义此类型受代码定义的专用球体约束影响的程度。

Speed Tree

PivotHeight(中心点高度)中心点离地面相对高度(0.0 = 模型中心点;1.0 边界框底部)。
VisibleBitmask(可见位元蒙版) 渲染过滤器位元蒙蔽,用于在渲染上下文中过滤该装饰类型。
CastLightmapShadows(投射光照贴图阴影)如启用,该植被会在静态光照计算中投射阴影,因此只能用于大型对象。
CastDynamicShadows(投射动态阴影)如启用,该植被会投射动态阴影(例如在延迟系统中)。
CustomLightmapCasterMesh(自定义光照贴图投射器几何网格)如果为该装饰类型启用光照贴图阴影,则该参数定义了一个可选的、用于该光照贴图的低多边形几何网格。 这一几何网格不用于渲染。
转自:projectanarchy中文社区

0 0