环境与后处理
IdeaXR 的环境是一种资源类型,常用于 WorldEnvironment 和 Camera 节点。我们可以在环境资源中设置画面背景和很多后处理效果。 环境背景可设置背景天空、环境光、雾和景深模糊效果。 后处理包括SSR、SSAO、Bloom、发光、色彩校正、色调图、自动曝光等模式。他们本身都是默认关闭的,需要我们主动去开启他们。
创建环境
快速创建全景天空
通过 快速创建-环境-全景天空 添加,可以看到环境背景变成了一张蓝色天空的全景图,同时场景树中增加了一个 WorldEnvironment 节点。
展开节点属性可看到当前背景模式为天空,点击天空资源能看到当前引用的全景图片。
利用好环境库
IdeaXR 提供了非常丰富好用的环境库,里面有相当多的全景天空素材可供用户选择使用。
具体使用方式是选择“资源->环境库”,通过这样子的选择之后,就可以看到里面出现了很多素材。点击素材的下载按钮之后,等待下载完毕。将素材拖到场景中即可快速开始使用。
世界环境或相机节点
环境还有两种不同的添加方式,分别在世界环境节点或相机节点的属性面板上作为资源加载。
世界环境节点 通过新建节点搜索 WorldEnvironment 创建世界环境节点,然后在属性面板中可新建环境或加载环境资源。可以将WorldEnvironment节点添加到任何场景,但是每个活动场景中只能存在一个。添加多个将导致警告。
相机上设置的环境将覆盖场景树中的环境效果,并且只在相机节点启用时有效。
默认环境
新建项目带有默认环境(default_env.resource),一般存储于res://DefaultRes文件夹。 当场景中没有WorldEnvironment节点时将显示默认环境。如需更改, 可在编辑器中 编辑->项目设置->渲染->环境 中变更。
直接更改默认环境(default_env.resource)会影响到所有场景,请谨慎编辑保存。
环境背景
如下图所示:
env_world_set.png
背景
背景 部分包含有关如何填充背景(未绘制对象的屏幕部分)的设置。在 IdeaXR 中,背景不仅用于显示图像或颜色,还可以更改对象受环境光和反射光影响的方式。
背景模式
- 清除颜色使用项目定义的默认清除颜色。背景将是指定的颜色。
- 自定义颜色 类似于“清除颜色”,但具有自定义颜色值。
- 天空 使您可以定义全景天空(360度球形纹理)或程序性天空(具有渐变和可选太阳的简单天空)。物体会反射它并吸收它的环境光。
- 颜色+天空 使您可以定义天空(如上所述),但是使用指定的颜色值绘制背景。天空仅用于反射和环境光。
清除颜色效果:
天空效果:
选择 天空模式后,属性栏 中会出现关于 天空模式 下的一些属性设置,
PanoramaSky 利用全景图片渲染天空- 全景: 处理好的天空盒图片,IdeaXR 已经内置了一批高质量的全景球在资源下面的环境库中。您也可以在这里自行添加您自己的全景图片。
- 辐射率的大小: 用于影响材质的基于真实物理属性(PBR)计算的参数,这里使用默认值128就可以了。
- 天空自定义视场: 用于给天空盒一个畸变效果,可以用于一些特殊效果的制作。正常情况下建议视场值设为0,使用正常表现的天空盒。下面的x,y,z三个值分别代表天空盒的采样的UV值。使用默认的值(1,0,0)就能够得到标准的天空盒效果。
- 天空旋转度: 需要给天空盒整体一个旋转角度的时候,可以设置这个值。可以制作一些特殊的画面效果。
- 能量: 用这个值来控制天空盒整体的光照强度。
- 地面 : 底部颜色: 地面底部的颜色值。 地平线颜色: 地平线部位的颜色值。 曲线 : 地面底部的颜色随着曲线变化。 能量: 地面底部的颜色强度值。
- 太阳 : 颜色: 天空中太阳的颜色值。 纬度: 通过修改纬度值控制天空中太阳的升降。 经度: 通过修改经度值控制天空中太阳的水平位置。 角度最小值: 控制太阳的大小。 角度最大值: 控制太阳光晕的大小。 曲线: 通过一条曲线来控制太阳的大小。 能量: 通过该值来控制太阳强度的大小。
- 纹理 : 大小: 设置生成的程序天空纹理的大小,默认值1024。如果想要更高质量的程序天空纹理可以提高精度。
- 天空 : 顶部颜色: 天空的颜色值。 地平线颜色: 天空靠近地面交界处的颜色值。 曲线: 使用一根曲线来控制天空颜色的变化。 能量: 天空的整体强度值。 辐射率的大小: 用于影响材质的基于真实物理属性(PBR)计算的参数,这里使用默认值128就可以了。
环境光
环境光(如此处定义)是一种以相同强度影响每个几何体的光。它是全局的,与可能添加到场景中的灯光无关。
有两种类型的环境光:环境颜色(一种指定颜色乘以材质反照率得到最后材质显示结果),然后从天空获得一种 (如前所述,但是需要将天空设置为背景才能启用)。
将天空设置为背景时,可以使用“天空作用”设置在环境颜色和天空之间进行混合(为方便起见,此值默认为1.0,因此只有天空会影响对象)。
这是不同的环境光如何影响场景的比较:
最后,有一个能量设置,它是一个乘数。使用HDR时非常有用。
通常,环境光应仅用于简单的场景,较大的外部环境或出于性能考虑(环境光性能高),因为它不能提供最佳的照明质量。最好从ReflectionProbe或GIProbe生成环境光,这将更忠实地模拟间接光的传播方式。以下是在质量方面使用平面环境颜色和GIProbe的比较:
使用上述方法之一,模型对象获得的环境照明是来自于探针的环境光。
雾
在现实生活中,雾会使远处的物体逐渐消失。物理效果实际上很复杂,但是IdeaXR 提供了一个很好的近似模拟。 IdeaXR 中有两种雾: 深度雾 :此项基于距相机的距离而产生不同的效果。 高度雾 :此项的效果显示条件是高度低于(或高于)一定高度,无论与相机之间的距离如何。
这两种雾类型均可调整其曲线,使其过渡或多或少变得更加平滑或者清晰。
可以调整两个属性以使雾效果更加有趣:
第一个是日照量,它利用了雾的太阳的颜色属性。当朝着定向光(通常是太阳)看时,雾的颜色将改变,模拟通过雾的阳光。
第二个是“启用透光率”,它可以模拟更逼真的透光率。实际上,它使光线在雾中更明显。
景深模糊
此效果模拟高端相机上的焦距。它模糊给定范围内的对象。它的初始距离带有一部分平滑过渡的效果(以世界单位为单位):
数量用来控制模糊的强度,对于较大范围的模糊,可能需要调整质量来确保更好的效果。
通常同时使用这两种模糊来模糊近景和远景,以使观看者的注意力集中在给定的对象上:
后处理
后处理包括SSR、SSAO、Bloom、发光、色彩校正、色调图、自动曝光等模式。
除SSAO外,其余后处理效果需要打开编辑器的 详细 模式
屏幕空间环境光遮蔽(SSAO)
如 环境 部分所述,该节点功能的作用是让光源无法到达的区域(因为它在半径范围之外或被遮蔽)能够受到环境光的影响。IdeaXR 可以使用GIProbe,ReflectionProbe,天空或恒定的环境颜色对此进行模拟。然而,问题在于,先前提出的所有方法在较大的规模(较大的区域)上比在较小的区域上面效果更好。 环境颜色和天空在任何地方都是相同的效果,不会产生AO。而GIProbe和ReflectionProbe虽然具有更多局部细节,但是对于一些特殊位置的AO效果却无法模拟。 “屏幕空间环境光遮挡”就是来补足他们的不足之处。如下图所示,其目的是确保凹入区域更暗,模拟真实物理世界的表现:
打开灯光的时候,发现无法观察到SSAO是一个常见的问题。这是因为SSAO仅作用于环境光,而不作用于直射光。
这就是为什么在上图中,在直射光下(左侧)效果不太明显的原因。如果您也想强制SSAO使用直接光,请使用Light Affect参数(就算这样子产生的效果会有问题,但是相信一些艺术家还是会喜欢它的)。
当SSAO与GIProbe结合使用时,看起来效果最好。
可以通过下面几个参数来调整SSAO:
- 半径 : 这个参数用来控制遮挡剔除的影响范围(半径)。
- 强度 : 这个参数用来控制遮挡剔除的效果强度。
- Radius2 : 这个参数用来控制二次遮挡剔除的影响范围(半径)。
- Intensity2 : 这个参数用来控制二次遮挡剔除的效果强度。
- 偏差 : 可以对它进行调整,以解决自我遮挡的问题,尽管默认设置通常效果很好。
- 光线影响 : 这个参数用来控制二次遮挡剔除的影响范围(半径)。
- Ao通道影响 : 如果使用零值,则仅将材质的AO纹理用于环境光遮挡;SSAO将不适用。大于0的值在不同程度上将AO纹理乘以SSAO效果。这不会影响没有AO纹理的材料。
- 质量 : 根据质量,SSAO将为每个像素采集更多样本。高质量只能在现代GPU上发挥作用。
- 模糊 : 使用的不同模糊内核来产生模糊。1x1内核是一个简单的模糊,可以更好地保留局部细节,但模糊效果不好(通常在高质量设置下效果更好)。而3x3模糊内核则可以更好地柔化图像(有点抖动效果),但是无法保留本地细节。
- 边缘锐度 : 可以用于保留边缘的清晰度。
屏幕空间反射(SSR)
虽然IdeaXR 支持三种反射数据源(Sky,ReflectionProbe和GIProbe),但它们可能无法为所有情况提供足够的细节。模型对象彼此接触时屏幕空间反射效果最明显(例如:当模型对象在地板上,桌子上,在水上漂浮时等等情况)。
另一个优点是(即使在启用的同时,值设置到最小)它也可以实时工作(而其他类型的反射是预先计算的)。可以在相机移动过程中使角色,汽车等在周围的表面上产生反射。
参数设置: - 最大步长: 确定反射的长度。此数字越大,计算成本就越高。 - 淡入: 允许调整淡入曲线,这有助于使接触区域更柔和。 - 淡出: 允许调整淡出曲线,在淡出区域里面能够获得更加平滑的表现。 - 深度阈值: 这个值是用来设置SSR误差的。值越大,将产生更多的效果误差。 - 粗糙度: 根据场景中材质的粗糙度来设置屏幕空间区域的模糊效果,来让最终该区域的画面表现近似相应模型的原本材质表现。请记住,屏幕空间反射(SSR)仅适用于不透明物体。不适用于透明对象。
发光(Bloom)
在摄影和电影中,当光量超过媒体(模拟或数字)支持的最大光量时,通常会向外渗出到图像的较暗区域。这在IdeaXR中使用发光效果进行了模拟。
默认情况下,即使启用了效果,效果也会很弱或不可见。要实际显示,需要满足以下两个条件之一:
- 像素中的光超过HDR阈值(其中0是所有光都超过HDR阈值,而1.0是超过色调映射器White值的光)。通常,该值预计为1.0,但可以降低该值以允许更多的光渗出。还有一个额外的参数HDR Scale,它允许缩放(超过或超过)阈值的光(使更亮或更暗)。
- Bloom效果的值设置为大于0。随着它的增大,整个屏幕会有更加强烈的光晕效果。
两者都会导致光线开始从较亮的区域溢出。
一旦看到发光,就可以使用一些额外的参数进行控制: - 强度 是效果的总体等级,可以使光晕效果更强或更弱(0.0将其删除)。 - 力度 是用来控制画面的模糊范围。通常,不需要更改此设置,因为可以使用“级别”更有效地调整大小。
效果的混合模式也可以更改:
- Additive 是最强的一种,因为它只是在图像上增加了发光效果,而没有混合。通常,它太坚固而无法使用,但在低强度Bloom时看起来会很好(产生类似梦的效果)。
- 屏幕 是默认模式。它确保发光永远不会比自身更亮,并且在周围环境中都可以正常工作。
- Softlight 是最弱的一种,只会在物体周围产生细微的颜色干扰。此模式在黑暗场景下效果最佳。
- 替换 可用于模糊整个屏幕或调试效果。它仅显示发光效果,而没有下面的图像。
要更改发光效果的大小和形状,IdeaXR提供了Levels。较小的级别是对象周围出现的强烈光晕,而较大的级别是覆盖整个屏幕的朦胧发光:
级别系统的真正优势在于结合了等级的概念来创建光晕:
勾选启用双三次高档可以有效的柔滑,平滑块状的光晕:
色彩校正
IdeaXR 提供了最终画面调整的功能。
勾选启用之后,我们可以用亮度值,对比度值,饱和度值来改变画面的亮度,对比度,饱和度。
色彩校正是通过提供颜色校正梯度。规则的黑白渐变不会产生任何效果(您可以使用下面这张图片来校正画面):
校正之后的结果:
色调图
在电影和游戏行业中经常使用色调图来调整画面色调,色调映射可以让明暗区域更加均匀,色调映射选项包括:
- 模式 : 色调映射模式,可以是线性,Reindhart,Filmic或Aces。
- 曝光 : 色调映射曝光,可模拟一段时间内接收到的光量,类似摄影里面的曝光度属性。
- 白色 : 色调映射白色,它模拟白色整个画面中所占据的大概比例。
自动曝光模式
在大多数情况下,照明和纹理都是由艺术家来负责制作,但IdeaXR通过自动曝光机制支持简单的高动态范围实现。通常该属性用来模拟从较暗的室内走向室外时,人的眼睛所看到的曝光的真实现象。
自动曝光模式中的默认值是符合真实物理效果的,正常情况下您不需要对其进行调整。但是如果有些制作特殊效果的需求, 您仍然可以调整它的参数:
- 缩放 : 缩放照明的值。较亮的值产生较亮的图像,较小的值产生较暗的图像。
- 最小亮度 : 自动曝光将要调整的最小亮度。
- 最大亮度 : 自动曝光将要调整的最大亮度。
- 速度 : 亮度自行校正的速度。值越高,校正越快。