This page has been translated automatically.
视频教程
界面
要领
高级
实用建议
基础
专业(SIM)
UnigineEditor
界面概述
资源工作流程
版本控制
设置和首选项
项目开发
调整节点参数
Setting Up Materials
设置属性
照明
Sandworm
使用编辑器工具执行特定任务
如何擴展編輯器功能
嵌入式节点类型
Nodes
Objects
Effects
Decals
光源
Geodetics
World Nodes
Sound Objects
Pathfinding Objects
Players
编程
基本原理
搭建开发环境
使用范例
C++
C#
UnigineScript
统一的Unigine着色器语言 UUSL (Unified UNIGINE Shader Language)
Plugins
File Formats
材质和着色器
Rebuilding the Engine Tools
GUI
双精度坐标
应用程序接口
Animations-Related Classes
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
VR-Related Classes
创建内容
内容优化
材质
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Tutorials
注意! 这个版本的文档是过时的,因为它描述了一个较老的SDK版本!请切换到最新SDK版本的文档。
注意! 这个版本的文档描述了一个不再受支持的旧SDK版本!请升级到最新的SDK版本。

Environment Probe

Environment Probe是一种光源,它也可以通过使用立方体贴图(预烘焙或动态更改每帧)在探针内部的对象上提供反射。在UNIGINE中,Environment Probe具有三种类型的投影:

  • 盒子(box)投影适用于室内场景(房间为3D盒子形状)或盒子形状的户外场景(建筑物之间的后巷)。
  • 球形(sphere)投影对于球形的情况效果更好。
  • Raymarching 适用于所有其他情况,探头渲染反射考虑到周围表面的各种形状。照明使用物理正确的公式计算,确保反射和漫射照明与Box和Sphere投影相比更加真实,因此更加消耗性能。

使用Environment Probe,您可以创建反射而不是创建反射材质。

注意
默认情况下,Environment Probe仅用于反射。至于照明,建议使用Voxel Probe光照贴图。这种方法可确保获得最佳结果,但是您仍然可以使用Environment Probe进行间接照明

也可以看看#

概述#

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 ProbeSSR是通过动态照明非常快速地模仿反射的好方法。

透明对象的多环境探针#

为透明对象设置的Multiple Environment Probes选项(在前传)允许多个Environment Probe节点影响对象并将其多维数据集映射到该对象。

  • 禁用该选项时,只有最后设置的Environment Probe会影响该对象。那时,整个对象必须在Environment Probe的半径内。否则,它将完全不受此Environment Probe的影响。
  • 启用该选项后,对象将被整个Environment Probe照亮:每个探针都会影响对象的一部分,该部分位于探针内部。 Environment Probe节点的立方体贴图将在交叉区域混合。
注意
必须通过Rendering -> Transparent -> Multiple Environment Probes启用多个Environment Probe节点的渲染。
Multiple Environment Probes已关闭:仅左侧立方体贴图已映射到对象
Multiple Environment Probes启用:映射和混合两个立方体贴图

添加环境探针#

要通过UnigineEditor将Environment Probe节点添加到场景中,请执行以下操作:

  1. 跑步UnigineEditor的项目。
  2. 在菜单栏上,单击Create -> Lights,然后选择所需的Environment Probe:Box,Sphere或Raymarching。这投影形状通过Parameters窗口创建后可以对其进行更改。

  3. 放置Environment Probe
  4. 抓取Environment Probe的立方体贴图纹理。您可以通过Parameters窗口来抓取它,也可以使用Bake Lighting工具。
  5. 调整Environment Probe设定
注意
  • 您不能将实时灯光(Omni Light, Projected Light等)烘烤为Environment Probe。最好的办法是用发光材质代替光来放置球体,调整发射强度,然后烘烤照明。但是,结果看起来比实时照明的效果要差。
  • 使用Bake to Environment Probes选项定义曲面是否应将其反射烘焙为Environment Probe

