Remove unimplemented `Environment.ambient_light_occlusion_color` property
This property was intended to provide a way to have SSAO or VoxelGI ambient occlusion with a color other than black. However, it was dropped during the Vulkan renderer development due to the performance overhead it caused when the feature wasn't used.
This commit is contained in:
parent
8afd2171d1
commit
265bae824f
|
@ -56,8 +56,6 @@
|
||||||
<member name="ambient_light_energy" type="float" setter="set_ambient_light_energy" getter="get_ambient_light_energy" default="1.0">
|
<member name="ambient_light_energy" type="float" setter="set_ambient_light_energy" getter="get_ambient_light_energy" default="1.0">
|
||||||
The ambient light's energy. The higher the value, the stronger the light.
|
The ambient light's energy. The higher the value, the stronger the light.
|
||||||
</member>
|
</member>
|
||||||
<member name="ambient_light_occlusion_color" type="Color" setter="set_ao_color" getter="get_ao_color" default="Color(0, 0, 0, 1)">
|
|
||||||
</member>
|
|
||||||
<member name="ambient_light_sky_contribution" type="float" setter="set_ambient_light_sky_contribution" getter="get_ambient_light_sky_contribution" default="1.0">
|
<member name="ambient_light_sky_contribution" type="float" setter="set_ambient_light_sky_contribution" getter="get_ambient_light_sky_contribution" default="1.0">
|
||||||
Defines the amount of light that the sky brings on the scene. A value of 0 means that the sky's light emission has no effect on the scene illumination, thus all ambient illumination is provided by the ambient light. On the contrary, a value of 1 means that all the light that affects the scene is provided by the sky, thus the ambient light parameter has no effect on the scene.
|
Defines the amount of light that the sky brings on the scene. A value of 0 means that the sky's light emission has no effect on the scene illumination, thus all ambient illumination is provided by the ambient light. On the contrary, a value of 1 means that all the light that affects the scene is provided by the sky, thus the ambient light parameter has no effect on the scene.
|
||||||
</member>
|
</member>
|
||||||
|
|
|
@ -932,7 +932,6 @@
|
||||||
<argument index="3" name="energy" type="float" default="1.0" />
|
<argument index="3" name="energy" type="float" default="1.0" />
|
||||||
<argument index="4" name="sky_contibution" type="float" default="0.0" />
|
<argument index="4" name="sky_contibution" type="float" default="0.0" />
|
||||||
<argument index="5" name="reflection_source" type="int" enum="RenderingServer.EnvironmentReflectionSource" default="0" />
|
<argument index="5" name="reflection_source" type="int" enum="RenderingServer.EnvironmentReflectionSource" default="0" />
|
||||||
<argument index="6" name="ao_color" type="Color" default="Color(0, 0, 0, 1)" />
|
|
||||||
<description>
|
<description>
|
||||||
</description>
|
</description>
|
||||||
</method>
|
</method>
|
||||||
|
|
|
@ -173,23 +173,13 @@ Environment::ReflectionSource Environment::get_reflection_source() const {
|
||||||
return reflection_source;
|
return reflection_source;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Environment::set_ao_color(const Color &p_color) {
|
|
||||||
ao_color = p_color;
|
|
||||||
_update_ambient_light();
|
|
||||||
}
|
|
||||||
|
|
||||||
Color Environment::get_ao_color() const {
|
|
||||||
return ao_color;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Environment::_update_ambient_light() {
|
void Environment::_update_ambient_light() {
|
||||||
RS::get_singleton()->environment_set_ambient_light(
|
RS::get_singleton()->environment_set_ambient_light(
|
||||||
environment,
|
environment,
|
||||||
ambient_color,
|
ambient_color,
|
||||||
RS::EnvironmentAmbientSource(ambient_source),
|
RS::EnvironmentAmbientSource(ambient_source),
|
||||||
ambient_energy,
|
ambient_energy,
|
||||||
ambient_sky_contribution, RS::EnvironmentReflectionSource(reflection_source),
|
ambient_sky_contribution, RS::EnvironmentReflectionSource(reflection_source));
|
||||||
ao_color);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Tonemap
|
// Tonemap
|
||||||
|
@ -1092,15 +1082,12 @@ void Environment::_bind_methods() {
|
||||||
ClassDB::bind_method(D_METHOD("get_ambient_light_sky_contribution"), &Environment::get_ambient_light_sky_contribution);
|
ClassDB::bind_method(D_METHOD("get_ambient_light_sky_contribution"), &Environment::get_ambient_light_sky_contribution);
|
||||||
ClassDB::bind_method(D_METHOD("set_reflection_source", "source"), &Environment::set_reflection_source);
|
ClassDB::bind_method(D_METHOD("set_reflection_source", "source"), &Environment::set_reflection_source);
|
||||||
ClassDB::bind_method(D_METHOD("get_reflection_source"), &Environment::get_reflection_source);
|
ClassDB::bind_method(D_METHOD("get_reflection_source"), &Environment::get_reflection_source);
|
||||||
ClassDB::bind_method(D_METHOD("set_ao_color", "color"), &Environment::set_ao_color);
|
|
||||||
ClassDB::bind_method(D_METHOD("get_ao_color"), &Environment::get_ao_color);
|
|
||||||
|
|
||||||
ADD_GROUP("Ambient Light", "ambient_light_");
|
ADD_GROUP("Ambient Light", "ambient_light_");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "ambient_light_source", PROPERTY_HINT_ENUM, "Background,Disabled,Color,Sky"), "set_ambient_source", "get_ambient_source");
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "ambient_light_source", PROPERTY_HINT_ENUM, "Background,Disabled,Color,Sky"), "set_ambient_source", "get_ambient_source");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::COLOR, "ambient_light_color"), "set_ambient_light_color", "get_ambient_light_color");
|
ADD_PROPERTY(PropertyInfo(Variant::COLOR, "ambient_light_color"), "set_ambient_light_color", "get_ambient_light_color");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "ambient_light_sky_contribution", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_ambient_light_sky_contribution", "get_ambient_light_sky_contribution");
|
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "ambient_light_sky_contribution", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_ambient_light_sky_contribution", "get_ambient_light_sky_contribution");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "ambient_light_energy", PROPERTY_HINT_RANGE, "0,16,0.01"), "set_ambient_light_energy", "get_ambient_light_energy");
|
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "ambient_light_energy", PROPERTY_HINT_RANGE, "0,16,0.01"), "set_ambient_light_energy", "get_ambient_light_energy");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::COLOR, "ambient_light_occlusion_color", PROPERTY_HINT_COLOR_NO_ALPHA), "set_ao_color", "get_ao_color");
|
|
||||||
|
|
||||||
ADD_GROUP("Reflected Light", "reflected_light_");
|
ADD_GROUP("Reflected Light", "reflected_light_");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "reflected_light_source", PROPERTY_HINT_ENUM, "Background,Disabled,Sky"), "set_reflection_source", "get_reflection_source");
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "reflected_light_source", PROPERTY_HINT_ENUM, "Background,Disabled,Sky"), "set_reflection_source", "get_reflection_source");
|
||||||
|
|
|
@ -116,7 +116,6 @@ private:
|
||||||
float ambient_energy = 1.0;
|
float ambient_energy = 1.0;
|
||||||
float ambient_sky_contribution = 1.0;
|
float ambient_sky_contribution = 1.0;
|
||||||
ReflectionSource reflection_source = REFLECTION_SOURCE_BG;
|
ReflectionSource reflection_source = REFLECTION_SOURCE_BG;
|
||||||
Color ao_color;
|
|
||||||
void _update_ambient_light();
|
void _update_ambient_light();
|
||||||
|
|
||||||
// Tonemap
|
// Tonemap
|
||||||
|
@ -250,8 +249,6 @@ public:
|
||||||
float get_ambient_light_sky_contribution() const;
|
float get_ambient_light_sky_contribution() const;
|
||||||
void set_reflection_source(ReflectionSource p_source);
|
void set_reflection_source(ReflectionSource p_source);
|
||||||
ReflectionSource get_reflection_source() const;
|
ReflectionSource get_reflection_source() const;
|
||||||
void set_ao_color(const Color &p_color);
|
|
||||||
Color get_ao_color() const;
|
|
||||||
|
|
||||||
// Tonemap
|
// Tonemap
|
||||||
void set_tonemapper(ToneMapper p_tone_mapper);
|
void set_tonemapper(ToneMapper p_tone_mapper);
|
||||||
|
|
|
@ -103,7 +103,7 @@ public:
|
||||||
void environment_set_bg_color(RID p_env, const Color &p_color) override {}
|
void environment_set_bg_color(RID p_env, const Color &p_color) override {}
|
||||||
void environment_set_bg_energy(RID p_env, float p_energy) override {}
|
void environment_set_bg_energy(RID p_env, float p_energy) override {}
|
||||||
void environment_set_canvas_max_layer(RID p_env, int p_max_layer) override {}
|
void environment_set_canvas_max_layer(RID p_env, int p_max_layer) override {}
|
||||||
void environment_set_ambient_light(RID p_env, const Color &p_color, RS::EnvironmentAmbientSource p_ambient = RS::ENV_AMBIENT_SOURCE_BG, float p_energy = 1.0, float p_sky_contribution = 0.0, RS::EnvironmentReflectionSource p_reflection_source = RS::ENV_REFLECTION_SOURCE_BG, const Color &p_ao_color = Color()) override {}
|
void environment_set_ambient_light(RID p_env, const Color &p_color, RS::EnvironmentAmbientSource p_ambient = RS::ENV_AMBIENT_SOURCE_BG, float p_energy = 1.0, float p_sky_contribution = 0.0, RS::EnvironmentReflectionSource p_reflection_source = RS::ENV_REFLECTION_SOURCE_BG) override {}
|
||||||
|
|
||||||
void environment_set_glow(RID p_env, bool p_enable, Vector<float> p_levels, float p_intensity, float p_strength, float p_mix, float p_bloom_threshold, RS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap) override {}
|
void environment_set_glow(RID p_env, bool p_enable, Vector<float> p_levels, float p_intensity, float p_strength, float p_mix, float p_bloom_threshold, RS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap) override {}
|
||||||
void environment_glow_set_use_bicubic_upscale(bool p_enable) override {}
|
void environment_glow_set_use_bicubic_upscale(bool p_enable) override {}
|
||||||
|
|
|
@ -753,12 +753,6 @@ void RenderForwardClustered::_setup_environment(const RenderDataRD *p_render_dat
|
||||||
scene_state.ubo.ssao_ao_affect = environment_get_ssao_ao_affect(p_render_data->environment);
|
scene_state.ubo.ssao_ao_affect = environment_get_ssao_ao_affect(p_render_data->environment);
|
||||||
scene_state.ubo.ssao_light_affect = environment_get_ssao_light_affect(p_render_data->environment);
|
scene_state.ubo.ssao_light_affect = environment_get_ssao_light_affect(p_render_data->environment);
|
||||||
|
|
||||||
Color ao_color = environment_get_ao_color(p_render_data->environment).to_linear();
|
|
||||||
scene_state.ubo.ao_color[0] = ao_color.r;
|
|
||||||
scene_state.ubo.ao_color[1] = ao_color.g;
|
|
||||||
scene_state.ubo.ao_color[2] = ao_color.b;
|
|
||||||
scene_state.ubo.ao_color[3] = ao_color.a;
|
|
||||||
|
|
||||||
scene_state.ubo.fog_enabled = environment_is_fog_enabled(p_render_data->environment);
|
scene_state.ubo.fog_enabled = environment_is_fog_enabled(p_render_data->environment);
|
||||||
scene_state.ubo.fog_density = environment_get_fog_density(p_render_data->environment);
|
scene_state.ubo.fog_density = environment_get_fog_density(p_render_data->environment);
|
||||||
scene_state.ubo.fog_height = environment_get_fog_height(p_render_data->environment);
|
scene_state.ubo.fog_height = environment_get_fog_height(p_render_data->environment);
|
||||||
|
|
|
@ -257,8 +257,6 @@ class RenderForwardClustered : public RendererSceneRenderRD {
|
||||||
float roughness_limiter_limit;
|
float roughness_limiter_limit;
|
||||||
uint32_t roughness_limiter_pad[2];
|
uint32_t roughness_limiter_pad[2];
|
||||||
|
|
||||||
float ao_color[4];
|
|
||||||
|
|
||||||
float sdf_to_bounds[16];
|
float sdf_to_bounds[16];
|
||||||
|
|
||||||
int32_t sdf_offset[3];
|
int32_t sdf_offset[3];
|
||||||
|
|
|
@ -1633,12 +1633,6 @@ void RenderForwardMobile::_setup_environment(const RenderDataRD *p_render_data,
|
||||||
scene_state.ubo.ssao_ao_affect = environment_get_ssao_ao_affect(p_render_data->environment);
|
scene_state.ubo.ssao_ao_affect = environment_get_ssao_ao_affect(p_render_data->environment);
|
||||||
scene_state.ubo.ssao_light_affect = environment_get_ssao_light_affect(p_render_data->environment);
|
scene_state.ubo.ssao_light_affect = environment_get_ssao_light_affect(p_render_data->environment);
|
||||||
|
|
||||||
Color ao_color = environment_get_ao_color(p_render_data->environment).to_linear();
|
|
||||||
scene_state.ubo.ao_color[0] = ao_color.r;
|
|
||||||
scene_state.ubo.ao_color[1] = ao_color.g;
|
|
||||||
scene_state.ubo.ao_color[2] = ao_color.b;
|
|
||||||
scene_state.ubo.ao_color[3] = ao_color.a;
|
|
||||||
|
|
||||||
scene_state.ubo.fog_enabled = environment_is_fog_enabled(p_render_data->environment);
|
scene_state.ubo.fog_enabled = environment_is_fog_enabled(p_render_data->environment);
|
||||||
scene_state.ubo.fog_density = environment_get_fog_density(p_render_data->environment);
|
scene_state.ubo.fog_density = environment_get_fog_density(p_render_data->environment);
|
||||||
scene_state.ubo.fog_height = environment_get_fog_height(p_render_data->environment);
|
scene_state.ubo.fog_height = environment_get_fog_height(p_render_data->environment);
|
||||||
|
|
|
@ -294,8 +294,6 @@ protected:
|
||||||
float roughness_limiter_limit;
|
float roughness_limiter_limit;
|
||||||
uint32_t roughness_limiter_pad[2];
|
uint32_t roughness_limiter_pad[2];
|
||||||
|
|
||||||
float ao_color[4];
|
|
||||||
|
|
||||||
// Fog
|
// Fog
|
||||||
uint32_t fog_enabled;
|
uint32_t fog_enabled;
|
||||||
float fog_density;
|
float fog_density;
|
||||||
|
|
|
@ -32,13 +32,12 @@
|
||||||
|
|
||||||
uint64_t RendererSceneEnvironmentRD::auto_exposure_counter = 2;
|
uint64_t RendererSceneEnvironmentRD::auto_exposure_counter = 2;
|
||||||
|
|
||||||
void RendererSceneEnvironmentRD::set_ambient_light(const Color &p_color, RS::EnvironmentAmbientSource p_ambient, float p_energy, float p_sky_contribution, RS::EnvironmentReflectionSource p_reflection_source, const Color &p_ao_color) {
|
void RendererSceneEnvironmentRD::set_ambient_light(const Color &p_color, RS::EnvironmentAmbientSource p_ambient, float p_energy, float p_sky_contribution, RS::EnvironmentReflectionSource p_reflection_source) {
|
||||||
ambient_light = p_color;
|
ambient_light = p_color;
|
||||||
ambient_source = p_ambient;
|
ambient_source = p_ambient;
|
||||||
ambient_light_energy = p_energy;
|
ambient_light_energy = p_energy;
|
||||||
ambient_sky_contribution = p_sky_contribution;
|
ambient_sky_contribution = p_sky_contribution;
|
||||||
reflection_source = p_reflection_source;
|
reflection_source = p_reflection_source;
|
||||||
ao_color = p_ao_color;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void RendererSceneEnvironmentRD::set_tonemap(RS::EnvironmentToneMapper p_tone_mapper, float p_exposure, float p_white, bool p_auto_exposure, float p_min_luminance, float p_max_luminance, float p_auto_exp_speed, float p_auto_exp_scale) {
|
void RendererSceneEnvironmentRD::set_tonemap(RS::EnvironmentToneMapper p_tone_mapper, float p_exposure, float p_white, bool p_auto_exposure, float p_min_luminance, float p_max_luminance, float p_auto_exp_speed, float p_auto_exp_scale) {
|
||||||
|
|
|
@ -52,7 +52,6 @@ public:
|
||||||
float ambient_light_energy = 1.0;
|
float ambient_light_energy = 1.0;
|
||||||
float ambient_sky_contribution = 1.0;
|
float ambient_sky_contribution = 1.0;
|
||||||
RS::EnvironmentReflectionSource reflection_source = RS::ENV_REFLECTION_SOURCE_BG;
|
RS::EnvironmentReflectionSource reflection_source = RS::ENV_REFLECTION_SOURCE_BG;
|
||||||
Color ao_color;
|
|
||||||
|
|
||||||
/// Tonemap
|
/// Tonemap
|
||||||
|
|
||||||
|
@ -142,7 +141,7 @@ public:
|
||||||
bool use_1d_color_correction = false;
|
bool use_1d_color_correction = false;
|
||||||
RID color_correction = RID();
|
RID color_correction = RID();
|
||||||
|
|
||||||
void set_ambient_light(const Color &p_color, RS::EnvironmentAmbientSource p_ambient, float p_energy, float p_sky_contribution, RS::EnvironmentReflectionSource p_reflection_source, const Color &p_ao_color);
|
void set_ambient_light(const Color &p_color, RS::EnvironmentAmbientSource p_ambient, float p_energy, float p_sky_contribution, RS::EnvironmentReflectionSource p_reflection_source);
|
||||||
void set_tonemap(RS::EnvironmentToneMapper p_tone_mapper, float p_exposure, float p_white, bool p_auto_exposure, float p_min_luminance, float p_max_luminance, float p_auto_exp_speed, float p_auto_exp_scale);
|
void set_tonemap(RS::EnvironmentToneMapper p_tone_mapper, float p_exposure, float p_white, bool p_auto_exposure, float p_min_luminance, float p_max_luminance, float p_auto_exp_speed, float p_auto_exp_scale);
|
||||||
void set_glow(bool p_enable, Vector<float> p_levels, float p_intensity, float p_strength, float p_mix, float p_bloom_threshold, RS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap);
|
void set_glow(bool p_enable, Vector<float> p_levels, float p_intensity, float p_strength, float p_mix, float p_bloom_threshold, RS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap);
|
||||||
void set_sdfgi(bool p_enable, RS::EnvironmentSDFGICascades p_cascades, float p_min_cell_size, RS::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias);
|
void set_sdfgi(bool p_enable, RS::EnvironmentSDFGICascades p_cascades, float p_min_cell_size, RS::EnvironmentSDFGIYScale p_y_scale, bool p_use_occlusion, float p_bounce_feedback, bool p_read_sky, float p_energy, float p_normal_bias, float p_probe_bias);
|
||||||
|
|
|
@ -3121,7 +3121,6 @@ void RendererSceneGIRD::process_gi(RID p_render_buffers, RID p_normal_roughness_
|
||||||
|
|
||||||
RendererSceneRenderRD::RenderBuffers *rb = p_scene_render->render_buffers_owner.get_or_null(p_render_buffers);
|
RendererSceneRenderRD::RenderBuffers *rb = p_scene_render->render_buffers_owner.get_or_null(p_render_buffers);
|
||||||
ERR_FAIL_COND(rb == nullptr);
|
ERR_FAIL_COND(rb == nullptr);
|
||||||
RendererSceneEnvironmentRD *env = p_scene_render->environment_owner.get_or_null(p_environment);
|
|
||||||
|
|
||||||
if (rb->ambient_buffer.is_null() || rb->gi.using_half_size_gi != half_resolution) {
|
if (rb->ambient_buffer.is_null() || rb->gi.using_half_size_gi != half_resolution) {
|
||||||
if (rb->ambient_buffer.is_valid()) {
|
if (rb->ambient_buffer.is_valid()) {
|
||||||
|
@ -3160,16 +3159,6 @@ void RendererSceneGIRD::process_gi(RID p_render_buffers, RID p_normal_roughness_
|
||||||
bool use_sdfgi = rb->sdfgi != nullptr;
|
bool use_sdfgi = rb->sdfgi != nullptr;
|
||||||
bool use_voxel_gi_instances = push_constant.max_voxel_gi_instances > 0;
|
bool use_voxel_gi_instances = push_constant.max_voxel_gi_instances > 0;
|
||||||
|
|
||||||
if (env) {
|
|
||||||
push_constant.ao_color[0] = env->ao_color.r;
|
|
||||||
push_constant.ao_color[1] = env->ao_color.g;
|
|
||||||
push_constant.ao_color[2] = env->ao_color.b;
|
|
||||||
} else {
|
|
||||||
push_constant.ao_color[0] = 0;
|
|
||||||
push_constant.ao_color[1] = 0;
|
|
||||||
push_constant.ao_color[2] = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
push_constant.cam_rotation[0] = p_transform.basis[0][0];
|
push_constant.cam_rotation[0] = p_transform.basis[0][0];
|
||||||
push_constant.cam_rotation[1] = p_transform.basis[1][0];
|
push_constant.cam_rotation[1] = p_transform.basis[1][0];
|
||||||
push_constant.cam_rotation[2] = p_transform.basis[2][0];
|
push_constant.cam_rotation[2] = p_transform.basis[2][0];
|
||||||
|
|
|
@ -623,12 +623,11 @@ public:
|
||||||
float z_far;
|
float z_far;
|
||||||
|
|
||||||
float proj_info[4];
|
float proj_info[4];
|
||||||
float ao_color[3];
|
|
||||||
uint32_t max_voxel_gi_instances;
|
|
||||||
|
|
||||||
|
uint32_t max_voxel_gi_instances;
|
||||||
uint32_t high_quality_vct;
|
uint32_t high_quality_vct;
|
||||||
uint32_t orthogonal;
|
uint32_t orthogonal;
|
||||||
uint32_t pad[2];
|
uint32_t pad;
|
||||||
|
|
||||||
float cam_rotation[12];
|
float cam_rotation[12];
|
||||||
};
|
};
|
||||||
|
|
|
@ -205,10 +205,10 @@ void RendererSceneRenderRD::environment_set_canvas_max_layer(RID p_env, int p_ma
|
||||||
env->canvas_max_layer = p_max_layer;
|
env->canvas_max_layer = p_max_layer;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RendererSceneRenderRD::environment_set_ambient_light(RID p_env, const Color &p_color, RS::EnvironmentAmbientSource p_ambient, float p_energy, float p_sky_contribution, RS::EnvironmentReflectionSource p_reflection_source, const Color &p_ao_color) {
|
void RendererSceneRenderRD::environment_set_ambient_light(RID p_env, const Color &p_color, RS::EnvironmentAmbientSource p_ambient, float p_energy, float p_sky_contribution, RS::EnvironmentReflectionSource p_reflection_source) {
|
||||||
RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
|
RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
|
||||||
ERR_FAIL_COND(!env);
|
ERR_FAIL_COND(!env);
|
||||||
env->set_ambient_light(p_color, p_ambient, p_energy, p_sky_contribution, p_reflection_source, p_ao_color);
|
env->set_ambient_light(p_color, p_ambient, p_energy, p_sky_contribution, p_reflection_source);
|
||||||
}
|
}
|
||||||
|
|
||||||
RS::EnvironmentBG RendererSceneRenderRD::environment_get_background(RID p_env) const {
|
RS::EnvironmentBG RendererSceneRenderRD::environment_get_background(RID p_env) const {
|
||||||
|
@ -283,12 +283,6 @@ RS::EnvironmentReflectionSource RendererSceneRenderRD::environment_get_reflectio
|
||||||
return env->reflection_source;
|
return env->reflection_source;
|
||||||
}
|
}
|
||||||
|
|
||||||
Color RendererSceneRenderRD::environment_get_ao_color(RID p_env) const {
|
|
||||||
RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
|
|
||||||
ERR_FAIL_COND_V(!env, Color());
|
|
||||||
return env->ao_color;
|
|
||||||
}
|
|
||||||
|
|
||||||
void RendererSceneRenderRD::environment_set_tonemap(RID p_env, RS::EnvironmentToneMapper p_tone_mapper, float p_exposure, float p_white, bool p_auto_exposure, float p_min_luminance, float p_max_luminance, float p_auto_exp_speed, float p_auto_exp_scale) {
|
void RendererSceneRenderRD::environment_set_tonemap(RID p_env, RS::EnvironmentToneMapper p_tone_mapper, float p_exposure, float p_white, bool p_auto_exposure, float p_min_luminance, float p_max_luminance, float p_auto_exp_speed, float p_auto_exp_scale) {
|
||||||
RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
|
RendererSceneEnvironmentRD *env = environment_owner.get_or_null(p_env);
|
||||||
ERR_FAIL_COND(!env);
|
ERR_FAIL_COND(!env);
|
||||||
|
|
|
@ -873,7 +873,7 @@ public:
|
||||||
virtual void environment_set_bg_color(RID p_env, const Color &p_color) override;
|
virtual void environment_set_bg_color(RID p_env, const Color &p_color) override;
|
||||||
virtual void environment_set_bg_energy(RID p_env, float p_energy) override;
|
virtual void environment_set_bg_energy(RID p_env, float p_energy) override;
|
||||||
virtual void environment_set_canvas_max_layer(RID p_env, int p_max_layer) override;
|
virtual void environment_set_canvas_max_layer(RID p_env, int p_max_layer) override;
|
||||||
virtual void environment_set_ambient_light(RID p_env, const Color &p_color, RS::EnvironmentAmbientSource p_ambient = RS::ENV_AMBIENT_SOURCE_BG, float p_energy = 1.0, float p_sky_contribution = 0.0, RS::EnvironmentReflectionSource p_reflection_source = RS::ENV_REFLECTION_SOURCE_BG, const Color &p_ao_color = Color()) override;
|
virtual void environment_set_ambient_light(RID p_env, const Color &p_color, RS::EnvironmentAmbientSource p_ambient = RS::ENV_AMBIENT_SOURCE_BG, float p_energy = 1.0, float p_sky_contribution = 0.0, RS::EnvironmentReflectionSource p_reflection_source = RS::ENV_REFLECTION_SOURCE_BG) override;
|
||||||
|
|
||||||
virtual RS::EnvironmentBG environment_get_background(RID p_env) const override;
|
virtual RS::EnvironmentBG environment_get_background(RID p_env) const override;
|
||||||
RID environment_get_sky(RID p_env) const;
|
RID environment_get_sky(RID p_env) const;
|
||||||
|
@ -887,7 +887,6 @@ public:
|
||||||
float environment_get_ambient_light_energy(RID p_env) const;
|
float environment_get_ambient_light_energy(RID p_env) const;
|
||||||
float environment_get_ambient_sky_contribution(RID p_env) const;
|
float environment_get_ambient_sky_contribution(RID p_env) const;
|
||||||
RS::EnvironmentReflectionSource environment_get_reflection_source(RID p_env) const;
|
RS::EnvironmentReflectionSource environment_get_reflection_source(RID p_env) const;
|
||||||
Color environment_get_ao_color(RID p_env) const;
|
|
||||||
|
|
||||||
virtual bool is_environment(RID p_env) const override;
|
virtual bool is_environment(RID p_env) const override;
|
||||||
|
|
||||||
|
|
|
@ -97,12 +97,10 @@ layout(push_constant, binding = 0, std430) uniform Params {
|
||||||
|
|
||||||
vec4 proj_info;
|
vec4 proj_info;
|
||||||
|
|
||||||
vec3 ao_color;
|
|
||||||
uint max_voxel_gi_instances;
|
uint max_voxel_gi_instances;
|
||||||
|
|
||||||
bool high_quality_vct;
|
bool high_quality_vct;
|
||||||
bool orthogonal;
|
bool orthogonal;
|
||||||
uint pad[2];
|
uint pad;
|
||||||
|
|
||||||
mat3x4 cam_rotation;
|
mat3x4 cam_rotation;
|
||||||
}
|
}
|
||||||
|
|
|
@ -209,8 +209,6 @@ layout(set = 1, binding = 0, std140) uniform SceneData {
|
||||||
float roughness_limiter_limit;
|
float roughness_limiter_limit;
|
||||||
uvec2 roughness_limiter_pad;
|
uvec2 roughness_limiter_pad;
|
||||||
|
|
||||||
vec4 ao_color;
|
|
||||||
|
|
||||||
mat4 sdf_to_bounds;
|
mat4 sdf_to_bounds;
|
||||||
|
|
||||||
ivec3 sdf_offset;
|
ivec3 sdf_offset;
|
||||||
|
|
|
@ -170,8 +170,6 @@ layout(set = 1, binding = 0, std140) uniform SceneData {
|
||||||
mediump float roughness_limiter_limit;
|
mediump float roughness_limiter_limit;
|
||||||
uvec2 roughness_limiter_pad;
|
uvec2 roughness_limiter_pad;
|
||||||
|
|
||||||
mediump vec4 ao_color;
|
|
||||||
|
|
||||||
bool fog_enabled;
|
bool fog_enabled;
|
||||||
highp float fog_density;
|
highp float fog_density;
|
||||||
highp float fog_height;
|
highp float fog_height;
|
||||||
|
|
|
@ -126,7 +126,7 @@ public:
|
||||||
virtual void environment_set_bg_color(RID p_env, const Color &p_color) = 0;
|
virtual void environment_set_bg_color(RID p_env, const Color &p_color) = 0;
|
||||||
virtual void environment_set_bg_energy(RID p_env, float p_energy) = 0;
|
virtual void environment_set_bg_energy(RID p_env, float p_energy) = 0;
|
||||||
virtual void environment_set_canvas_max_layer(RID p_env, int p_max_layer) = 0;
|
virtual void environment_set_canvas_max_layer(RID p_env, int p_max_layer) = 0;
|
||||||
virtual void environment_set_ambient_light(RID p_env, const Color &p_color, RS::EnvironmentAmbientSource p_ambient = RS::ENV_AMBIENT_SOURCE_BG, float p_energy = 1.0, float p_sky_contribution = 0.0, RS::EnvironmentReflectionSource p_reflection_source = RS::ENV_REFLECTION_SOURCE_BG, const Color &p_ao_color = Color()) = 0;
|
virtual void environment_set_ambient_light(RID p_env, const Color &p_color, RS::EnvironmentAmbientSource p_ambient = RS::ENV_AMBIENT_SOURCE_BG, float p_energy = 1.0, float p_sky_contribution = 0.0, RS::EnvironmentReflectionSource p_reflection_source = RS::ENV_REFLECTION_SOURCE_BG) = 0;
|
||||||
|
|
||||||
virtual void environment_set_glow(RID p_env, bool p_enable, Vector<float> p_levels, float p_intensity, float p_strength, float p_mix, float p_bloom_threshold, RS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap) = 0;
|
virtual void environment_set_glow(RID p_env, bool p_enable, Vector<float> p_levels, float p_intensity, float p_strength, float p_mix, float p_bloom_threshold, RS::EnvironmentGlowBlendMode p_blend_mode, float p_hdr_bleed_threshold, float p_hdr_bleed_scale, float p_hdr_luminance_cap) = 0;
|
||||||
virtual void environment_glow_set_use_bicubic_upscale(bool p_enable) = 0;
|
virtual void environment_glow_set_use_bicubic_upscale(bool p_enable) = 0;
|
||||||
|
|
|
@ -1078,7 +1078,7 @@ public:
|
||||||
PASS2(environment_set_bg_color, RID, const Color &)
|
PASS2(environment_set_bg_color, RID, const Color &)
|
||||||
PASS2(environment_set_bg_energy, RID, float)
|
PASS2(environment_set_bg_energy, RID, float)
|
||||||
PASS2(environment_set_canvas_max_layer, RID, int)
|
PASS2(environment_set_canvas_max_layer, RID, int)
|
||||||
PASS7(environment_set_ambient_light, RID, const Color &, RS::EnvironmentAmbientSource, float, float, RS::EnvironmentReflectionSource, const Color &)
|
PASS6(environment_set_ambient_light, RID, const Color &, RS::EnvironmentAmbientSource, float, float, RS::EnvironmentReflectionSource)
|
||||||
|
|
||||||
PASS6(environment_set_ssr, RID, bool, int, float, float, float)
|
PASS6(environment_set_ssr, RID, bool, int, float, float, float)
|
||||||
PASS1(environment_set_ssr_roughness_quality, RS::EnvironmentSSRRoughnessQuality)
|
PASS1(environment_set_ssr_roughness_quality, RS::EnvironmentSSRRoughnessQuality)
|
||||||
|
|
|
@ -113,7 +113,7 @@ public:
|
||||||
virtual void environment_set_bg_color(RID p_env, const Color &p_color) = 0;
|
virtual void environment_set_bg_color(RID p_env, const Color &p_color) = 0;
|
||||||
virtual void environment_set_bg_energy(RID p_env, float p_energy) = 0;
|
virtual void environment_set_bg_energy(RID p_env, float p_energy) = 0;
|
||||||
virtual void environment_set_canvas_max_layer(RID p_env, int p_max_layer) = 0;
|
virtual void environment_set_canvas_max_layer(RID p_env, int p_max_layer) = 0;
|
||||||
virtual void environment_set_ambient_light(RID p_env, const Color &p_color, RS::EnvironmentAmbientSource p_ambient = RS::ENV_AMBIENT_SOURCE_BG, float p_energy = 1.0, float p_sky_contribution = 0.0, RS::EnvironmentReflectionSource p_reflection_source = RS::ENV_REFLECTION_SOURCE_BG, const Color &p_ao_color = Color()) = 0;
|
virtual void environment_set_ambient_light(RID p_env, const Color &p_color, RS::EnvironmentAmbientSource p_ambient = RS::ENV_AMBIENT_SOURCE_BG, float p_energy = 1.0, float p_sky_contribution = 0.0, RS::EnvironmentReflectionSource p_reflection_source = RS::ENV_REFLECTION_SOURCE_BG) = 0;
|
||||||
// FIXME: Disabled during Vulkan refactoring, should be ported.
|
// FIXME: Disabled during Vulkan refactoring, should be ported.
|
||||||
#if 0
|
#if 0
|
||||||
virtual void environment_set_camera_feed_id(RID p_env, int p_camera_feed_id) = 0;
|
virtual void environment_set_camera_feed_id(RID p_env, int p_camera_feed_id) = 0;
|
||||||
|
|
|
@ -608,7 +608,7 @@ public:
|
||||||
FUNC2(environment_set_bg_color, RID, const Color &)
|
FUNC2(environment_set_bg_color, RID, const Color &)
|
||||||
FUNC2(environment_set_bg_energy, RID, float)
|
FUNC2(environment_set_bg_energy, RID, float)
|
||||||
FUNC2(environment_set_canvas_max_layer, RID, int)
|
FUNC2(environment_set_canvas_max_layer, RID, int)
|
||||||
FUNC7(environment_set_ambient_light, RID, const Color &, EnvironmentAmbientSource, float, float, EnvironmentReflectionSource, const Color &)
|
FUNC6(environment_set_ambient_light, RID, const Color &, EnvironmentAmbientSource, float, float, EnvironmentReflectionSource)
|
||||||
|
|
||||||
// FIXME: Disabled during Vulkan refactoring, should be ported.
|
// FIXME: Disabled during Vulkan refactoring, should be ported.
|
||||||
#if 0
|
#if 0
|
||||||
|
|
|
@ -2298,7 +2298,7 @@ void RenderingServer::_bind_methods() {
|
||||||
ClassDB::bind_method(D_METHOD("environment_set_bg_color", "env", "color"), &RenderingServer::environment_set_bg_color);
|
ClassDB::bind_method(D_METHOD("environment_set_bg_color", "env", "color"), &RenderingServer::environment_set_bg_color);
|
||||||
ClassDB::bind_method(D_METHOD("environment_set_bg_energy", "env", "energy"), &RenderingServer::environment_set_bg_energy);
|
ClassDB::bind_method(D_METHOD("environment_set_bg_energy", "env", "energy"), &RenderingServer::environment_set_bg_energy);
|
||||||
ClassDB::bind_method(D_METHOD("environment_set_canvas_max_layer", "env", "max_layer"), &RenderingServer::environment_set_canvas_max_layer);
|
ClassDB::bind_method(D_METHOD("environment_set_canvas_max_layer", "env", "max_layer"), &RenderingServer::environment_set_canvas_max_layer);
|
||||||
ClassDB::bind_method(D_METHOD("environment_set_ambient_light", "env", "color", "ambient", "energy", "sky_contibution", "reflection_source", "ao_color"), &RenderingServer::environment_set_ambient_light, DEFVAL(RS::ENV_AMBIENT_SOURCE_BG), DEFVAL(1.0), DEFVAL(0.0), DEFVAL(RS::ENV_REFLECTION_SOURCE_BG), DEFVAL(Color()));
|
ClassDB::bind_method(D_METHOD("environment_set_ambient_light", "env", "color", "ambient", "energy", "sky_contibution", "reflection_source"), &RenderingServer::environment_set_ambient_light, DEFVAL(RS::ENV_AMBIENT_SOURCE_BG), DEFVAL(1.0), DEFVAL(0.0), DEFVAL(RS::ENV_REFLECTION_SOURCE_BG));
|
||||||
ClassDB::bind_method(D_METHOD("environment_set_glow", "env", "enable", "levels", "intensity", "strength", "mix", "bloom_threshold", "blend_mode", "hdr_bleed_threshold", "hdr_bleed_scale", "hdr_luminance_cap"), &RenderingServer::environment_set_glow);
|
ClassDB::bind_method(D_METHOD("environment_set_glow", "env", "enable", "levels", "intensity", "strength", "mix", "bloom_threshold", "blend_mode", "hdr_bleed_threshold", "hdr_bleed_scale", "hdr_luminance_cap"), &RenderingServer::environment_set_glow);
|
||||||
ClassDB::bind_method(D_METHOD("environment_set_tonemap", "env", "tone_mapper", "exposure", "white", "auto_exposure", "min_luminance", "max_luminance", "auto_exp_speed", "auto_exp_grey"), &RenderingServer::environment_set_tonemap);
|
ClassDB::bind_method(D_METHOD("environment_set_tonemap", "env", "tone_mapper", "exposure", "white", "auto_exposure", "min_luminance", "max_luminance", "auto_exp_speed", "auto_exp_grey"), &RenderingServer::environment_set_tonemap);
|
||||||
ClassDB::bind_method(D_METHOD("environment_set_adjustment", "env", "enable", "brightness", "contrast", "saturation", "use_1d_color_correction", "color_correction"), &RenderingServer::environment_set_adjustment);
|
ClassDB::bind_method(D_METHOD("environment_set_adjustment", "env", "enable", "brightness", "contrast", "saturation", "use_1d_color_correction", "color_correction"), &RenderingServer::environment_set_adjustment);
|
||||||
|
|
|
@ -961,7 +961,7 @@ public:
|
||||||
virtual void environment_set_bg_color(RID p_env, const Color &p_color) = 0;
|
virtual void environment_set_bg_color(RID p_env, const Color &p_color) = 0;
|
||||||
virtual void environment_set_bg_energy(RID p_env, float p_energy) = 0;
|
virtual void environment_set_bg_energy(RID p_env, float p_energy) = 0;
|
||||||
virtual void environment_set_canvas_max_layer(RID p_env, int p_max_layer) = 0;
|
virtual void environment_set_canvas_max_layer(RID p_env, int p_max_layer) = 0;
|
||||||
virtual void environment_set_ambient_light(RID p_env, const Color &p_color, EnvironmentAmbientSource p_ambient = ENV_AMBIENT_SOURCE_BG, float p_energy = 1.0, float p_sky_contribution = 0.0, EnvironmentReflectionSource p_reflection_source = ENV_REFLECTION_SOURCE_BG, const Color &p_ao_color = Color()) = 0;
|
virtual void environment_set_ambient_light(RID p_env, const Color &p_color, EnvironmentAmbientSource p_ambient = ENV_AMBIENT_SOURCE_BG, float p_energy = 1.0, float p_sky_contribution = 0.0, EnvironmentReflectionSource p_reflection_source = ENV_REFLECTION_SOURCE_BG) = 0;
|
||||||
|
|
||||||
enum EnvironmentGlowBlendMode {
|
enum EnvironmentGlowBlendMode {
|
||||||
ENV_GLOW_BLEND_MODE_ADDITIVE,
|
ENV_GLOW_BLEND_MODE_ADDITIVE,
|
||||||
|
|
Loading…
Reference in New Issue