Vision引擎 vLux 光照贴图中Light Grid(光照网格)介绍

引言
vLux 允许您为场景计算光照网格,该光照网格可表现任意数量的静态光照对动态对象的光照效果,且能够在一个通路内渲染一个对象,并附带凹凸贴图。 这些对象可以是需要在特定世界位置上评估场景亮度的实体、粒子组、墙壁痕迹乃至自定义对象。

Vision 的标准光照网格是预计算的格子系统,每个格子都可储存所有 6 个立方体指向上的静态光照影响。

为了在移动设备上减少性能负担和内存消耗,Vision 支持简化光照网格,其光照影响来自一个指向光照和一个非指向性环境光照。

对于实体光照,实体中心可选填补偿值,用于查看带三线插值的光照格子颜色。。 这些插值颜色可追踪到着色器注册信息中,并被像素着色器处理。 其结果是为实体模型生成高质量的光照,并支持如下功能:
a) 任意数量的静态光照(数量不会影响性能)
b) 模型表面法线贴图(所有光照!)
c) 高光
d) 世界静态遮挡器(因为网格是预计算的)
e) 静态光照辐射度(若在 vLux 中启用)
光照网格的光照可以完美匹配静态世界几何体光照(光照贴图),因为两种光照基于相同的光照方程和遮挡信息。 vLux 可以为场景生成一个光照网格,会考虑到所有静态光源。

为光照网格添加细节
vForge 中可添加光照网格细节框,用来手动控制场景的光照网格细节层次。 也就是说,可以视需要添加高分辨率区域,从而影响光照网格的细节。

美工可使用光照网格细节框标出需要比 vLux 中全局光照网格分辨率设置更高分辨率的区域。 这些图形不会影响导出的 .vscene 文件。

光照网格边界框和细节框 - 差别
光照网格边界框和细节框的差别在哪里?
vForge 中既有 LightGrid Bounding Box(光照网格边界框),也有 LightGrid Detail Box(光照网格细节框)图形。 因为有可能造成混淆,我们先解释一下两种图形的差别。

引擎为每个场景使用一个光照网格,另为每个区域使用一个额外的光照网格。 对象总是使用它们初始所在场景或区域的光照网格。 如果某对象属于某个区域,但离开了该区域光照网格所覆盖的范围,则该对象会使用该区域光照网格中最近的采样点。 它不会自动改用场景光照网格。
Light grid Bounding Box(光照网格边界框):定义光照网格的大小和初始分辨率。 您可以为每个光照网格指定一个边界框图形,也就是说,您可以为每个场景和区域指定一个光照网格边界框。

Light grid Detail Box(光照网格细节框): 影响光照网格分辨率,但不会改变光照网格的大小。 因此,您可以使用细节框来指定某个光照网格中的高分辨率范围,这一范围位于“光照网格边界框”的上层。 如果有两个细节框彼此重叠,则重叠范围采用分辨率更高的那一个。

光照网格分辨率
光照网格分辨率在 vLux 设置 - 光照网格设置类别中设定。

这三个参数定义了网格每个轴向的子分区数量。 如果您的场景共有 32000x32000x4000 个世界单元,而您有(32,32,4)个子分区,则每个光照网格格子占用 1000 个世界单元。 这一分辨率对某些光照多样性不大的户外场景来说可能足够,但对于室内部分远远不够精确。 为了在场景某些区域获得更高的细节度,Vision 支持将光照网格中的任意格子分割成子格:

您可以使用 vForge 编辑器光照网格细节框图形来创建这类子格。 该图形提供了更改其体积内子分区数量的选项。

光照网格边界框
光照网格边界框 图形定义了用于计算场景光照的全局边界框,即网格的大小。 查找光照网格的颜色时,位于边界框外的位置将被夹取到边缘。

   注:
此图形仅和重计算光照相关,因此不可导出。 每个场景中只能有一个该图形实例。

光照网格细节框
光照网格细节框为您提供在场景中最需要的区域直观可见地提高光照网格分辨率的方法。 一个场景中可使用的细节框数量不受限制,就和边界框一样,此图形仅和重计算光照相关,因此不可导出。

可通过 3D 控制器移动细节框,并可拖拽黄色小方块手柄来增加其大小。

在该细节框体积内,引擎强制使用更高精度的光照网格为与该框相交的格子进行光照计算。 图形子分区属性控制了精度的分辨率。

BoxSizeX、BoxSizeY、BoxSizeZ(框尺寸 X、Y、Z): 包围盒体积大小。

SubDivX、SubDivY、SubDivZ(子分区 X、Y、Z) 相交格子的格子子分区数量。

场景中可添加不限数量的细节框。 如果两个细节框重叠,则使用格子子分区的分量共轭最大值。
  注:
如果两个细节框重叠,则使用格子子分区的分量共轭最大值。
如场景已有一个光照网格,细节框图形会以直观可见的方式表示受其影响的格子:

光照网格指标
光照网格指标是一种用于开发的辅助图形,不会随最终场景导出。 通过评估图形所在位置的网格颜色,可使用光照网格指标直观可见地调试场景光照网格信息的输出结果。

该指标图形所在位置周边的光照网格会被显示(可选,通过 RenderGrid(渲染网格)属性开启)。 光照网格格子的显示数量基于指标图形 Display Radius(显示半径)属性的大小。

为了您的便利,该图形提供 TextLabel(文本标签)属性,可在图形位置显示 3D 文本。
更改静态几何网格样本补偿
为一个静态几何网格图形执行光照贴图时,您可以选择使用所提供的属性来更改样本补偿。

要编辑样本补偿,您可以修改上图所示的 SampleOfsX/Y/Z(X/Y/Z 样本)值,或者将
ShowLightGridWidget 设为 True,从而在当前样本补偿数值旁显示一个小 3D 控制器。 例如,在该图中,所有设置都为 0,从而将光照网格小部件设到静态几何网格的中心。

要移动光照网格小部件,选择一条小部件的轴线并朝某个轴向拖拽。

一旦移动后,这些数值会在静态几何网格的属性中更新。

以下为相关属性:

ShowLightGridWidget(显示光照网格小部件): 如启用,将渲染出一个 3D 小部件,允许您修改 3D 视图中的补偿。

SampleOfsX/Y/Z(X / Y / Z 采样): 定义用于收集光照网格样本信息的 X/Y/Z 相对位置偏移。

LightmapSizeMultiplier(光照贴图尺寸倍增): 当该几何网格中的材质有光照贴图时,该值定义了相对光照贴图的尺寸因数,可增加 / 减少该实例的光照贴图分辨率。
转自: projectanarchy中文社区 http://www.anarchy.cn/portal.php?mod=view&aid=75

猜你喜欢

转载自projectanarchy.iteye.com/blog/2098760