1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-04 12:00:25 +00:00

Added SSIL post processing effect

This commit is contained in:
clayjohn
2021-08-03 00:07:32 -07:00
parent af80bc8abe
commit 0eff109a21
47 changed files with 2258 additions and 361 deletions

View File

@@ -426,6 +426,64 @@ void Environment::_update_ssao() {
ssao_ao_channel_affect);
}
// SSIL
void Environment::set_ssil_enabled(bool p_enabled) {
ssil_enabled = p_enabled;
_update_ssil();
notify_property_list_changed();
}
bool Environment::is_ssil_enabled() const {
return ssil_enabled;
}
void Environment::set_ssil_radius(float p_radius) {
ssil_radius = p_radius;
_update_ssil();
}
float Environment::get_ssil_radius() const {
return ssil_radius;
}
void Environment::set_ssil_intensity(float p_intensity) {
ssil_intensity = p_intensity;
_update_ssil();
}
float Environment::get_ssil_intensity() const {
return ssil_intensity;
}
void Environment::set_ssil_sharpness(float p_sharpness) {
ssil_sharpness = p_sharpness;
_update_ssil();
}
float Environment::get_ssil_sharpness() const {
return ssil_sharpness;
}
void Environment::set_ssil_normal_rejection(float p_normal_rejection) {
ssil_normal_rejection = p_normal_rejection;
_update_ssil();
}
float Environment::get_ssil_normal_rejection() const {
return ssil_normal_rejection;
}
void Environment::_update_ssil() {
RS::get_singleton()->environment_set_ssil(
environment,
ssil_enabled,
ssil_radius,
ssil_intensity,
ssil_sharpness,
ssil_normal_rejection);
}
// SDFGI
void Environment::set_sdfgi_enabled(bool p_enabled) {
@@ -1164,7 +1222,6 @@ void Environment::_bind_methods() {
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "ss_reflections_depth_tolerance", PROPERTY_HINT_RANGE, "0.01,128,0.1"), "set_ssr_depth_tolerance", "get_ssr_depth_tolerance");
// SSAO
ClassDB::bind_method(D_METHOD("set_ssao_enabled", "enabled"), &Environment::set_ssao_enabled);
ClassDB::bind_method(D_METHOD("is_ssao_enabled"), &Environment::is_ssao_enabled);
ClassDB::bind_method(D_METHOD("set_ssao_radius", "radius"), &Environment::set_ssao_radius);
@@ -1195,6 +1252,25 @@ void Environment::_bind_methods() {
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "ssao_light_affect", PROPERTY_HINT_RANGE, "0.00,1,0.01"), "set_ssao_direct_light_affect", "get_ssao_direct_light_affect");
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "ssao_ao_channel_affect", PROPERTY_HINT_RANGE, "0.00,1,0.01"), "set_ssao_ao_channel_affect", "get_ssao_ao_channel_affect");
// SSIL
ClassDB::bind_method(D_METHOD("set_ssil_enabled", "enabled"), &Environment::set_ssil_enabled);
ClassDB::bind_method(D_METHOD("is_ssil_enabled"), &Environment::is_ssil_enabled);
ClassDB::bind_method(D_METHOD("set_ssil_radius", "radius"), &Environment::set_ssil_radius);
ClassDB::bind_method(D_METHOD("get_ssil_radius"), &Environment::get_ssil_radius);
ClassDB::bind_method(D_METHOD("set_ssil_intensity", "intensity"), &Environment::set_ssil_intensity);
ClassDB::bind_method(D_METHOD("get_ssil_intensity"), &Environment::get_ssil_intensity);
ClassDB::bind_method(D_METHOD("set_ssil_sharpness", "sharpness"), &Environment::set_ssil_sharpness);
ClassDB::bind_method(D_METHOD("get_ssil_sharpness"), &Environment::get_ssil_sharpness);
ClassDB::bind_method(D_METHOD("set_ssil_normal_rejection", "normal_rejection"), &Environment::set_ssil_normal_rejection);
ClassDB::bind_method(D_METHOD("get_ssil_normal_rejection"), &Environment::get_ssil_normal_rejection);
ADD_GROUP("SSIL", "ssil_");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "ssil_enabled"), "set_ssil_enabled", "is_ssil_enabled");
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "ssil_radius", PROPERTY_HINT_RANGE, "0.01,16,0.01,or_greater"), "set_ssil_radius", "get_ssil_radius");
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "ssil_intensity", PROPERTY_HINT_RANGE, "0,16,0.01,or_greater"), "set_ssil_intensity", "get_ssil_intensity");
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "ssil_sharpness", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_ssil_sharpness", "get_ssil_sharpness");
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "ssil_normal_rejection", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_ssil_normal_rejection", "get_ssil_normal_rejection");
// SDFGI
ClassDB::bind_method(D_METHOD("set_sdfgi_enabled", "enabled"), &Environment::set_sdfgi_enabled);
@@ -1431,6 +1507,7 @@ Environment::Environment() {
_update_tonemap();
_update_ssr();
_update_ssao();
_update_ssil();
_update_sdfgi();
_update_glow();
_update_fog();