在UnigineEditor视口中选择Environment Probe时,参考球将在探针中心可视化:

  • 间接镜面球有助于估计探头提供的反射。
  • 间接漫射球有助于估计探头提供的环境照明(要求启用间接照明Indirect Diffuse)。

环境探针设置#

可以在Parameters窗口的Node选项卡中找到Environment Probe设置。此标签同时包含所有光源的参数以及特定于Environment Probe的参数。具体参数说明如下。

常用参数#

Environment Probe使用的投影形状类型:
  • Box projection 适用于室内场景(房间为3D盒子形状)或盒子形状的户外场景(建筑物之间的后巷)。
  • Sphere projection 对于球形的情况效果更好。
  • Raymarching 适用于所有其他情况,探头渲染反射考虑到周围表面的各种形状。照明使用物理正确的公式计算,确保反射和漫射照明与Box和Sphere投影相比更加真实,因此更加消耗性能。
Box Projection Size 指定框投影的大小。
Attenuation Distance 设置衰减距离为Environment Probe。
Attenuation Power 设置衰减功率为Environment Probe。

渲染参数#

Color 设置灯光颜色格式为RGBA。颜色定义了虚拟表示的合理性及其美学成分。
Intensity

设置灯光颜色乘数,它可以很好地控制发射光的颜色强度:

  • 最小值1对应于最小的饱和光颜色。
  • 100的最大值等于最明亮和最强烈的颜色。
Shadow Mask Shadow遮罩控制由光源照亮的对象投射的阴影的渲染。
Viewport Mask 设置灯光的Viewport蒙版。
Visibility Distance 距相机的距离(以单位为单位),直到渲染Environment Probe为止。
Fade Distance 距相机的距离(以单位为单位),从该距离开始,Environment Probe开始逐渐消失。
Render On Water 在水上渲染Environment Probe
Render On Transparent 在透明对象上渲染Environment Probe
Multiply By Sky Color

发挥影响太阳光色Environment Probe

注意
启用后,此选项可使Environment Probe颜色在夜间变为黑色,而在日落时变为橙色。
Additive Blending 启用Environment Probe的加性混合模式。此选项在照明和反射控制方面提供了更大的灵活性。您可以使用它将多个Environment Probe节点的照明和反射混合在一起并分别控制它们.
Noise Frame Number 每一帧改变的噪声模式的变化数。更高的值会产生更动态的噪声效果,但是帧的显著时间累积会使图像看起来像使用了更多的光线。较小的值导致更静态的噪声模式。
Last Step Cubemap

允许选择立方体贴图用于最后的射线行进步骤:

  • Environment Probe:最后一步使用的立方体映射与前面所有步骤相同。
  • Only Sky:立方体地图只包含天空和云。这个选项的目的是修复不正确的视差,可能发生在反射由于无限长的最后一步。

间接漫反射和镜面参数#

通常有两组参数:

Indirect Diffuse Environment Probe启用间接漫射(环境)照明。默认情况下,Environment Probe仅用于反射;至于照明,建议使用Voxel Probe Lightmaps进行模拟,这种方法可以确保最佳效果。但是,您仍然可以通过启用该选项来使用Environment Probe进行间接漫射照明。
Indirect Specular 切换Environment Probe的镜面照明。

环境探测类型不同,参数也不同。

球面投影#

Sphere Projection Parameters

Contrast 设置间接漫射照明的对比度。
Parallax

考虑到相机的位置,允许渲染反射。当禁用此选项时,反射立方体映射只是投影到对象上,而不遵循查看者的视角。

  • 0(最小):视差校正被禁用(反射看起来像物体是无限远的)。
  • 1(最大值):启用视差校正(反射将看起来像物体在接近半径Environment Probe的距离上)。
  • 中间的值表示视差校正的线性插值因子,当使用Environment Probe将中型或小型物体放入环境中以进行额外校正时,将设置该值。
注意
视差校正不影响透明物体上的反射。

盒投影#

Box Projection Parameters

