Environment Probe
Environment Probe是一种光源,它也可以通过使用立方体贴图(预烘焙或动态更改每帧)在探针内部的对象上提供反射。在UNIGINE中,Environment Probe具有两种类型的投影:
- 盒子投影-适用于室内场景(房间为3D盒子形状)或盒子形状的户外场景(建筑物之间的后巷)。
- 球形投影-在所有其他情况下(汽车,球形房间等的反射)效果更好。
使用Environment Probe,您可以创建反射而不是创建反射材料。
也可以看看#
- 的文章使用Environment Probe
- 的文章光源参数
- 通过API管理Environment Probe的LightEnvironmentProbe类
概述#
Environment Probe对于提高性能,减少材料数量以及使内容设计者的生活更加轻松是一件好事。
Environment Probe使用烘焙(或用特殊工具抓取)的立方体贴图。立方体贴图将扮演反射和灯光模拟的角色。这是一个例子:
我们有两间内部颜色不同的房屋,并将相同的物体(例如反射材料,例如金属)放入这些房屋中。会发生什么?
如果我们不谈论动态反射,则需要反射每个对象的内部。但是内部具有不同的环境颜色,这就是为什么您需要为它们创建2种不同的材料的原因。根本没有优化。
Environment Probe消除了此缺陷。添加对象后,便无需考虑其反射材料。 Environment Probe将立方体贴图映射到对象。
将立方体贴图映射到透明和非透明对象有一个区别:
- 如果对象是透明的,则仅当整个对象在Environment Probe的半径内时,Environment Probe才会映射立方体贴图。否则,该对象将完全不受Environment Probe的影响。
- 如果对象是非透明的,则Environment Probe会将立方体贴图映射到对象半径在探针半径内的任何部分。
透明对象受Environment Probe影响 |
受Environment Probe影响的非透明对象 |
如果您放置几个影响非透明对象的Environment Probe节点(在延期通行证)他们的立方体贴图将被平滑地融合。这是一个示例,一条长长的走廊上有涂有不同颜色的墙壁。
我们放置了两个Environment Probe节点,它们都影响对象(当对象位于交叉区域中时)。如果位置较大,则应使用多个Environment Probe节点而不是一个,以使最终图像更加逼真。
SSR(屏幕空间反射)效果使最终图像更加逼真,因为它附加了无法烘焙到立方体贴图中的反射。使用Environment Probe和SSR是通过动态照明非常快速地模仿反射的好方法。
透明对象的多环境探针#
为透明对象设置的Multiple Environment Probes选项(在前传)允许多个Environment Probe节点影响对象并将其多维数据集映射到该对象。
- 禁用该选项时,只有最后设置的Environment Probe会影响该对象。那时,整个对象必须在Environment Probe的半径内。否则,它将完全不受此Environment Probe的影响。
- 启用该选项后,对象将被整个Environment Probe照亮:每个探针都会影响对象的一部分,该部分位于探针内部。 Environment Probe节点的立方体贴图将在交叉区域混合。
Multiple Environment Probes已关闭:仅左侧立方体贴图已映射到对象 |
Multiple Environment Probes启用:映射和混合两个立方体贴图 |
添加环境探针#
要通过UnigineEditor将Environment Probe节点添加到场景中,请执行以下操作:
- 跑步UnigineEditor的项目。
在菜单栏上,单击Create -> Lights,然后选择Environment Probe所需的形状:框或球体。这投影形状通过Parameters窗口创建后可以对其进行更改。
- 放置Environment Probe。
- 抓取Environment Probe的立方体贴图纹理。您可以通过Parameters窗口来抓取它,也可以使用Bake Lighting工具。
- 调整Environment Probe设定。
- 您不能将实时灯光(Omni Light, Projected Light等)烘烤为Environment Probe。最好的办法是用发光材料代替光来放置球体,调整发射强度,然后烘烤照明。但是,结果看起来比实时照明的效果要差。
- 使用Bake to Environment Probes选项定义曲面是否应将其反射烘焙为Environment Probe。
在UnigineEditor视口中选择Environment Probe时,参考球将在探针中心可视化:
- 反射球有助于估计探头提供的反射。
- 扩散球体有助于估计探头提供的环境照明(要求周围启用照明)。
环境探针设置#
可以在Parameters窗口的Node选项卡中找到Environment Probe设置。此标签同时包含所有光源的参数以及特定于Environment Probe的参数。具体参数说明如下。
常用参数#
Projection Shape |
Environment Probe使用的投影形状类型:
|
---|---|
Box Projection Size | 指定框投影的大小。 |
Attenuation Power | 设置衰减功率为光。 |
Attenuation Distance | 设置衰减距离为光。 |
渲染参数#
Color | 设置灯光颜色格式为RGBA。颜色定义了虚拟表示的合理性及其美学成分。 |
---|---|
Intensity |
设置灯光颜色乘数,它可以很好地控制发射光的颜色强度:
|
Shadow Mask | Shadow遮罩控制由光源照亮的对象投射的阴影的渲染。 |
Viewport Mask | 设置灯光的Viewport蒙版。 |
Visibility Distance | 距相机的距离(以单位为单位),直到渲染Environment Probe为止。 |
Fade Distance | 距相机的距离(以单位为单位),从该距离开始,Environment Probe开始逐渐消失。 |
Render Water | 在水上渲染Environment Probe。 |
Render Transparent | 在透明对象上渲染Environment Probe。 |
Use Sun Color |
发挥影响太阳光色在Environment Probe。 启用后,此选项可使Environment Probe颜色在夜间变为黑色,而在日落时变为橙色。 |
Additive Blending | 启用Environment Probe的加性混合模式。此选项在照明和反射控制方面提供了更大的灵活性。您可以使用它将多个Environment Probe节点的照明和反射混合在一起并分别控制它们. |
环境参数#
Enabled | 为Environment Probe启用环境绑定。默认情况下,Environment Probe仅用于反射;默认为0。至于照明,建议使用Voxel Probe和光照贴图。这种方法可确保获得最佳效果,但是通过启用此选项,您仍然可以将Environment Probe用于环境照明。 |
---|---|
Global Illumination |
启用全局照明模拟。 Environment Probe通过使用给定的多维数据集映射生成伪造的GI。 此参数可用于盒子投影只要。 |
Contrast | 设置环境照明的对比度。 |
反射参数#
Gloss Corners |
设置框投影角附近的反射光泽强度。 此参数可用于盒子投影只要。 |
---|---|
Parallax |
Parallax校正功能可以在考虑相机位置的情况下渲染反射。禁用此选项时,反射立方体贴图仅投影到对象上,并且不遵循查看者的角度。
|
烘焙设置#
Dynamic |
指定反射是否是动态的。 应该启用Dynamic Reflections选项:Rendering -> Features -> Dynamic Reflections。 |
---|---|
Correct Roughness |
为粗糙表面上的Environment Probe反射启用一种校正模式,或禁用校正。可用模式为Low, Medium, High, Ultra-它们在用于在粗糙表面上产生反射的光线数量不同。 可以用来动态模式只要。 |
Faces Per Frame |
多维数据集贴图更新间隔。 可以用来动态模式只要。
|
Grab by Bake Lighting | 指定是否要通过Bake Lighting工具修改立方体贴图纹理。 |
Reflection Viewport Mask | 这面具控制将Environment Probe的反射渲染到反射摄影机视口中。 |
Resolution |
反射纹理的分辨率,以像素为单位。 在具有低内存容量的低性能GPU上设置过高的分辨率可能会导致引擎崩溃。 |
Supersampling | 用于图像捕获超采样的每像素采样数。 |
Mipmaps Quality |
mipmap的质量。 在内存容量低的低性能GPU上设置过高的质量可能会导致引擎崩溃。 |
Distance Scale |
G反射的全局距离乘数在[0.0f;1.0f]范围内检出限可见距离。距离比例适用于从反射摄影机到结点(曲面)的距离。 可以用来动态模式只要。 |
Near Clipping | 到附近的裁剪平面以进行图像捕捉的距离。 |
Far Clipping |
到远剪切平面的距离以进行图像捕获。 近裁剪平面和远裁剪平面之间的极大差异会导致将空间烘焙为黑色。因此,如果所需的“远剪切平面”值不在该范围内,请按比例调整“近剪切”值。 |
Sky Cutout |
裁剪Environment Probe中的天空渲染,并渲染动态反射而不是天空。 当一天中的时间发生变化时,此参数可用于在窗口中呈现天空渐变的变化。 |
Local Space |
为Environment Probe启用局部空间(局部坐标)。可用于带有移动物体的场景。 如果计划在烘焙后旋转Environment Probe,则建议使用此参数。 |
Visibility Sky | 可以烘烤天空的灯光到Environment Probe. |
Visibility Light World | 启用将World Light源烘焙到Environment Probe. |
Visibility Light Omni | 启用将Omni Light源烘焙到Environment Probe. |
Visibility Light Proj | 启用将Projected Light源烘焙到Environment Probe. |
Visibility Voxel Probe | 启用将其他Voxel Probe光源烘焙到Environment Probe. |
Visibility Emission | 可以烘烤排放光源到Environment Probe. |
Visibility Lightmap | 可以烘烤光线映射的表面到Environment Probe. |
Texture |
反射的多维数据集纹理。 启用Grab by Bake Lighting模式时,每个烘烤照明过程都会更改在此字段中选择的资产。 您可以将该字段留空,以免丢失内容。在这种情况下,将在烘烤照明过程之后为此参数设置一个新生成的照明纹理。生成的纹理存储在data/bake_lighting文件夹中。 |
Cutout By Shadow |
可以裁剪被障碍物遮挡的反射(位于相对于光源的阴影区域中)。此功能使用深度纹理抓住Environment Probe以确定应该可见的反射。
启用后,下面列出的三个参数(Bias, Normal Bias和Depth Texture)可用。 |
Bias | 用于校正Cutout By Shadow功能的场景对象的不精确阴影的偏差。它控制添加到阴影贴图中存储的当前深度值的深度偏移。类似于阴影的Bias参数。 |
Normal Bias | 通过移动阴影所在的表面为Cutout By Shadow特征获得的偏差。曲面沿法线贴图中存储的法线移动。类似于阴影的Normal Bias参数。 |
Depth Texture |
深度纹理,用于剪切障碍物遮挡的反射。 该纹理是静态的,并且每次更改Environment Probe位置或大小时都需要重新生成。 要获取用于裁剪的深度纹理,请执行以下步骤:
启用Grab by Bake Lighting模式和Cutout By Shadow模式时,每个烘烤照明过程都会更改在此字段中选择的资产。 您可以将该字段留空,以免丢失内容。在这种情况下,将在烘烤光照过程之后为此参数设置一个新的生成的深度纹理。生成的纹理存储在data/bake_lighting文件夹中。 |