引言
本章中,我们将探讨在处理地形时如何使用静态光照和 vLux 光照贴图。
光照贴图在很多场合下都是最合适的光照技术, 但也有一些缺点:
不能使用动态时间变化系统。
不适合大型游戏世界,因为光照贴图分辨率不足以覆盖大片区域。
注:为每个区块使用单一光照贴图页面时,后一个缺点也可以避免。 但所产生的纹理会对内存占用造成显著影响,不管是在磁盘还是运行库中。 所以一般而言,建议为大型世界使用其他光照手段。
地形光照贴图属性
地形光照尺寸独立于 vLux 光照贴图尺寸设置,并提供基于单个页面或逐区块的尺寸选项。 从 vForge 图形列表中选择地形图形后,您就可以在光照属性部分打开 LightmapSize(光照贴图尺寸)属性。
LightmapSize(光照贴图尺寸): 指定为该地形计算出的光照贴图页面尺寸。
NoLightmapping(无光照贴图): 不使用光照贴图
SinglePage_256x256(单页 256×256): 分辨率设为 256 的单页光照贴图
SinglePage_512x512(单页 512×512): 分辨率设为 512 的单页光照贴图
SinglePage_1024x1024(单页 1024×1024): 分辨率设为 1024 的单页光照贴图
SinglePage_2048x2048(单页 2048×2048): 分辨率设为 2048 的单页光照贴图
PerSector_256x256(逐区块 256×256): 分辨率设为 256 的逐区块光照贴图
PerSector_512x512(逐区块 512×512): 分辨率设为 512 的逐区块光照贴图
PerSector_1024x1024(逐区块 1024×1024): 分辨率设为 1024 的逐区块光照贴图
PerSector_2048x2048(逐区块 2048×2048): 分辨率设为 2048 的逐区块光照贴图
SceneSpecificLightmaps(场景特定光照贴图): 当不同场景引用同一个地形时,决定了光照贴图是否在不同场景中通用。 如设为 False,则同样的光照贴图会被所有使用该地形的场景共享。
CastStaticShadows(投射静态阴影): 指示该地形是否应投射烘培到光照贴图和光照网格中的静态阴影。
LightInfluenceBitMask(光照影响位元蒙版): 指定应影响该地形的静态和动态光照的位元蒙版。 见光源中相应的世界影响蒙版属性。
注:光照贴图仅作用于静态光照,所以,如果场景不含任何静态光照,则产生的光照贴图为纯黑。 户外场景中常用的静态光照之一是模拟日光的静态平行光照。
相关 vLux 设置
大部分 vLux 设置完全不影响地形的光照贴图。 例如,如前文所述,页面尺寸来自地形图形,而非 vLux 设置。 要编辑光照的 vLux 设置,选择vForge菜单 → Static Lighting(静态光照) → Edit Settings(编辑设置):
vLux 设置章详细解释了所有 vLux 设置。 但我们还是在这里列出相关参数:
SuperSample(超采样): 对于所有光照贴图接收器,该参数定义了质量等级。
LightEquation(光照方程): 该类别的子属性也应用于地形。
GlobalAmbient(全局环境): 全局环境色会被添加到地形上。
BumpLightmaps(凹凸光照贴图): 仅在需要法线贴图时有效。 见下文。
环境光对比天空光照
如果没有任何环境光,背对平行光照的地形斜坡会完全黑暗。 为了实现大气的真实光照散射,vLux 提供了两种选择:
全局环境色: 该色彩会被添加到光照贴图。 其预计算速度当然很快,但看起来不十分真实。 根本问题在于会失去光照对比度。
天空光照: 这是全局环境色的高级版本,因为还为每个光照接收器额外评估了天空半球的可见部分。 天空光照计算可能需要很长时间,具体取决于设置。
计算光照贴图
地形光照贴图的计算方式与任何其他光照贴图一样,因为它依然使用 vLux。 要开始光照贴图计算流程,点击主工具栏按钮图标或选择vForge菜单 → Static Lighting(静态光照) → Calculate Lighting(计算静态光照)。
查看光照贴图结果
vLux 完成地形光照贴图计算后,可关闭指向性预览模式查看其结果。 该预览模式启用时,会提供用于编辑的动态平行光照。 关闭该模式即可看到您的新光照贴图。
提示:为了从平行光照获得所见即所得地形光照,首先在无光照时计算一张光照贴图。 这会将地形转黑,然后将您的静态平行光照添加到场景中。 默认设置下,该静态光照将作为带有预烘培黑色光照贴图的动态光照混合使用,旋转光照直到您感到满意,然后重新计算光照贴图。
与动态预览光照进行比较,如启用了自荫蔽,光照贴图结果也会显示静态的地形自荫蔽。
光照贴图技术的一个优势是可以烘培不限数量的静态光照,而不会造成额外的性能或内存负担。
地形上的法线贴图
SDK 自带一个默认着色器,用于地形上每个纹理通道的凹凸光照贴图和法线贴图。 任何内置地形着色器都不使用高光纹理卡位。 下面是在地形上显示法线贴图的要求。
法线贴图通道
每个细节纹理都需要一个法线贴图纹理文件:
法线贴图着色器
必须应用一个新着色器效果。 默认的 Terrain.Shaderlib 库中包含一个变体版效果,可将法线贴图纳入考量:
在 vLux 中激活凹凸光照贴图
因为静态照明几何体上的法线贴图需要凹凸光照贴图,vLux 设置中必须启用该选项:
法线贴图仅在烘培模式中显示
不在烘培模式下时,地形会以预览模式渲染(每个层分开),不会考虑法线贴图。 只有当切换到烘培模式(也就包括在导出的场景中),才会使用支持法线贴图的真实着色器:
注:切换到烘培模式后,使用的细节纹理数量会减少到着色器可混合的最大限度(例如默认地形着色器的上限是 5 个细节纹理)。 所以,如果使用更多的细节纹理,您会注意到一部分通道消失了。 但是,零售版本中能看到的外观也和烘培模式一样。
待一切都设置妥当后切换到烘培模式,图像就会显示凹凸贴图:
植被阴影
对于实体图形或静态几何网格图形等标准图形,有个属性决定了这些几何网格是否应投射光照贴图阴影。 如果被标记为投射器,它们自然会在地形上投射光照贴图阴影。
还有一个绘制地形植被的类似设置。 可以为模型和 SpeedTree 类型的植被层启用静态阴影投射。 此外,还可指定可选的阴影投射几何网格,用于阴影投射。 该几何网格仅在 vLux 计算时临时使用,不会被运行库载入。
CastLightmapShadows(投射光照贴图阴影): 如启用,该植被类型被静态光照计算视为阴影投射器。 该选项应仅用于较大的模型。
CastDynamicShadows(投射动态阴影): 如启用,且使用动态光照,该植被类型会投射动态阴影。 该选项应谨慎使用,因为会影响到渲染性能。
CustomLightmapCasterMesh(自定义光照贴图投射器几何网格): 如果为该植被类型启用光照贴图阴影,则该几何网格定义了一个可选的、用于该光照贴图的低多边形几何网格。 这一几何网格不用于渲染。
为什么要为光照贴图阴影使用不同的模型?
有两个原因:
vLux 只能处理有限数量的多边形。 如果定义了数千个植被实例,则模型多边形总数会数倍于此,vLux 将无法处理。
SpeedTree 几何网格不能被 vLux 直接计算,因为该几何体依赖与镜头对齐的公告牌,不被 vLux 支持。 所以,对于 SpeedTree 植被,使用另一种投射器模型文件来替代是完全合理的。 如果不为 SpeedTree 植被指定投射器模型,它会使用水平公告牌来投射阴影。 如果 SpeedTree 工具中也没有指定以这些公告牌投射阴影,则该模型不会显示任何光照贴图阴影。
导出场景
如果已经被照亮一次,该场景必须被导出,才能在导出的 vscene 版本中应用光照贴图。
|
- 浏览: 41710 次
- 性别:
- 来自: 杭州
相关推荐
NI Vision Assistant中文入门教程(带书签)
中文 µVision3 IDE用户指南 本用户指南描述了µVision3 IDE/Debugger,包含如下内容: 1.µVision3 综述 描述了µVision3 IDE及集成的调试器的主要...12.命令行调用介绍了如何从命令行或批文件中调用µVision3功能。
NI Vision Assistant中文入门教程,是学习NI Vision Assistant的好帮手
详细介绍NI Vision Assistant软件安装,功能介绍的一本很好教程!
NI Vision Assistant中文入门教程,原帖地址(http://www.gsdzone.net/index.php/Home/Index/Index/index/cat_id/2841771288/t/3/id/805),现转为高清PDF版。
LabVIEW--中文Vision各模块说明 LabVIEW--中文Vision各模块说明
NI Vision Assistant助手的基本函数介绍以及使用,有例子演示,适合想入门NI视觉的同学。
OpenGL-Vision OpenGL-Vision OpenGL-Vision
GigE Vision 是一种通信接口标准,可用于各种网络拓扑上的视觉软件与视频流设备间的交互。...本说明中,设备指的是一个GigE Vision兼容的可控设备,而应用程序指运行在一台主机上的一个与GigE Vision兼容的控制程序。
NIVISION头文件,做机器视觉的朋友可以参考下,添加到所需的工程文件中
MATLAB 中Computer vision system toolbox的官网指南和用户手册
vision doc, you can download it Vision引擎文档机器人
影像介绍,关于在处理视觉上,有很大的帮助,功能很强大。
usb3 vision spec usb3 vision spec usb3 vision spec usb3 vision spec usb3 vision spec
海康(VisionMaster定位方案)
Cabinet Vision (CV) 板式家具拆单软件 V2021 571中文语言包
ViT的全文翻译,结构同原文保持一致。 1.全文翻译的markdown原文件 2.全文翻译的PDF 3..ViT的原文 4.知识点总结的博客http://t.csdn.cn/PLzkf 逐字逐句翻译Vision in Transformer
在NI Vision Builder AI中使用RS232进行通讯,程序接收到外部发送的RS232命令后进行一次触发拍照处理。
vision pro 中文手册,VisionPro中文教程_完全版,比较清楚地讲解了VisionPro的应用。