Ambient Parallax 使全球照明模拟。Environment Probe通过使用立方体映射生成伪 GI。
Contrast 设置间接漫射照明的对比度。
Gloss Corners 盒子投影角附近的反射光泽度强度。

Raymarching#

Raymarching Parameters

Num Rays 射线的数量每像素,用于计算扩散/粗糙表面的镜面反射。使用更多的光线提供了更精确的反映粗糙度计算,然而,它是更昂贵的。
Num Steps 用于跟踪计算的每条射线的步数。步数定义了间接光/反射的精度,并对性能产生合理的影响。该值越高,物体之间的障碍物被考虑的越准确。
Step Size 跟踪步骤用于扩散的大小/镜面反射的计算。更高的值导致更长的痕迹(然而,微小物体可能成为失踪),较低的值产生更多详细的微小物体反射。
Num Steps Roughness Threshold 步数(Num Steps)等于1时的粗糙度值。这是优化所必需的,因为尽可能正确地计算哑光反射可能是不必要的。
Information Lost Rays Multiplier 乘数的射线(Num Rays)通常发生在地区重影效果。增加这个值降低了重影,但更重影的情况下,它会影响性能。
Mip Offset 用于漫射光/镜面反射计算的立方体贴图的mipmap偏移量。增加该值会影响性能,灯光变得不那么详细和逼真,立方体地图上的小物体可能会丢失。0值提供了视觉上最可信的结果,但是需要更多的射线来消除噪声。
Threshold 阈值用于漫射光/镜面反射的计算限制模仿反映地区无法获得的信息。更高的值使效果不明显。
Threshold Occlusion 在无法获得信息的区域限制环境立方体图遮挡的模仿值。数值越高,效果越不明显。该参数主要用于室内环境,校正遮挡区域的假反射(假反射用黑色代替)。对于室外环境,建议设置较大的数值。
Reconstruction Samples Screen 更准确地检测光线与表面的屏幕空间相交所需的迭代次数。更高的值更精确地定义了十字路口,然而显著地影响性能。
Threshold Binary Search 用于交叉检测的阈值,该阈值定义了射线在表面下穿透的深度。较高的值可能导致更多的假相交,但使相交检测过程更容易。
Perspective Compensation 透视补偿射线行进步长。0表示射线行进步长绑定到世界空间,1表示它绑定到屏幕空间。因此,在1值处,距离摄像头的光线长度会比近距离处的光线长度大,这对大物体来说是有意义的,但距离内小物体的细节可能会丢失。
Non Linear Step Size 射线步长调整值。0的值表示每一步的步长相同,当1的值时,后续的每一步都比前一步宽两倍。
AO Intensity 环境遮挡强度。请记住,环境遮挡在现实世界中不存在,这是一种模仿物体之间阴影的方法。对于逼真的可视化,我们建议将此值保持为0
AO Radius 在环境遮挡效果中使用的样本像素的半径,控制变暗区域的范围。
Translucent Anisotropy

值定义透明光穿透表面的程度。

  • 光不能穿透表面。
  • 0.5 -光分布同样两岸的表面(沿射线方向转向光源)
  • 1.0 -所有的光沿着射线方向穿过表面。
Replace With Diffuse Roughness Threshold Indirect Specular 停止计算并替换为 Indirect Diffuse 时开始的粗糙度值。 此设置用于优化遮罩反射。
BRDF 哑光表面的光分布模型。GGX更现实,但会增加噪音并略微降低性能。

烘焙设置#

注意
对这些参数进行更改后,请重新获取立方体贴图纹理。
Mode

指定反射是实时更新还是烘烤到纹理中。

注意
应该启用Dynamic Reflections选项:Rendering -> Features -> Dynamic Reflections
Faces Per Frame

多维数据集贴图更新间隔。

  • 1 —每帧仅刷新一张脸。
  • 2 —每帧刷新两张脸。
  • 3 —每帧刷新三张脸。
  • 4 —每帧刷新四张脸。
  • 5 —每帧刷新五张脸。
  • 6 —每帧刷新所有六个面。
