VisionEngine游戏对象中装饰组介绍

来源:互联网 发布:品牌营销找优爵网络 编辑:程序博客网 时间:2024/04/30 09:13
引言

装饰组图形代表一个实例化对象空间组。 这些对象可以是植被对象,或其他需要在场景中大量实例化的低多边形数对象。

在运行库侧,引擎使用一种优化的渲染方式,所以,和使用单个实体相比,使用实例化对象有很大的性能优势。 当一组图形被创建后,即可鼠标点击场景、创建单个实例。

 装饰组图形

装饰组图形位于几何体图形组,从图形创建面板将装饰组图形实例拖拽到场景中即可完成添加。

当某个实例被添加到场景中后,您会看到一个对话框,选择合适的低多边形几何网格并点击 OK。

 装饰组工具框

当装饰组图形被添加到场景中时,会显示一个装饰组工具框,让您进行多种选项的编辑。

New Instance(新实例)模式,可将选中的新几何网格实例放置到场景中(CTRL + 鼠标左键)

Re-centre Pivot(重新中置中心点): 选择该选项让组中心点重新居中。

Drop to Floor(掉落到地面): 选择该选项使所有实例掉落到地面。

Relax Position(逐步扩大): 选中该选项,改组所有实例间的距离会略微拉大,在几何网格之间创造更多空间。

Remove Overlaps(移除重叠): 该选项可移除一切边界与其他实例重叠的实例。

其余工具框控制选项:

Relative Scaling(相对缩放比例)该值设定了组内所有实例的相对基底缩放比例。

Randomness(随机值)该滑块值设定了实例缩放的变量值。

  使用装饰组图形工作

在实践中,装饰组图形使用起来非常快捷,只需选中”新实例图标”,设定相对缩放比例和随机值,然后在您需要放置新实例的位置按 CTRL + 点击鼠标左键

一个实例被创建后,将会在场景图形列表的装饰组根目录中列出。 任何实例均可单独选中并按您的需要随普通几何网格转化。

 装饰组相关操作菜单

大部分添加到场景列表视图中的图形都有相关操作菜单,该图形也不例外。 相关操作菜单中的可用选项与上文介绍的工具框相同。

每个装饰组实例都有其自己的相关操作菜单。

装饰组选项

除了位置、朝向等基本属性,装饰组还有若干专用属性。

  • SingleModelFile(单个模型文件): 该组使用的装饰模型文件。 或者也可指定包含一套模型的 GroupFile(组文件)。
  • GroupFile(组文件): 组文件包含对多个装饰模型文件的引用,每个实例会随机选择其中的一个模型。 组文件为可选属性,一旦启用,则单个模型文件属性将被忽略。
  • FarClipDistance(远切距离): 该组的远切距离,可选属性。 组内的所有实例将被同时剔除,因为被剔除的是组,而非单个实例。 将值设为 0 可关闭剔除。
  • VisibleBitmask(可视性位元蒙版): 组可视性位元蒙版,决定了周边渲染环境下的可见状态。

 物理属性选项

装饰实例仅支持一种碰撞几何体类型,即每个实例中心点周围的碰撞胶囊。 胶囊半径可调,也可在 vForge 中预览。

  • CollisionCapsuleRadius(碰撞胶囊半径): 如果您将该属性设为 0,装饰组中的对象不会进行任何碰撞判定。
  • ShowCapsules(显示胶囊): 预览碰撞胶囊几何体。

 隐式组分裂

vForge 中创建的组的大小也许并不适合运行库,可能是性能原因导致,也可能是因为每组对象数量的硬性限制。 所以,组图形有一个名为‘Runtime Group Splitting’(运行库组分裂)的属性类别,允许将组隐式分裂成多个运行库组。 其分裂标准直白易懂:

  • MaxGroupSize(组大小上限): 单个组分裂前边界框的最大范围(以世界单元为单位)。 例如,如果某组在 vForge 中的大小为 2000m x 3000m,MaxGroupSize 设为 1000,则运行库侧会创建 2*3=6 个组。 该功能可极大改善性能,因为较小的空间组更适合进行高效的剪切。
  • MaxInstancesPerGroup(每组实例上限): 一个组分裂前的实例最大数量。

值得花时间对这些值的设定进行尝试,以找到性能最佳组合。

 烘培模式

装饰组可通过‘relevant operations’(相关操作)切换成‘baked mode’(烘培模式)。 在该模式下,该组所有子项实例都被保存为一个二进制文件。 随后,所有子项图形都被移除。 也就是说,单个实例无法被编辑、添加或移除。 不过,其好处在于场景载入速度会大大加快,而且该场景的内存占用会显著减少。 所以,当某组已完成创建,或估计长期不会修改时,建议使用烘培模式。

相关操作中的‘Un-bake’(去烘培)可取消烘培模式。 该操作将二进制文件内容恢复成组的子项图形。 这一流程可无限次往复进行,但恢复到图形的转换会有所损失。 例如,子项的图形名称不会保留。 但每个实例的所有运行库相关信息都会保留。

二进制文件的文件名可手动指定,也可(推荐)让程序在场景层文件夹中自动生成唯一的文件名。 如让程序自动命名,当使用‘Save as’(另存为)指令将场景保存到新位置时,这些文件也会被一同复制。

所产生的 .vgroup 二进制文件必须放入版本控制,使其能够被 vForge 场景获取。 但运行库侧不需要该文件,因为导出的 .vscene 场景文件已将实例序列化。 所以烘培在运行库侧没有任何好处,但在 vForge 内非常有帮助,尤其是对大型场景或大型组。 此外还有一个用来对 .vgroup 二进制文件进行程序读写的 API。

转自:projectanarchy中文社区 http://www.anarchy.cn/portal.php?mod=view&aid=61

0 0
原创粉丝点击