Skip to content

天空

天空盒

alt text

在未选中任何对象或点击场景视图后,在属性窗口将显示场景数据。可在该窗口对场景数据进行修改。通过勾选天空盒选项可以调出天空盒属性,可修改天空盒默认旋转角度,或在资源窗口将天空盒图像文件拖拽至场景右侧的图片框中,实现为场景添加天空盒的功能。 通过勾选网格选项,会在场景视图的XoY平面上添加网格。

大气散射

目前引擎的大气散射依赖于GL4.3或者GLES3.2,低于这个版本可能会产生未知错误。

开启大气散射天空盒

当编辑器场景选择空白区域时,会默认反射场景数据,在此处勾选使用大气散射天空盒即可开启大气散射天空盒。 alt text

配置大气散射天空盒

大气散射的配置界面包括三个控件,包括1个大气组件和2个大气光组件,可以控制大气的位置、厚度、影响大气的光照属性等信息。

大气组件

  • 属性列表
属性说明
海平面设置当前的海平面位置,在大气-星球模型中低于海平面的区域被地形覆盖,所以低空区域看到黑色
地球半径大气-星球模型中的星球的半径
大气高度大气-星球模型中的大气距离地表高度
空中透视距离大气雾叠加最远距离
空中透视强度影响远方大气雾的叠加强度
是否开启空中透视是否开启大气雾的叠加

alt text

大气光组件

  • 属性列表
属性说明
天体太阳/月亮,自动生成,默认不可选
主光照对应场景树中的Actor
光强度大气受到影响的光强度
光照颜色光对大气的影响颜色
光盘角度大气元素(太阳、月亮)的绘制大小
瑞利散射标度瑞利散射系数
瑞利散射标度高度在这个范围内主要受瑞利散射影响
米氏散射标度米氏散射系数
米氏散射各向异性迷失散射的各向异性系数,1表示正方向,-1表示负方向
米氏散射标度高度在这个范围内主要受米氏散射影响
臭氧吸收量表臭氧层吸收系数
臭氧层中心高度在这个范围内主要受臭氧层吸收影响
臭氧层厚度臭氧层的范围
alt text
alt text

NAtmosphere接口类

  • 静态接口
接口名称说明
SetEnableAtmosphere设置是否开启大气散射
SetUseCustomParameters设置是否使用自定义大气散射参数
SetCustomParameters设置自定义大气散射参数
MarkCustomDirtyFlag标记大气散射部分参数脏标记
SetRenderAerialPerspective设置是否开启空中透视大气叠加

是否开启大气散射

  • 接口 static void SetEnableAtmosphere(bool enable);

  • 参数

参数说明
enable是否开启大气散射
  • 描述

您可以通过NAtmosphere的SetEnableAtmosphere接口设置是否开启大气散射。

cpp
void ExampleClass::Start()
{
	NAtmosphere::SetEnableAtmosphere(false);
}

是否使用自定义大气散射参数

  • 接口
cpp
static void SetUseCustomParameters(bool useCustom);
  • 参数
参数说明
useCustom是否使用自定义参数
  • 描述

您可以通过NAtmosphere的SetUseCustomParameters接口设置大气散射是否使用自定义参数。

cpp
void ExampleClass::Start()
{
	NAtmosphere:: SetUseCustomParameters(false);
}

设置自定义大气散射参数

  • 接口
cpp
static void SetCustomParameters(const AtmosphereCustomParameters& params);
  • 参数
参数说明
params自定义参数
  • AtmosphereCustomParameters结构体
参数说明
SeaLevel海平面高度
PlanetRadius星球半径
AtmosphereHeight大气高度
AerialPerspectiveDistance大气透视叠加距离
AerialPerspectiveIntensity大气透视叠加强度
SunDirection太阳方向
MoonDirection月亮方向
CameraFixRotation相机修正旋转
CameraPosition相机修正位置
WorldFixedMatrix世界修正矩阵
SunIntensity太阳强度
MoonIntensity月亮强度
  • 描述

您可以通过NAtmosphere的SetCustomParameters接口设置大气散射的自定义参数。 相机修正旋转、修正位置、世界修正矩阵针对于其他形式的大气-星球模型。

cpp
void ExampleClass::Start()
{
	AtmosphereCustomParameters param;
	NAtmosphere::SetCustomParametere(param);
}