山海鲸可视化

天空

天空组件是鲸孪生内部的组件之一,在添加鲸孪生组件时自动会被添加上来,无需手动添加,也不可删除。每一个鲸孪生组件默认只有一个天空组件。
天空组件主要分为四部分,分别是基本设置,全局光照,天气系统和鸟。下面我们逐个看下这四大部分具体的使用场景。

1. 基本设置

配置项 说明
天空类型 动态天空:会根据场景组件上设置的时间动态变化。 静态天空:采用天空盒子贴图(Skybox),不会随着一天时间的变化而变化。
天空颜色 静态天空下,设置天空的颜色。没有天空贴图,则整个天空直接采用这个颜色,如果有天空贴图,则该颜色会叠加到天空贴图之上。
天空贴图 静态天空下,天空的贴图,支持 HDR 和 DDS 两种格式。
天空贴图强度 静态天空下,天空的贴图所显示的强度,数值越小,贴图越不明显。
镜头光晕强度 看向太阳时镜头呈现的光晕效果,设置成 0 时表示不开启该效果。

纯色天空效果(静态天空模式下,仅设置天空颜色,不设置天空贴图):
image.png
静态天空效果:
image.png
动态天空效果:
sky.gif
镜头光晕效果:
image.png

2.全局光照

全部光照主要分为三个部分,分别是太阳光,环境光和环境贴图。其中环境光和环境贴图互为补充,都是承担对全局光照(GI)的模拟这样一个功能。

2.1. 太阳光

对天空中太阳光的基本设置,产生的阴影和光束泛光进行设置:

2.1.1. 太阳光基本设置

配置项 说明
太阳光强度 当前太阳光的强度,推荐在 5-10 之间,如果开启了自动曝光,推荐设置成 10000,同时环境贴图要设置成天空。
天空受太阳光影响 天空的亮度会跟随太阳光的强度而变化,如果设置了自动曝光,必须勾选这个选项。
太阳光颜色 太阳光的基础颜色,如果勾选颜色受大气影响,则会以此基础颜色计算经过大气散射之后到达地面的颜色作为太阳光实际的颜色。如果没有勾选颜色受大气影响,则此颜色就是最终光的颜色。
颜色受到大气影响 默认勾选,勾选后,太阳光颜色中的设置颜色将经过大气散射计算后作为最终太阳光的颜色。如果太阳光颜色设置成白色,则白天经过大气散射后会偏蓝,清晨和傍晚会偏红色。
太阳方位角 太阳在天空中与正南方向的夹角,和场景组件中的一天时间选项一起决定了太阳在天空中的位置。

2.1.2. 太阳光阴影设置

配置项 说明
开启太阳光阴影 当前太阳光是否会产生阴影。
阴影类型 目前可选的是级联阴影和普通阴影。普通阴影适用于小场景当中,性能好;级联阴影适用于大场景,虽然性能损耗较大,但可以带来更好的阴影质量。
级联阴影级数 级联阴影选项下的设置,级数越高,阴影质量越高,同时性能损耗越大。
阴影分辨率 阴影贴图的大小,分辨率越高,阴影越清晰,反之越模糊。
阴影强度 强度越大,阴影越黑。
阴影偏移 该选项用于缓解阴影分辨率不够所产生的摩尔纹现象,但只能缓解,不能完全消除。越大摩尔纹越不明显,但是阴影在地面的偏移距离越大。
空间自适应 是否自动计算鲸孪生世界的最大尺寸用来渲染阴影,如果关闭,则可以手动设置阴影渲染的空间大小。有的时候我们并不需要所有物体都有阴影,只需要在核心区的物体有阴影,那么就可以关闭空间自适应,并设置需要阴影产生的空间。
空间大小 关闭空间自适应后,需要设置阴影的空间大小,假设设置 1024 米,代表在原点(0,0,0)周围 1024*1024 平方米内的空间会产生阴影。
阴影刷新频率 设置为 0 代表渲染一次后不刷新,设置为 1 代表每一帧刷新一次,2 代表每两帧刷新一次,以此类推。在卡顿的情况下可以适当调大刷新频率,但如果空间中有运动物体的话,就不太适用。
视野外不投影 物体在当前相机可见范围以外就不在产生投影,开启后可以显著优化性能,特别是在开启级联阴影的情况下。但会导致旋转视角过程中阴影的出现消失非常频繁。
最高建筑高度 阴影会根据最高建筑高度动态计算阴影的深度空间范围,这个值越小阴影质量越高,但不能小于场景中最高建筑的高度,否则超过这个高度的建筑的阴影就会出现问题。

