
//基础选项 Basic options

#define TIMESYSTEM 1
//1 天空同步地面但不准确
//1 The sky is synchronized with the ground, but it's not accurate
//2 天空准确但不同步地面
//2 The sky is accurate but not synchronized with the ground

#define PLANET_ATMOSPHERE 0
//1 开启太空模式
//1 Space Mode ON
//0 关闭太空模式
//0 Space Mode Off

#define FAST_CLOUD 0
//1 低质量但是更快速的云
//1 Low quality but faster clouds
//0 高质量但是更卡顿的云
//0 High quality but lagger clouds



#define SUNCOL vec3(1.0000, 1.0000, 1.0000)
#define SUNLIGHT_A 13.0
//R G B 太空中阳光的颜色
//R G B Color of sunlight in space
//A 阳光的亮度
//A Luminance of the sunlight

#define MOOCOL vec3(0.6693, 0.7541, 1.0000)
#define MOOLIGHT_A 0.7
//R G B 太空中月光的颜色
//R G B Color of moonlight in space
//A 月光的亮度
//A Luminance of the moonlight

#define POICOL vec3(1.0000, 0.5155, 0.2087)
#define POILIGHT_A 20.0
//R G B 灯光的颜色
//R G B Color of lamplight
//A 灯光的亮度
//A Luminance of the lamplight

#define ENVCOL vec3(1.0000, 1.0000, 1.0000)
#define ENVLIGHT_A 0.015
//R G B 环境光颜色
//R G B Color of environment light
//A 环境光强度
//A Luminance of the environment light

#define GRAY vec3(0.18, 0.18, 0.18)
//R G B 平均反射率
//R G B average reflectance



#define SUNDEC 0.2
//太阳偏角
//Solar declination

#define SUN_R 0.015
//太阳的半径，单位为弧度
//The radius of the sun, in radians



#define USE_WATER_TEXTURE 0
//使用原版水面材质
//Use vanilla water surface material

#define USE_NORMAL_MAP 1
//1 使用自动生成的法线
//0 禁用自动生成的法线

#define NORMAL_MAP_FIX 1
//修复法线宽度不一直的问题

#define NORMAL_MAP_STRENGTH 1.0
//法线映射强度

#define NORMAL_MAP_W 1.5
//法线映射宽度

#define FLUORESCENCE 1.0
//材质荧光强度
//Default fluorescence

#define ROUGHNESS 1.0
//材质默认粗糙度
//Default roughness



#define TONEMAP 2
//0 None
//1 ACES
//2 Filmic

#define LUM 1.0
//全局亮度
//Global brightness



#define FOG_A 16.0
//能见度，数值越大雾越淡



#if PLANET_ATMOSPHERE
#define ELEVATION 50.0
//太空模式默认海拔，用于大气层建模，单位为km
//The default altitude of space mode is used for atmosphere modeling, in km

#define SAMNUM 4.0
//太空模式中阳光方向的采样数
//Sampling number of sunlight direction in space mode

#define MARNUM 6.0
//太空模式中视线方向的基础采样数
//将由程序在设置的基础上自动调整
//The number of basic samples in line of sight direction in space mode.
//It will be automatically adjusted by the program based on the settings.

#else
#define ELEVATION 1.5
//物理天空默认海拔，用于大气层建模，单位为km
//The default altitude of sky mode is used for atmosphere modeling, in km

#define SAMNUM 2.0
//物理天空中阳光方向的采样数
//Sampling number of sunlight direction in sky mode

#define MARNUM 3.0
//物理天空中视线方向的基础采样数
//将由程序在设置的基础上自动调整
//The number of basic samples in line of sight direction in sky mode.
//It will be automatically adjusted by the program based on the settings.

#endif



#define O3 (0.007 * vec3(3.426, 8.298, 0.356) * 0.06)
//臭氧浓度
//Ozone
#define LR (0.007 * vec3(0.580, 1.350, 3.310))
//瑞利散射强度
//Rayleigh scattering
#define LM (0.007 * vec3(2.000, 2.000, 2.000))
//米散射强度
//Mie scattering



#define CLOINTNUM  6.0
#define CLOSAMNUM  2.0
#define CLOMARNUM  3.0
//果冻云形状，体素求交次数
//Jelly cloud shape, number of voxel intersection
//果冻云光照，体素求交次数
//Jelly cloud illumination, number of voxel intersection
//果冻云渲染的采样数
//The number of samples for jelly cloud rendering

#define CLOUD_LM 5.0
//云的浓度
//Attenuation coefficient of cloud to light
#define CLOUD_SPEED vec2(0.02, 0.05)
//云的速度，单位km/s
//Speed of cloud, in km / S








////////////////////////////////////////////////////////////////////

//想清楚你自己在做什么，否则最好别修改以下参数
//想清楚你自己在做什么，否则最好别修改以下参数
//想清楚你自己在做什么，否则最好别修改以下参数

//Think about what you're doing, or you'd better not change the following settings
//Think about what you're doing, or you'd better not change the following settings
//Think about what you're doing, or you'd better not change the following settings

////////////////////////////////////////////////////////////////////

#define PM_AIR vec3(0.10, 0.80, 0.10)
#define G_AIR vec3(-0.15, 0.75, 0.95)

#define PM_FOG vec3(0.10, 0.80, 0.10)
#define G_FOG vec3(-0.15, 0.15, 0.75)

#define PM_CLOUD vec3(0.10, 0.80, 0.10)
#define G_CLOUD vec3(-0.15, 0.15, 0.95)



#define CLOUD_W (1.0)
#define CLOUD_H (1.0 / 3.0)
#define CLOUD_Y (3.0)
//云的宽度，单位km
//云的厚度，单位km
//云的底部所在的海拔，单位km



#define RO (LR + O3)
//大气散射衰减系数，除非需要艺术化效果通常不应更改
#define HR 8.0
//瑞利散射放缩高度，单位为km
#define HM 1.2
//米散射放缩高度，单位为km

#define EARTH_R 6371.0
//地球半径，用于大气层建模，单位为km



#define FAST_MATH 0
//使用更快但是精度更低的数学函数（实验性选项，默认关闭）
//请注意这个选项并不能从根本上提升性能，甚至可能导致某些设备出现错误



#define MOBILE 1
//是否在手机上运行

#define FAST_PERLIN 1
//仅使用一阶导平滑的perlin noise
#define FAST_VALUE 1
//仅使用一阶导平滑的的value noise
#define FAST_VORO 0
//仅使用四晶格采样的voronoi noise



#define F0          vec3(0.040)
#define F0_LEAVES   vec3(0.020)

#define F0_WATER    vec3(0.020)
#define F0_GLASS    vec3(0.035)
#define F0_DIAMOND  vec3(0.172)

//F0 = ((n1-n2)/(n1+n2))^2, n(air) = 1.00029
