Vision引擎vLux 光照贴图中vLux 设置介绍

引言
vLux 设置可以让您调整光照贴图属性,为场景创造最好的静态光照方案。 通过这些设置,您可以尽情使用多种通常只会在独立建模工具中找到的尖端光照技术。

如何打开 vLux
打开项目和场景后,前往 vForge菜单 → Lighting(光照) → Edit Settings(编辑设置)。 点击 Edit vLux Settings(编辑 vLux 设置)按钮,即可打开 vLux 设置窗口。

注:
在该窗口中选择自定义设置选项,用户可选择一个单独的光照设置文件作为默认光照设置使用。 这一选项非常适合于用来创建快速预览光照的配置。
如何使用 vLux
要使用 vLux,您可以打开 vForge菜单 → Lighting → Calculate Lighting(计算光照)。

或者,您可以使用 Relight Scene(重置场景光照)对话框中的 Relight(重置光照)按钮,该对话框可通过 vForge菜单 → Lighting → Edit Settings 打开。

您也可选择使用工具栏的 Calculate Lighting(计算光照)按钮。

注:
该工具要为您的场景生成光照贴图材质,所以此流程可能会占用一定的时间。 为了帮助您更精确地控制 vLux 光照贴图的输出,本章将探讨一些可用的 vLux 属性及其功能。
一般设置
可在此定义质量等级和其他全局设置

Quality(质量)
Granularity(粒度): 指定粒度倍增设定,该设定作用于编辑器中为每个表面专门设定的光照贴图粒度值。 例如,如果选择 HALF_RESOLUTION,则所有光照贴图的分辨率将按 0.5 的因数缩放。 也就是说,光照会更快,消耗的纹理内存大约为普通分辨率下的四分之一。 但光照贴图在引擎中显示的分辨率当然也会更低。 另一方面,DOUBLE_RESOLUTION 的倍增设定会生成分辨率更高的光照贴图。 如果您还有光照贴图空间可以挥霍(例如在普通分辨率下仅生成几个页面),那就尽可选择更高的分辨率来生成最终光照。
SuperSample(超采样): 如启用超采样,vLux 会内部提升光照贴图样本分辨率,并重新过滤结果。 该技术可实现更高的光照质量。
注:
超采样不影响生成的纹理数量,仅提升光照质量和延长光照计算时间。
所以,在最终光照中,应启用超采样以获得最好的质量。
每个超采样迭代都会增加每光照贴图采样跟踪的数量,因此……
1、2x 超采样会为每个样本生成 2×2 的区块。
2、3x 超采样会为每个样本生成 3×3 的区块。
3、4x 超采样会为每个样本生成 4×4 的区块。
Tracing(跟踪)
AllTwoSided(全部两边): 如启用,贴图中的所有三角形在光照计算中都视为两个面。 该勾选项可避免光射透多边形(如墙壁)。 该功能应始终启用,但要注意,启用后,光照计算速度会明显变慢。
TraceEpsilon(跟踪微差): 以世界单元为单位的微小值,用于偏移跟踪位置,以避免多边形边缘出现”自荫蔽”的问题。 该参数应保留默认值。
AdditiveStainedGlass(叠加式染色玻璃): 该设置指定了加乘式混合表面在跟踪流程中的处理方式。 如 AdditiveStainedGlass 设为 True(默认),加乘式混合表面会产生类似调色的染色玻璃效果。 如设为 False,带有加乘式透明的表面不会影响透过该表面的光照射线,也就是说,这些多边形被视为 100% 透明。
环境
GlobalAmbient(全局环境): 定义用于所有颜色计算的全局环境色。
注:
当使用全局照明 / 天空光照时不应使用该颜色。
SurfaceAmbient(表面环境): 如启用,则使用每个表面的环境色。 该颜色将添加到全局环境色上。 如关闭,每个表面的具体环境色将被忽略。
Light Equation(光照方程)
光照方程影响通过跟踪结果生成最终光照贴图的颜色的方式。
LightingEquation 枚举类型指定了色彩规则:
NORMAL: 通常调色。
MODULATE2X: 调色后再乘以因数 2。 色值为(128,128,128)的光照贴图表现为完全亮阶,任何比(128,128,128)更亮的颜色都会使基底纹理过亮。
MODULATE2X_SMOOTH: 在 MODULATE2X 的基础上添加平滑特征函数。 亮度不会线性增加。
MODULATE4X: 增亮效果的因数为 4。 请注意,暗区 [0..63] 的光照贴图会明显损失准确性。
MODULATE4X_SMOOTH: MODULATE4X 加上平滑特性。
所使用的规则会随导出的 .vscene 文件一同保存。 这允许引擎在载入贴图时自动切换到正确的光照贴图模式。
IntensityScale(强度缩放比例): 这是一个百分比值,指定了所有光照强度的全局缩放因数。 如设为 50,所有光照的强度将在光照计算时减弱为 1/2。 这是一个适合照明微调的有用功能。 另外,该功能在使用辐射度时也很重要,因为辐射度会大幅提高一切对象的亮度。
色彩映射
Brightness(亮度): 调整场景亮度。
Contrast(对比度): 调整场景对比度。
Saturation(饱和度): 调整场景饱和度。
输出
可在这里启用 / 禁用目标输出文件。