2.1.2.1. 摩尔纹的解决方法

解决地面摩尔纹的方法由以下几种,按照推荐排序: 1.最简单也是最推荐的方式是将地面产生阴影的开关关闭,因为摩尔纹的产生都是由自阴影导致的,而地面下方一般来说没有其他物体,因此我们可以认为地面不会产生阴影 2.增大阴影的分辨率 3.普通阴影改为级联阴影 4.增大阴影偏移 5.取消空间自适应,并将阴影空间设置一个能接受的最小数值。
自阴影导致的摩尔纹现象:
image.png
关闭地面产生阴影开关后,摩尔纹消失:
image.png

2.1.2.2. 阴影显示异常

阴影出现问题优先检查地面是否在 Y 轴上的 0 点,如果不是,阴影的自动计算将会出现显著的偏差导致阴影渲染结果完全不符合预期。

2.1.3. 光束泛光

光束泛光是实现上帝之光的一种相对性能友好的算法(相对体积雾而言),具体是采用径向模糊的方式实现的光束效果,效果如下图:
image.png

配置项 说明
启用光束泛光 是否开启光束泛光。
光束泛光强度 强度越强,光束越亮。
光束最大亮度 最亮的那一束光的亮度值。
光束颜色 光束颜色将叠加到太阳光颜色上,同时对光束的颜色产生影响。

2.1.4 接触阴影 (v4.2.0 版本开始)

接触阴影是对目前画面中阴影的一个补充,特别是对于 gis 场景的补充,可以很好的增加画面的立体感。但接触阴影需要进行光线步进,对性能消耗较高。不建议在普通场景中开启。

2.2. 环境光

环境光和环境贴图都是对太阳光的补充,主要防止出现背光面过暗或者夜晚过暗的情况,本质上是对光线的多次弹射的一个简单模拟。环境光和环境贴图都不会产生阴影,如果希望对环境光和环境贴图增加明暗效果,可以开启场景组件中的环境光遮蔽。
环境光关闭下的情况:
image.png
环境光打开后的情况:
image.png
可以明显可以看到背面光照纯黑的情况得到了很大的缓解。
鲸孪生中环境光为穹顶光,因此可以为顶部和底部设置不一样的颜色。侧面会自动融合顶底光色。

配置项 说明
强度 当前环境光的强度。
顶部光色 顶部光线的颜色。
底部光色 底部光线的颜色。

2.3. 环境贴图

环境贴图要称之为 IBL(Image based lighting), 是通过一张球状贴图将整个环境进行照亮,是一种比环境光更加真实的光照技术。

配置项 说明
贴图材质 1.贴图文件:目前支持 hdr 和 dds 的文件格式。 2.输入网络链接:也仅支持 hdr 和 dds 的文件地址。 3.天空:直接抓取当前天空每一帧的画面作为环境贴图。
反射强度 贴图文件模式输入网络链接模式:数值越大,代表在比较光滑表面上反射的强度。 天空模式:数值越大,代表光照强度越大,包含反射和漫反射的强度。
漫反射强度 仅支持贴图文件模式输入网络链接模式:数值越大,代表在越粗糙的表面上光照越强。
旋转 仅支持贴图文件模式输入网络链接模式:贴图以 Y 轴(垂直向上的轴)为轴心的旋转角度。