注意
可以用来Realtime Update模式只要。
Grab by Bake Lighting 指定是否要通过Bake Lighting工具修改立方体贴图纹理。
Reflection Viewport Mask 面具控制将Environment Probe的反射渲染到反射摄影机视口中。
Resolution

反射纹理的分辨率,以像素为单位。

注意
在具有低内存容量的低性能GPU上设置过高的分辨率可能会导致引擎崩溃。
Supersampling 用于图像捕获超采样的每像素采样数。
Mipmaps Quality

mipmaps的质量和粗糙表面反射的粗糙度校正模式。

有以下几种模式:

  • Low:Correct Roughness(正确的粗糙度)值为 Low,Mipmaps质量值为 0.25
  • Medium:Correct Roughness(正确的粗糙度)值为 Medium,Mipmaps质量值为 0.5
  • High:Correct Roughness(正确的粗糙度)值为 High,Mipmaps质量值为 0.75
  • Ultra:Correct Roughness(正确的粗糙度)值为 Ultra,Mipmaps质量值为 1.0
注意
  • 在内存容量低的低性能GPU上设置过高的质量可能会导致引擎崩溃。
  • 可以用来Realtime Update模式只要。
Distance Scale

G反射的全局距离乘数在[0.0f;1.0f]范围内检出限可见距离。距离比例适用于从反射摄影机到结点(曲面)的距离。

注意
可以用来Realtime Update模式只要。
Near Clipping 到附近的裁剪平面以进行图像捕捉的距离。
Far Clipping

到远剪切平面的距离以进行图像捕获。

注意
近裁剪平面和远裁剪平面之间的极大差异会导致将空间烘焙为黑色。因此,如果所需的“远剪切平面”值不在该范围内,请按比例调整“近剪切”值。
Sky Cutout

裁剪Environment Probe中的天空渲染,并渲染动态反射而不是天空。

注意
当一天中的时间发生变化时,此参数可用于在窗口中呈现天空渐变的变化。
Local Space

Environment Probe启用局部空间(局部坐标)。可用于带有移动物体的场景。

注意
如果计划在烘焙后旋转Environment Probe,则建议使用此参数。
注意
您可以将以下7个可见性选项与添加剂混合在以下方面提供更大的灵活性轻度烘烤。因此,您可以使Environment Probe节点彼此独立,并将它们组合以产生某种动态GI效果。
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 Environment Probe 使 Environment 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 BiasDepth Texture)可用。

Bias 用于校正Cutout By Shadow功能的场景对象的不精确阴影的偏差。它控制添加到阴影贴图中存储的当前深度值的深度偏移。类似于阴影的Bias参数。
Normal Bias 通过移动阴影所在的表面为Cutout By Shadow特征获得的偏差。曲面沿法线贴图中存储的法线移动。类似于阴影的Normal Bias参数。
Depth Texture

深度纹理,用于剪切障碍物遮挡的反射。

注意
该纹理是静态的,并且每次更改Environment Probe位置或大小时都需要重新生成。

要获取用于裁剪的深度纹理,请执行以下步骤:

  1. 如有必要,将Environment Probe放置在所需位置并调整其大小。
  2. 禁用计算遮挡(阴影)区域时不应考虑的所有节点。
  3. 启用Cutout By Shadow功能,并确保还启用了Grab by Bake Lighting模式。
  4. 单击Show Bake Lighting,然后在出现的窗口中单击Bake Selected Probe
  5. 生成纹理后,可以在运行时启用或禁用裁剪。
注意

启用Grab by Bake Lighting模式和Cutout By Shadow模式时,每个烘烤照明过程都会更改在此字段中选择的资源。

您可以将该字段留空,以免丢失内容。在这种情况下,将在烘烤光照过程之后为此参数设置一个新的生成的深度纹理。生成的纹理存储在data/bake_lighting文件夹中。

最新更新: 2024-04-19
Build: ()