光照贴图
OutputLightmaps(输出光照贴图): 如启用,则生成光照贴图纹理。

Light Grid(光照网格)
OutputLightGrid(输出光照网格): 如启用,则为场景生成光照网格并保存为 <mapname>.vlg。
OutputSimpleLightGrid(输出简化光照网格):如启用,则为场景生成简化版本的光照网格并保存为 <mapname>.vslg。

微调文件
不支持该功能

光照贴图设置
可在这里设置光照贴图的具体属性。

光照贴图
PageSize(页面大小): 定义输出页面大小。 有效值为 256、512、1024 或 2048。

页面大小决定了目标光照贴图纹理的纹理大小。 纹理分辨率越低,生成的光照贴图页面就越多。 但另一方面,大纹理容易浪费纹理空间,也就是说,一张 1024×1024 的纹理上的光照信息可能在 512×512 的纹理上也能放下。 较小的纹理也易于在引擎中交换,如果是主机等纹理内存有限的平台,纹理交换就会比较频繁。 所以,1024 的页面大小可以视为最优化的选择,但如果需要高分辨率,也可能需要 2048。

CreateBumpLightmaps(创建凹凸光照纹理): 如启用,vLux 会创建凹凸光照纹理。
注:
该功能的使用对象是世界几何体上带有法线映射和 / 或高光的高端系统。 启用该功能会增加游戏应用中的预计算时间(估计 为 4 倍)和纹理内存消耗(估计也为 4 倍)。 如世界文件使用法线映射和 / 或高光,则使用该功能。

BumpLightIntensityScale(凹凸光照强度缩放比例): 这一百分比值影响到凹凸光照贴图相对于标准光照贴图的强度。 该缩放比例因数与全局强度缩放比例值构成叠加影响。 单独调节该值有其作用,因为,由于像素着色器的光照方程不同,凹凸光照贴图会比标准光照贴图显得更亮或更暗。 (如使用高光,一般而言凹凸光照贴图会更亮)。

注:
如禁用 CreateBumpLightmaps 选项,该值将不起任何效果。

光照蒙版

“光照蒙版”类别包含与光照蒙版有关的设置。 光照蒙版是特殊类型的光照贴图,将某个光源对表面的光照影响编码为纹理。 当静态光照需要遮蔽该静态光源本身投出的动态阴影(以避免重复阴影)时,引擎需要这一附加信息。
每个页面 / 光对编码成一个光照蒙版纹理文件。 用于照明的文件为 DDS 格式。
注:
光照网格不支持光照蒙版或同类功能。

LightMasks(光照蒙版): 如启用,则为相关的静态光照和受影响的原型体计算光照蒙版。 相关的静态光照是指附加阴影映射组件的光照。 如禁用,相关静态光照将烘培入标准光照模板纹理。

LightMaskThreshold(光照蒙版阈值): 这一阈值定义了创建光照蒙版的灵敏度。 如数值较大,则生成的光照蒙版较少(从而提升引擎的性能),但也会产生更多的视觉伪影。 通常设为 8 可以达到较好的平衡。

技术上讲,该值定义了一个原型体达到什么色彩强度(最大值 255)的情况下才被视为受光照影响。 该阈值仅影响光照蒙版,不影响光照贴图。
制图

该类别为影响 lit 页面”制图”的参数。 一张图表是一批必须毗邻光照贴图空间的多边形,这些多边形可避免光照贴图出现伪影。 分配和批处理图表时需考虑若干事项。

PagingRotationTries(页面旋转尝试次数): 将一张图表填入 lit 页面时的旋转尝试次数,旋转是为了使图表尽可能少浪费纹理空间。 例如,如果该参数为 4(默认值),则图表会每次旋转 90 度(就像俄罗斯方块)。 对于 8 次尝试,图表会每次旋转 45 度,这有可能破坏该图表的纹理排列。 8 次尝试可以将图表排列得稍稍紧密一些,但有时可能造成伪影。 该值应在 4 和 8 中选一。