环境贴图设置成天空后的效果,可以看到阴影的颜色的更加真实:
image.png

3.天气系统(Weather System)

天气主要由雾效,体积云和降水降雪共同组成,雾效也分为大气散射(大气雾),雾(高度雾)和体积雾组成。

3.1. 天气

配置项 说明
全局风速 全局风场的风速值,全局风场会影响树木摇摆,雨雪粒子的飘动。云的飘动默认是采用独立风场,如果取消独立风场,也会收到全局风速的影响。
全局风向 全局风场的风向。
天气选择 1.无天气 2.下雨 3.下雪。
雨量大小 下雨时选项,数值越大,雨越密。在数值较大时,建议也可以同时提高全局风速。
积水大小 下雨时选项,自动对画面中物体的进行积水覆盖,数值越大,积水面积越大。如果不希望某个物体有积水,可以关闭该物体的材质上自动积水开关。
闪电频率 下雨时选项,数值越大,闪电出现的越频繁。
雪量大小 下雪时选项,数值越大,雪越大。在数值较大时,建议也可以同时提高全局风速。
积雪大小 下雪时选项,自动对画面中物体的进行积雪覆盖,数值越大,积雪面积越大。如果不希望某个物体有积雪,可以关闭该物体的材质上自动积雪开关。

下雨效果:
image.png
下雪效果:
image.png

3.2. 大气散射(Atmoshphere Scattering)

大气散射的设置直接决定了动态天空的颜色,同时开启了空气透视之后,也会影响画面中其他物体的颜色。相当于一个基础的高度指数雾。

配置项 说明
地面颜色 地面颜色仅会影响地面的颜色,不会影响天空的颜色。
空气透视 大气散射是否会影响画面中的物体(包括云)。
多散射 多散射贡献度,数值为 0 代表不考虑光线在空气中的多次弹射。
瑞丽散射-指数分布 每上升 1 个单位距离空气分子密度的下降比例。
瑞丽散射-散射范围 空气分子对光线的散射概率。
米氏散射-指数分布 每上升 1 个单位距离空气中大粒子密度的下降比例。
米氏散射-散射范围 空气中大粒子对光线的散射概率。
米氏散射-吸收范围 空气中大粒子对光线的吸收概率。
米氏散射-各向异性 空气中大粒子对光线散射后朝向各个方向散射的不同概率的比例。

空气透视开关不会影响天空的颜色,但会影响非天空部分的颜色,具体效果如下:
关闭空气透视后的效果:
image.png
打开空气透视后的效果:
image.png

3.3. 雾(Exponential Height Fog)

鲸孪生中的雾效目前是使用的指数高度雾,鲸孪生提供一个主雾和一个次要雾来模拟多层雾,特别是山涧雾的复杂度。

配置项 说明
密度 主雾的浓度。
高度衰减 浓度随着高度的衰减速度。
高度偏移 主雾出现于高度高于次偏移以上。
颜色 默认为黑色,推荐不要修改。颜色跟随大气颜色。改成其他颜色后会叠加在大气颜色之上。
颜色受大气影响 天空大气的颜色将影响到雾的颜色。
颜色受太阳影响 朝向太阳看时雾会被太阳光进一步照亮。
最大不透明度 默认为 1,表示雾最大时什么都看不见。
开始距离 默认为 0 距离相机距离多远开始有雾效。
消失距离 距离相机超过此距离将不再有雾 0 表示此选项不生效。
最大观测高度 超过此高度将看不到雾,用于太空场景下的特殊处理。
次要雾-密度 次要雾的浓度。
次要雾-高度衰减 次要雾高度衰减开始于 Y 轴的位置。
次要雾-高度偏移 次要雾出现于高度高于次偏移以上。
体积雾-是否启用体积雾 是否基于高度雾的浓度应用光线步进来计算雾的颜色。
体积雾-消光范围 消光范围越大,体积雾对于光线的吸收越强烈。增大这个值可以获得上帝之光的效果。
体积雾颜色 颜色将叠加于体积雾步进计算结果之上。

