Path: blob/master/servers/rendering/renderer_rd/shaders/light_data_inc.glsl
10279 views
#define LIGHT_BAKE_DISABLED 0 #define LIGHT_BAKE_STATIC 1 #define LIGHT_BAKE_DYNAMIC 2 struct LightData { //this structure needs to be as packed as possible vec3 position; float inv_radius; vec3 direction; float size; vec3 color; float attenuation; float cone_attenuation; float cone_angle; float specular_amount; float shadow_opacity; vec4 atlas_rect; // rect in the shadow atlas mat4 shadow_matrix; float shadow_bias; float shadow_normal_bias; float transmittance_bias; float soft_shadow_size; // for spot, it's the size in uv coordinates of the light, for omni it's the span angle float soft_shadow_scale; // scales the shadow kernel for blurrier shadows uint mask; float volumetric_fog_energy; uint bake_mode; vec4 projector_rect; //projector rect in srgb decal atlas }; #define REFLECTION_AMBIENT_DISABLED 0 #define REFLECTION_AMBIENT_ENVIRONMENT 1 #define REFLECTION_AMBIENT_COLOR 2 struct ReflectionData { vec3 box_extents; float index; vec3 box_offset; uint mask; vec3 ambient; // ambient color float intensity; float blend_distance; bool exterior; bool box_project; uint ambient_mode; float exposure_normalization; float pad0; float pad1; float pad2; //0-8 is intensity,8-9 is ambient, mode mat4 local_matrix; // up to here for spot and omni, rest is for directional // notes: for ambientblend, use distance to edge to blend between already existing global environment }; struct DirectionalLightData { vec3 direction; float energy; // needs to be highp to avoid NaNs being created with high energy values (i.e. when using physical light units and over-exposing the image) vec3 color; float size; float specular; uint mask; float softshadow_angle; float soft_shadow_scale; bool blend_splits; float shadow_opacity; float fade_from; float fade_to; uvec2 pad; uint bake_mode; float volumetric_fog_energy; vec4 shadow_bias; vec4 shadow_normal_bias; vec4 shadow_transmittance_bias; vec4 shadow_z_range; vec4 shadow_range_begin; vec4 shadow_split_offsets; mat4 shadow_matrix1; mat4 shadow_matrix2; mat4 shadow_matrix3; mat4 shadow_matrix4; vec2 uv_scale1; vec2 uv_scale2; vec2 uv_scale3; vec2 uv_scale4; };