TetrisStepsize(下落步进大小): 图表落入 lit 页面的步进大小,以像素为单位。 该值大于 1 可提升制图的计算性能(占光照流程的头 5%)。 因为这部分计算时间一般都不多,该值应始终设为 1。

ChartPrimitivesUnique(图表原型体独特性): 如启用,每个世界原型体(三角形链、高度场瓦片……)都会在一个独立的图表中。 否则,vLux 工具会批处理多个毗邻且共享同一个光照贴图平面的原型体。 该参数应始终关闭。

MaxChartLen(最大图表长度): 每个图表中单个三角形的数量上限。 如超过该上限,则图表会被分割。 该值为 2048 应该足够。

Guardband(保护带): lit 页面保护带的宽度(以像素为单位)。 vLux 在所有开放边缘保留该保护带,并以边缘色填充,以避免贴图出现黑边。 3 是一个合适的值。

SmoothShadingAngle(平滑着色角度): 工具开始平面着色两个面而非平滑着色边缘的起始角度偏差(以度为单位)。 如设为 0 度则平面着色所有平面,设为 90 度则平滑所有边缘。

外部光照贴图纹理后期处理
vLux 允许切换到外部工具来后期处理已生成的每一个光照贴图页面。 外部工具可用来添加非常微妙的模糊,或转换至压缩 DXT 格式。

ToolString(工具字符串): 指定激活哪个工具(必须为 .exe 文件)以及使用哪些参数。 保留字 $file 是一个用于对应纹理文件名( .dds 的绝对文件名)的占位符。

光照网格设置
vLux 能够输出光照网格文件(mapname.vlg),其中储存了静态光照照亮实体等动态对象的光照信息。 该光照网格文件是对静态光照贴图信息的补充。

子分区
这里定义了光照网格在 x、y、z 轴方向的子分区数量。 场景范围(所有几何体的边界框)被用来定义网格的大小,该大小被平均分成格子。

或者也可在 vForge 中创建一个光照网格边界框图形。 一个该图形的实例定义了所使用的网格范围(可以小于场景范围)和子分区的数量。
注:
如果定义了光照网格边界框图形,则该图形设置将取代 vLux 子分区设置。
x、y 和 z: 指定每条轴上的分段数量,从而定义格子分区数量。 较大的值会产生更多子分区,从而让光照网格的遮挡等效果更为准确,但也会消耗更多内存。
输出文件尺寸大约为 x*y*z*18 字节。
提示:
还应考虑到,一个典型的关卡在上下方向(z 轴)上的距离较短,所以 z 子分区的数量也能比 x 或 y 轴少很多。 作为调试的起点,64x64x8 是一个不错的组合。
ApplyGranularityFactor(应用粒度因数): 如启用,全局粒度因数(一半 / 通常 / 加倍)也会应用于 x、y、z 子分区数量。 这有助于按比例调低精度和计算时间,用于快速预览。 但因为光照贴图输出和光照网格输出共享相同的光照配置,该选项平时应关闭。

相关光照
UseObjectInfluenceMask(使用对象影响蒙版): 该属性决定了是否使用光照图形的 ObjectLightInfluence 值来过滤不应进入光照网格的特定光照。 具体而言,如 ObjectLightInfluence=0 且 UseObjectInfluenceMask=TRUE,则丢弃某光源对光照网格的影响。
注:
该属性只能有两种状态: ObjectLightInfluence==0 和 ObjectLightInfluence!=0。 真实的位元蒙版对比无法进行,因为所有光照都一起烘培到用于所有对象的光照网格中。
全局照明
全局照明是一个类术语,包括辐射度、对象间相互反射等高级光照概念,用于创建更真实的光照方案。

