`
projectanarchy
  • 浏览: 14846 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Vision引擎中 环境地形植被

 
阅读更多
引言
植被对象是轻量级装饰对象,没有游戏互动。 地形系统中有一条用于显示植被的专用渲染通路,其渲染速度比通过实体等方式渲染同样数量的植被要快得多。
地形编辑器”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(自定义光照贴图投射器几何网格)如果为该装饰类型启用光照贴图阴影,则该参数定义了一个可选的、用于该光照贴图的低多边形几何网格。 这一几何网格不用于渲染。
分享到:
评论

相关推荐

    NI Vision Assistant中文入门教程(带书签)

    NI Vision Assistant中文入门教程(带书签)

    vision-zjh

    【vision-zjh】是关于Vision引擎的文档资料,它提供了对Vision引擎的深入理解与使用指导。Vision引擎是一款先进的计算机视觉库,专为处理图像数据和实现机器学习算法而设计。在这款文档中,我们可以期待找到一系列...

    NI Vision Assistant中文入门教程1.zip

    在提供的"NI Vision Assistant中文入门教程 (1).pdf"中,你将找到详细的步骤和示例,包括如何使用基本工具、执行特定的图像处理任务以及如何设置和优化检测流程。教程中的案例涵盖了从简单的边缘检测到复杂的形状...

    海康VisionMaster中使用OpenCvSharp程序

    在海康VisionMaster中使用OpenCvSharp,首先需要确保你的开发环境已经配置了.NET Framework,并且安装了OpenCvSharp的NuGet包。`LICENSE`文件通常包含了开源许可协议,确保你在使用时遵循正确的法律条款。`README.md...

    vision.rar_C# VISION引用_C#引用NI_Vision_c# vision_ni vision

    在本文中,我们将深入探讨如何在C#编程环境中引用并使用National Instruments (NI) 的Vision库,以便进行图像处理和机器视觉应用。标题"vision.rar_C# VISION引用_C#引用NI_Vision_c# vision_ni vision"以及描述"C#...

    NI Vision Assistant中文入门教程(高清PDF版)

    NI Vision Assistant中文入门教程,原帖地址(http://www.gsdzone.net/index.php/Home/Index/Index/index/cat_id/2841771288/t/3/id/805),现转为高清PDF版。

    µVision3中文帮助

    4.µVision3 工具 给出了有关内置工具如文件中实现快速查找,及外部第三方工具如SVCS或Flash编程工具的信息。 5.测试程序 描述了如何用µVision3 调试器进行仿真及测试整个应用程序。 6.调试命令 给出了在可用...

    NI Vision Assistant中文入门教程2011

    该软件支持与NI LabVIEW开发环境集成,使得用户可以方便地将视觉处理和分析的结果运用到更广泛的自动控制系统中。 教程首先介绍了NIVision Assistant的用户界面,包括欢迎界面、图像采集界面和图像处理界面。在这些...

    NI Vision函数详解_NIVision函数详解_NIVision截取

    本篇文章将深入探讨NIVision函数及其在图像处理中的应用。 首先,NIVision的核心是其丰富的函数集合,这些函数涵盖了从图像获取到图像分析的全过程。在“NIVision函数详解”中,我们将重点关注以下几个方面: 1. *...

    WPF技术框架进行VisionMaster二次开发控件应用实例

    在VisionMaster的二次开发中,ViewModel可以封装VisionMaster的API调用,将图像处理的结果暴露为属性,然后在View中通过数据绑定显示这些结果。这样,UI的更新和逻辑处理被有效地解耦,使得代码更加易于理解和管理。...

    VISION库模型.zip

    在VISION中,用户可以通过图形化的编程界面来创建和编辑虚拟仪器,进行数据采集、处理和分析。 在这个"VISION库模型.zip"中,我们可以期待找到各种电子元器件的模型,如电阻、电容、电感、二极管、晶体管、运算放大...

    Vision Pro开发的Unity模板

    2. **环境感知**:在虚拟现实中,Vision Pro可以帮助游戏理解真实世界环境,调整虚拟内容以适应玩家的物理空间。 3. **游戏AI**:结合机器学习算法,Vision Pro可以为游戏的敌人或NPC提供更智能的行为,使它们能够...

    GigE Vision Spec2.0中文完整版

    ### GigE Vision Spec2.0中文完整版 #### 一、引言 ##### 1.1 目的 GigE Vision Spec2.0中文完整版是针对工业图像处理领域的一项重要技术规范,旨在为基于千兆以太网(Gigabit Ethernet)的图像采集设备提供一个...

    NI Vision Builder AI中使用RS232进行通讯

    NI Vision Builder AI 中使用 RS232 进行通讯 NI Vision Builder AI 是一款功能强大的机器视觉软件,用于开发和测试机器视觉应用程序。在本文中,我们将探索如何在 NI Vision Builder AI 中使用 RS232 进行通讯,...

    gige gigeVision 实现

    在本文中,我们将深入探讨GigE Vision的概念、优势以及如何实现这一技术。 首先,GigE Vision 的核心是使用标准的以太网电缆进行图像传输,这使得传输距离远超传统的Camera Link或USB等接口,同时减少了布线成本和...

    VisionMaster算法平台用户手册V3.1.0.zip

    1. **平台简介**:介绍VisionMaster平台的基本功能和架构,包括其在智能视频分析中的定位,以及对硬件和软件环境的要求。 2. **安装与启动**:指导用户如何下载、安装和启动VisionMaster平台,确保用户能够顺利进行...

    NIVision的VisionImage转Halcon的HObject互转 DotNet指针操作.rar

    NIVision是National Instruments公司开发的,主要用于LabVIEW环境中的图像处理和分析;而Halcon则是MVTec公司出品的,以强大的机器学习和模式识别功能著称。在实际应用中,有时我们需要将NIVision处理的图像数据转换...

    VisionMaster算子图像格式互转

    本文将深入探讨如何在VisionMaster中进行图像格式的转换,主要涉及VM格式的CMvdImage与BMP格式之间的互转。 首先,了解两种图像格式的基本特性: 1. BMP(Bitmap)格式:这是最常见的位图格式,它包含了图像的每个...

Global site tag (gtag.js) - Google Analytics