Choose your operating system:
Windows
macOS
Linux
本页包括天空大气系统的参考信息。它包括项目设置、组件属性、控制台命令和天空大气材质表达式的相关信息。
项目设置
以下项目设置会影响项目中的天空大气组件。
属性 |
说明 |
|
---|---|---|
|
||
支持天空大气(Support Sky Atmosphere) |
天空大气组件需要约束额外的采样器/纹理,以便在透明表面(以及通过每个顶点计算在移动的所有表面)上应用空气透视。 |
|
支持影响高度雾的天空大气(Support Sky Atmosphere Affecting Height Fog) |
天空大气组件可照亮高度雾,但需要约束额外的采样器/纹理,以便在透明表面(以及通过每个顶点计算在移动的所有表面)上应用空气透视。需要启用 支持天空大气(Support Sky Atmosphere)。 |
天空大气属性
可在关卡详细信息面板中找到天空大气组件的以下设置。
属性 |
说明 |
|
---|---|---|
星球(Planet) |
||
变换模式(Transform Mode) |
选择天空大气组件在关卡中的变换放置和移动方式。点击下拉菜单,从以下选项中选择一个:
|
|
地面半径(Ground Radius) |
从中心到地平面测得的星球半径,单位为千米。 |
|
地面反射率(Ground Albedo) |
当太阳光反射到大气时给大气着色的地面反射率。仅在 多散射(MultiScattering) 大于0时才考虑此属性。 |
|
大气(Atmosphere) |
||
大气高度(Atmosphere Height) |
大气层距离地面的高度,单位为千米。 |
|
多散射(MultiScattering) |
将多散射渲染为像太阳光在大气中反射一样。这是利用双散射方法实现的。 |
|
大气 - Rayleigh(Atmosphere - Rayleigh) |
||
Rayleigh散射比例(Rayleigh Scattering Scale) |
Rayleigh散射系数角度。 |
|
Rayleigh散射(Rayleigh Scattering) |
在0千米高度处空气中分子产生的Rayleigh散射系数。 |
|
Rayleigh指数分布(Rayleigh Exponential Distribution) |
Rayleigh散射效应降低到40%时所处的高度,单位为千米。 |
|
大气 - Mie(Atmosphere - Mie) |
||
Mie散射比例(Rayleigh Scattering Scale) |
Mie散射系数比例。 |
|
Mie散射(Mie Scattering) |
在0千米高度处空气中分子产生的Mie散射系数。光越多,散射的就越多。 |
|
Mie散射吸收(Rayleigh Scattering Scale) |
Mie吸收系数比例。 |
|
Mie吸收(Mie Absorption) |
在0千米高度处空气中粒子产生的Mie吸收系数。光越多,吸收的就越多。 |
|
Mie各向异性(Mie Anisotropy) |
值为0表示表示光均匀散射。值越接近1,表示光越向前散射,从而在光源周围产生光晕。 |
|
Mie指数分布(Mie Exponential Distribution) |
Mie效应降低到40%处所处的高度,单位为千米。 |
|
大气 - 吸收(Atmosphere - Absorption) |
||
吸收比例(Absorption Scale) |
另一大气层的吸收系数。在10到25千米之间密度从0增大到1,在25到40千米之间密度从1减小到0。这近似于地球大气中的臭氧分子分布。 |
|
吸收(Absorption) |
另一大气层的吸收系数。在10到25千米之间密度从0增大到1,在25到40千米之间密度从1减小到0。默认值表示地球大气中的臭氧分子吸收。 |
|
帐篷(Tent) |
表示大气中吸收粒子基于高度的帐篷分布。
|
|
艺术方向(Art Direction) |
||
天空亮度系数(Sky Luminance Factor) |
调整表示天空的像素的亮度。例如,不属于任何表面。 |
|
空气透视距离比例(Aerial Perspective Distance Scale) |
通过调整从视图到表面(不透明和半透明)的距离,让空气透视看起来更厚重。 |
|
高度雾贡献(Height Fog Contribution) |
当项目设置(Project Settings)中启用 支持影响高度雾的天空大气(Support Sky Atmosphere Affecting Height Fog) 后,调整天空和大气对高度雾的光贡献。 |
|
透射率的最小光仰角(Transmittance Min Light Elevation Angle) |
应用于计算太阳对地面的透射率的最小仰角。对于在网格体上保持可见太阳光和在网格体上显示很有用,即使是太阳已经开始落到地平线以下时。此属性不会影响空气透视。 |
天空大气材质表达式
创建天空材质时,可能想要在其中创建天空、日轮、云和空气透视,会用到以下材质表达式。需要以下表达式的帮助来计算天空中的云和其他元素的光照。
要探索在材质中使用这些应用于skydome网格体的表达式的工作示例,参见可在 Engine/Maps/Templates
文件夹中找到的 TimeOfDay_default 图,也可用主菜单创建新关卡并从中选择此图。
另外,欲了解更多详情,参见天空大气页面中的"Skydome网格体"部分。
使用其中一些表达式时,由于它们将推动skydome网格体形状的值的计算,此网格体形状非常重要。例如,若用这些函数计算云上的光照,可假定skydome像素场景位置表示云在大气中的场景位置。
SkyAtmosphereViewLuminance
SkyAtmosphereViewLuminance 表达式输出与大气中的大气光相互作用产生的天空亮度。
SkyAtmosphereAerialPerspective
SkyAtmosphereAerialPerspective 表达式输出RGBA颜色的散射亮度(用RGB表示)以及skydome在大气中的场景位置的灰度透射率。
由于它将推动skydome网格体形状的值的计算,此网格体形状很重要。例如,若用这些函数计算云上的光照,可假定skydome像素场景位置表示云在大气中的场景位置。但有一个覆盖来提供采样位置。
SkyAtmosphereLightDirection
SkyAtmosphereLightDirection 表达式接受定向光源的大气光指数,并输出此光的光方向。
在 详细信息(Details) 面板中,设置被引用的定向光源的 光指数(Light Index)。它应与定向光源的 大气太阳光指数(Atmosphere Sun Light Index) 属性一致。
SkyAtmosphereLightIlluminance
SkyAtmosphereLightIlluminance 表达式采用定向光源的大气光指数,并输出到达skydome场景位置的照度(见下文注释)。它是照度,因此它需要与BxD/相位函数相结合来获取累积的亮度。乘法加上统一的相位函数1/(4π)是个良好的起点。
在 详细信息(Details) 面板中,设置被引用的定向光源的 光指数(Light Index)。它应与定向光源的 大气太阳光指数(Atmosphere Sun Light Index) 属性一致。
由于它将推动skydome网格体形状的值的计算,此网格体形状很重要。例如,若用这些函数计算云上的光照,可假定skydome像素场景位置表示云在大气中的场景位置。但有一个覆盖来提供采样位置。
SkyAtmosphereDistantLightScatteredLuminance
SkyAtmosphereDistanceLightScatteredLuminance 表达式输出单位球体上天空散射的整体亮度,同时假设一个统一的相位函数。样本是在DistanceSkyLight LUT(r.SkyAtmosphere.DistanceSkyLightLUT.Altitude)的指定高度处采集的。
SkyAtmosphereLightDiskLuminance
SkyAtmosphereLightDiskLuminance 表达式采用定向光源的大气光指数,并输出日轮亮度及应用的大气透射率。
在 详细信息(Details) 面板中,设置被引用的定向光源的 光指数(Light Index)。它应与定向光源的 大气太阳光指数(Atmosphere Sun Light Index) 属性一致。
控制台命令
使用以下控制台命令,能控制大气的性能和视觉质量。
欲了解更多详情,参见天空大气页面中的"天空渲染选项(Sky Rendering Options)"部分。
控制台变量 |
说明 |
|
---|---|---|
系统(System) |
||
|
不为0时,渲染天空大气组件,否则忽略。 |
|
|
支持天空大气渲染和着色器代码。 |
|
|
支持影响高度雾的天空大气。需要r.SupportSkyAtmosphere为true。 |
|
快速天空视图LUT(Fast Sky View LUT) |
||
|
所有的天空查找表(LUT)都使用完整的32位逐通道精度。 |
|
|
启用后,使用查找纹理渲染天空。这速度更快,但若天空中有地影、散射光晕等若干高频细节,会导致视觉瑕疵。 |
|
|
用于计算天空/大气散射和透射率的快速天空最小样本计数。默认值限定为1。 |
|
|
用于计算天空/大气散射和透射率的快速天空最大样本计数。最小值限定为r.SkyAtmosphere.FastSkyLUT.SampleCountMin+1。 |
|
|
快速天空距离(以千米为单位),在此之后使用SampleCountMax样本对大气进行光线步进。 |
|
|
FastSky LUT的宽度。 |
|
|
FastSky LUT的高度。 |
|
空气透视(Aerial Perspective) |
||
|
我们开始计算空气透视所处的距离。默认值设为100米。 |
|
|
启用后,使用深度测试,以便不写入比StartDepth更接近摄像机的像素,从而有效提高性能。 |
|
空气透视LUT(Aerial Perspective LUT) |
||
|
空气透视体体积纹理使用的深度切片数。 |
|
|
LUT长度(以千米为单位)(默认值为96公里,以便默认天空在此距离内获得良好的云/大气相互作用)。在比此距离更远的位置使用最后一个切片。 |
|
|
每个切片用于计算摄像机视锥空间froxel中的空气透视散射和透射率的样本计数。 |
|
|
空气透视LUT在屏幕上的宽度和高度。 |
|
|
启用后,包含大气雾的低分辨率摄像机视锥体/Froxel体积(通常用于半透明的雾)将用于渲染透明的雾。这样速度会更快,但是假如有一些高频细节,例如地面阴影或散射Lob,则可能会导致一些瑕疵。 |
|
光线步进天空(Raymarching Sky) |
||
|
用于计算天空/大气散射和透射率的最小样本计数。最小值限定为1。 |
|
|
用于计算天空/大气散射和透射率的最大样本计数。最小值限定为r.SkyAtmosphere.SampleCountMin+1。 |
|
|
距离(以千米为单位),在此之后使用SampleCountMax样本对大气进行光线步进。 |
|
透射率LUT(Transmittance LUT) |
||
|
用于计算透射率的样本计数。 |
|
|
若为true,透射率使用较小的R8BG8B8A8格式以较低质量存储数据。 |
|
|
启用天空大气光源逐像素透明度,但仅对延迟渲染器中的不透明对象有效。这种方法开销更大,但是启用后,太空/行星视图会更加精确。 |
|
|
透射率LUT的宽度。 |
|
|
透射率LUT的高度。 |
|
多散射LUT(Multi-Scattering LUT) |
||
|
用于计算多散射的样本计数。 |
|
|
启用后,将使用64个样本,而不是2个样本,从而获得更精确的多散射近似(但开销也会略高一些)。 |
|
|
多散射LUT的宽度。 |
|
|
多散射LUT的高度。 |
|
远距离天光LUT(Distance Sky Light LUT) |
||
|
支持生成天空环境光照值。 |
|
|
采集天空样本以融合天空光照的高度。默认为6千米,典型卷云高度。 |