仅打开高度雾效果:
image.png
打开体积雾后的效果,光感将更加真实更柔和:
image.png
体积雾也可以实现上帝之光的效果,不过相比太阳光中的光束泛光,性能消耗更大,但好处是不需要太阳在画面内也可以产生光束。

3.4. 云(Volumetric Cloud)

体积云性能损耗大,因此鲸孪生中的体积云第一部分就是云的渲染质量的设置,后续是云的外观设置,运动设置和云影设置。

3.4.1. 云渲染质量

配置项 说明
渲染质量 采用画面的 1/16 的分辨率进行云层建模。 采用画面的 1/4 的分辨率进行云层建模。 直接采用画面的分辨率进行云层建模。
主步进次数 数值越大,云上的噪点越少,同时远处的云越清晰和完整。
光源步进次数 数值越大,云银边和透光面的噪点越少。

3.4.2. 云外观设置

配置项 说明
云类型 中层云 云层较高,云层较薄。 积云 最常见的云层。 双层云 积云和高层云结合的效果。 积雨云 下雨时的云层,云层较厚。
云层控制 简单,只能控制云层占比。 高级,可以对云层的整个建模过程进行设置。
云层占比 简单模式下的选项, 数值越大,云层对天空覆盖的面积越大。
密度 高级模式下选项,数值越大,云层透光度越低,一般数值大表示云中的含水量较高。
云层覆盖 高级模式下选项,数值越大,云层对天空覆盖的面积越大。
形状重复度 高级模式下选项,数值越大,单片云越小,云形状的重复度越高。
云层侵蚀度 高级模式下选项,数值越大,云层的边缘越碎,云层细节度越高。
侵蚀重复度 高级模式下选项,数值越大,云层边缘细节度的重复度越高。
云层高度 云层从什么海拔高度开始出现。
云层厚度 云层出现的空间范围的厚度。
散射颜色 默认为黑色,采用太阳光和大气层对云层的光照进行计算。设置颜色后将叠加在计算好的云层颜色之上。

3.4.3. 云层风场设置

配置项 说明
垂直形状风速 数值越大,云层主形状的变化越快。
垂直侵蚀风速 数值越大,云层边缘细节的变化越快。
使用独立风速 开启后云层将不受全局风场影响,云层水平的运动由云层独立的风速风向设置决定。云层形状变化的速度和此选项无关。
云层风速 风速越大,云层水平移动的速度越快。
云层风向 决定云层具体往哪个方向移动。

云层开启风场效果:
cloudWind.gif

3.4.4. 云影设置

配置项 说明
云层产生阴影 启用后云层会向地面投射阴影。

打开后调整好风速,效果如下:
cloudShadow.gif

3.4.5. 卷云设置(v4.2.0 开始)

从 v4.2.0 开始,体积云添加了卷云的设置,卷云属于高空云层,因此云的形状设置将分为低空云层和高空云层两个部分,其中低空云层为原有的体积云设置项,同原来的设置方式一致。高空云层增加了三个专属的设置项

配置项 说明
卷云占比 高空中的卷云占整个天空的比例。
卷云类型 设置卷云的样式 1.条纹状 2.絮状 3.点状
卷云密度 密度越大,云层的透明度越低。

卷云占比为 0 时的效果:
image.png
卷云占比增加后:
image.png
可以看出卷云的加入可以进一步提升天空的真实性。

3.5. 鸟

配置项 说明
鸟群位置 鸟群出现的空间坐标位置。
移动范围 鸟群在这样一个范围内活动。
数量 画面中鸟的数量。

开启鸟群后,场景上空将会自动出现鸟群,鸟群会自行编队飞行。
开启鸟群后的效果:
image.png