天空光照
vLux 工具的天空光照功能可用来取代全局环境光色,它以物理方式模拟了大气对光的散射。
注:
天空光照也会被光照网格纳入计算,因此也影响模型光照,但有时需要对模型环境色进行微调。
EnvmapAccuracy(环境贴图精度): 以恒定的大气色全局启用天空光照。 共有 7 种不同的精度模式:
Disabled(禁用): 禁用天空光照。
Preview(预览): 以预览模式使用天空光照。 其结果不太准确,但足以让用户预估场景的整体亮度。 预览模式相对较快。
Low(低): 使用低精度的天空光照。 结果将出现明晰可见的随机伪影。
Medium(中): 使用中等精度的天空光照。 伪影有所减少。 与超采样组合,该精度可能足以胜任最终光照。
High(高): 高精度天空光照。
VeryHigh(非常高): 非常高精度的天空光照。 计算时间极长。
Render(渲染): 该模式下使用引擎来渲染和分析天空光照。 该模式生成的结果是最佳的,而且速度还比高质量跟踪手段更快。 如启用辐射度或选择天空立方体纹理,该工具可强迫该模式”渲染”,因为,采用渲染方式获取辐射度时,天空光照是不占用系统资源的。
EnvmapColor(环境纹理色): 指定天穹的恒色。 通常使用淡蓝来匹配大气光色。
EnvmapIntensity(环境贴图强度): 以百分比表示的强度。 该值仅将”EnvmapColor”值按比例缩小,使色值乘以该百分比值后的结果大致匹配所需的环境色。 该强度不会影响天空纹理的强度。
SkyCubeTexRight、Left、Front、Back、Top、Bottom(天空立方体纹理右、左、前、后、顶、底): 产生天空光照的天空立方体的六个纹理可在此指定。 可以像引擎的立方体纹理天空那样使用相同的纹理。 为了使该属性生效,您需要设置所有六个纹理,或者完全不设置(vLux 会使用恒定 EnvmapColor)。 仅底部纹理为可选。
注:
光照色直接取自天空纹理,因此,假如天空里渲染了白云,则光照色会是白色,但这是不真实的。 所以宁可使用蓝色天空。 另外要避免地平线出现绿色山脉,因为它们会在场景中添加绿色光照。

辐射度
辐射度影响光照在表面之间的反射。 例如,在某个被一个聚光灯照亮的房间内,若没有辐射度,不直接暴露在光锥体下的墙壁依然会一片黑暗。 有了辐射度,整个房间都会被反射光照亮。

EnableRadiosity(启用辐射度): 为场景启用辐射度计算。

PreviewMode(预览模式): 为了加快渲染速度,该模式仅使用每个三角形的中心作为辐照接收器,而非三角形中的每个样本。 该模式的输出质量不适合零售版本,但足以让美工评估光照在场景中的影响。

RadiosityIntensity(辐照强度): 辐射度效果的百分比强度值。 如输入值大于 100,则该值将夹取为 100。

RadiosityIterations(辐射度迭代): 要执行的迭代数量。 每个迭代都等同于光的一次反射。 例如,如果一个红色表面被照亮,散射的红光会在第一次迭代中在周边表面上形成红色光照。 下一次迭代中,这些光照反射回红色表面并影响该表面。 通常 2 次迭代足以构成接近真实的光照分布。
注:
计算时间会随迭代次数线性增加。

高级渲染
在该类别下,可以设定一些参数,影响场景在辐射度后期处理步骤中的渲染。

FarClip(远切): 渲染场景的远切距离。 较小的远切距离通常可缩短预计算时间,但可能导致光照伪影。

UseVisibility(使用可视性): 在辐射度步骤中使用引擎可视性。 该选项应启用。

输出控制台
照明场景时,有用的信息会被写进输出控制台窗口。 警告以红色高亮显示,便于在日志中追踪。

进度条
表示光照流程完成百分比。 不高于 5% 的进度被保留作载入贴图、制作原型体图表和创建多级遮挡信息之用。 因此,开头的 5% 所花费的时间与其余进度部分有显著差异。

除了上述进度条之外,vLux 窗口中也有一条进度条,会在按下 calculate(计算)按钮后出现,也会在处理光照的同时显示当前计算的对象。

从命令行启动 vLux
vLux 可以从命令行启动,并通过自变量字符串传递相关参数。 因为该字符串包含一些场景特定自变量,vForge 提供了一个选项,可将用于特定场景照明的 vLux 自变量字符串复制到文本剪贴板中。 为进行该操作,请打开一个场景,选择 vForge菜单 → Lighting(光照) → Edit Settings(编辑设置),即可看到如下选项:

可选开关项的定义如下:

Quiet: 执行光照而不显示设置对话框。
Settings: 仅显示设置对话框。 哪怕纹理文件还不存在也可使用。
Config file (*.cfg): 忽略设置,载入外部配置文件并使用该配置。
配置文件(*.cfg)必须紧跟在 Config 选项后指定,可以是当前文件夹的相对路径,也可以是绝对路径。
转自:[b]project anarchy中文社区[/b] http://www.anarchy.cn/portal.php?mod=view&aid=74
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值