|
@@ -377,7 +377,7 @@ bool Environment::is_ssr_rough() const {
|
|
void Environment::set_ssao_enabled(bool p_enable) {
|
|
void Environment::set_ssao_enabled(bool p_enable) {
|
|
|
|
|
|
ssao_enabled = p_enable;
|
|
ssao_enabled = p_enable;
|
|
- VS::get_singleton()->environment_set_ssao(environment, ssao_enabled, ssao_radius, ssao_intensity, ssao_radius2, ssao_intensity2, ssao_bias, ssao_direct_light_affect, ssao_color, ssao_blur);
|
|
|
|
|
|
+ VS::get_singleton()->environment_set_ssao(environment, ssao_enabled, ssao_radius, ssao_intensity, ssao_radius2, ssao_intensity2, ssao_bias, ssao_direct_light_affect, ssao_color, VS::EnvironmentSSAOQuality(ssao_quality), VS::EnvironmentSSAOBlur(ssao_blur), ssao_edge_sharpness);
|
|
_change_notify();
|
|
_change_notify();
|
|
}
|
|
}
|
|
|
|
|
|
@@ -389,7 +389,7 @@ bool Environment::is_ssao_enabled() const {
|
|
void Environment::set_ssao_radius(float p_radius) {
|
|
void Environment::set_ssao_radius(float p_radius) {
|
|
|
|
|
|
ssao_radius = p_radius;
|
|
ssao_radius = p_radius;
|
|
- VS::get_singleton()->environment_set_ssao(environment, ssao_enabled, ssao_radius, ssao_intensity, ssao_radius2, ssao_intensity2, ssao_bias, ssao_direct_light_affect, ssao_color, ssao_blur);
|
|
|
|
|
|
+ VS::get_singleton()->environment_set_ssao(environment, ssao_enabled, ssao_radius, ssao_intensity, ssao_radius2, ssao_intensity2, ssao_bias, ssao_direct_light_affect, ssao_color, VS::EnvironmentSSAOQuality(ssao_quality), VS::EnvironmentSSAOBlur(ssao_blur), ssao_edge_sharpness);
|
|
}
|
|
}
|
|
float Environment::get_ssao_radius() const {
|
|
float Environment::get_ssao_radius() const {
|
|
|
|
|
|
@@ -399,7 +399,7 @@ float Environment::get_ssao_radius() const {
|
|
void Environment::set_ssao_intensity(float p_intensity) {
|
|
void Environment::set_ssao_intensity(float p_intensity) {
|
|
|
|
|
|
ssao_intensity = p_intensity;
|
|
ssao_intensity = p_intensity;
|
|
- VS::get_singleton()->environment_set_ssao(environment, ssao_enabled, ssao_radius, ssao_intensity, ssao_radius2, ssao_intensity2, ssao_bias, ssao_direct_light_affect, ssao_color, ssao_blur);
|
|
|
|
|
|
+ VS::get_singleton()->environment_set_ssao(environment, ssao_enabled, ssao_radius, ssao_intensity, ssao_radius2, ssao_intensity2, ssao_bias, ssao_direct_light_affect, ssao_color, VS::EnvironmentSSAOQuality(ssao_quality), VS::EnvironmentSSAOBlur(ssao_blur), ssao_edge_sharpness);
|
|
}
|
|
}
|
|
|
|
|
|
float Environment::get_ssao_intensity() const {
|
|
float Environment::get_ssao_intensity() const {
|
|
@@ -410,7 +410,7 @@ float Environment::get_ssao_intensity() const {
|
|
void Environment::set_ssao_radius2(float p_radius) {
|
|
void Environment::set_ssao_radius2(float p_radius) {
|
|
|
|
|
|
ssao_radius2 = p_radius;
|
|
ssao_radius2 = p_radius;
|
|
- VS::get_singleton()->environment_set_ssao(environment, ssao_enabled, ssao_radius, ssao_intensity, ssao_radius2, ssao_intensity2, ssao_bias, ssao_direct_light_affect, ssao_color, ssao_blur);
|
|
|
|
|
|
+ VS::get_singleton()->environment_set_ssao(environment, ssao_enabled, ssao_radius, ssao_intensity, ssao_radius2, ssao_intensity2, ssao_bias, ssao_direct_light_affect, ssao_color, VS::EnvironmentSSAOQuality(ssao_quality), VS::EnvironmentSSAOBlur(ssao_blur), ssao_edge_sharpness);
|
|
}
|
|
}
|
|
float Environment::get_ssao_radius2() const {
|
|
float Environment::get_ssao_radius2() const {
|
|
|
|
|
|
@@ -420,7 +420,7 @@ float Environment::get_ssao_radius2() const {
|
|
void Environment::set_ssao_intensity2(float p_intensity) {
|
|
void Environment::set_ssao_intensity2(float p_intensity) {
|
|
|
|
|
|
ssao_intensity2 = p_intensity;
|
|
ssao_intensity2 = p_intensity;
|
|
- VS::get_singleton()->environment_set_ssao(environment, ssao_enabled, ssao_radius, ssao_intensity, ssao_radius2, ssao_intensity2, ssao_bias, ssao_direct_light_affect, ssao_color, ssao_blur);
|
|
|
|
|
|
+ VS::get_singleton()->environment_set_ssao(environment, ssao_enabled, ssao_radius, ssao_intensity, ssao_radius2, ssao_intensity2, ssao_bias, ssao_direct_light_affect, ssao_color, VS::EnvironmentSSAOQuality(ssao_quality), VS::EnvironmentSSAOBlur(ssao_blur), ssao_edge_sharpness);
|
|
}
|
|
}
|
|
float Environment::get_ssao_intensity2() const {
|
|
float Environment::get_ssao_intensity2() const {
|
|
|
|
|
|
@@ -430,7 +430,7 @@ float Environment::get_ssao_intensity2() const {
|
|
void Environment::set_ssao_bias(float p_bias) {
|
|
void Environment::set_ssao_bias(float p_bias) {
|
|
|
|
|
|
ssao_bias = p_bias;
|
|
ssao_bias = p_bias;
|
|
- VS::get_singleton()->environment_set_ssao(environment, ssao_enabled, ssao_radius, ssao_intensity, ssao_radius2, ssao_intensity2, ssao_bias, ssao_direct_light_affect, ssao_color, ssao_blur);
|
|
|
|
|
|
+ VS::get_singleton()->environment_set_ssao(environment, ssao_enabled, ssao_radius, ssao_intensity, ssao_radius2, ssao_intensity2, ssao_bias, ssao_direct_light_affect, ssao_color, VS::EnvironmentSSAOQuality(ssao_quality), VS::EnvironmentSSAOBlur(ssao_blur), ssao_edge_sharpness);
|
|
}
|
|
}
|
|
float Environment::get_ssao_bias() const {
|
|
float Environment::get_ssao_bias() const {
|
|
|
|
|
|
@@ -440,7 +440,7 @@ float Environment::get_ssao_bias() const {
|
|
void Environment::set_ssao_direct_light_affect(float p_direct_light_affect) {
|
|
void Environment::set_ssao_direct_light_affect(float p_direct_light_affect) {
|
|
|
|
|
|
ssao_direct_light_affect = p_direct_light_affect;
|
|
ssao_direct_light_affect = p_direct_light_affect;
|
|
- VS::get_singleton()->environment_set_ssao(environment, ssao_enabled, ssao_radius, ssao_intensity, ssao_radius2, ssao_intensity2, ssao_bias, ssao_direct_light_affect, ssao_color, ssao_blur);
|
|
|
|
|
|
+ VS::get_singleton()->environment_set_ssao(environment, ssao_enabled, ssao_radius, ssao_intensity, ssao_radius2, ssao_intensity2, ssao_bias, ssao_direct_light_affect, ssao_color, VS::EnvironmentSSAOQuality(ssao_quality), VS::EnvironmentSSAOBlur(ssao_blur), ssao_edge_sharpness);
|
|
}
|
|
}
|
|
float Environment::get_ssao_direct_light_affect() const {
|
|
float Environment::get_ssao_direct_light_affect() const {
|
|
|
|
|
|
@@ -450,7 +450,7 @@ float Environment::get_ssao_direct_light_affect() const {
|
|
void Environment::set_ssao_color(const Color &p_color) {
|
|
void Environment::set_ssao_color(const Color &p_color) {
|
|
|
|
|
|
ssao_color = p_color;
|
|
ssao_color = p_color;
|
|
- VS::get_singleton()->environment_set_ssao(environment, ssao_enabled, ssao_radius, ssao_intensity, ssao_radius2, ssao_intensity2, ssao_bias, ssao_direct_light_affect, ssao_color, ssao_blur);
|
|
|
|
|
|
+ VS::get_singleton()->environment_set_ssao(environment, ssao_enabled, ssao_radius, ssao_intensity, ssao_radius2, ssao_intensity2, ssao_bias, ssao_direct_light_affect, ssao_color, VS::EnvironmentSSAOQuality(ssao_quality), VS::EnvironmentSSAOBlur(ssao_blur), ssao_edge_sharpness);
|
|
}
|
|
}
|
|
|
|
|
|
Color Environment::get_ssao_color() const {
|
|
Color Environment::get_ssao_color() const {
|
|
@@ -458,16 +458,38 @@ Color Environment::get_ssao_color() const {
|
|
return ssao_color;
|
|
return ssao_color;
|
|
}
|
|
}
|
|
|
|
|
|
-void Environment::set_ssao_blur(bool p_enable) {
|
|
|
|
|
|
+void Environment::set_ssao_blur(SSAOBlur p_blur) {
|
|
|
|
|
|
- ssao_blur = p_enable;
|
|
|
|
- VS::get_singleton()->environment_set_ssao(environment, ssao_enabled, ssao_radius, ssao_intensity, ssao_radius2, ssao_intensity2, ssao_bias, ssao_direct_light_affect, ssao_color, ssao_blur);
|
|
|
|
|
|
+ ssao_blur = p_blur;
|
|
|
|
+ VS::get_singleton()->environment_set_ssao(environment, ssao_enabled, ssao_radius, ssao_intensity, ssao_radius2, ssao_intensity2, ssao_bias, ssao_direct_light_affect, ssao_color, VS::EnvironmentSSAOQuality(ssao_quality), VS::EnvironmentSSAOBlur(ssao_blur), ssao_edge_sharpness);
|
|
}
|
|
}
|
|
-bool Environment::is_ssao_blur_enabled() const {
|
|
|
|
|
|
+Environment::SSAOBlur Environment::get_ssao_blur() const {
|
|
|
|
|
|
return ssao_blur;
|
|
return ssao_blur;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+void Environment::set_ssao_quality(SSAOQuality p_quality) {
|
|
|
|
+
|
|
|
|
+ ssao_quality = p_quality;
|
|
|
|
+ VS::get_singleton()->environment_set_ssao(environment, ssao_enabled, ssao_radius, ssao_intensity, ssao_radius2, ssao_intensity2, ssao_bias, ssao_direct_light_affect, ssao_color, VS::EnvironmentSSAOQuality(ssao_quality), VS::EnvironmentSSAOBlur(ssao_blur), ssao_edge_sharpness);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+Environment::SSAOQuality Environment::get_ssao_quality() const {
|
|
|
|
+
|
|
|
|
+ return ssao_quality;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+void Environment::set_ssao_edge_sharpness(float p_edge_sharpness) {
|
|
|
|
+
|
|
|
|
+ ssao_edge_sharpness = p_edge_sharpness;
|
|
|
|
+ VS::get_singleton()->environment_set_ssao(environment, ssao_enabled, ssao_radius, ssao_intensity, ssao_radius2, ssao_intensity2, ssao_bias, ssao_direct_light_affect, ssao_color, VS::EnvironmentSSAOQuality(ssao_quality), VS::EnvironmentSSAOBlur(ssao_blur), ssao_edge_sharpness);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+float Environment::get_ssao_edge_sharpness() const {
|
|
|
|
+
|
|
|
|
+ return ssao_edge_sharpness;
|
|
|
|
+}
|
|
|
|
+
|
|
void Environment::set_glow_enabled(bool p_enabled) {
|
|
void Environment::set_glow_enabled(bool p_enabled) {
|
|
|
|
|
|
glow_enabled = p_enabled;
|
|
glow_enabled = p_enabled;
|
|
@@ -988,8 +1010,14 @@ void Environment::_bind_methods() {
|
|
ClassDB::bind_method(D_METHOD("set_ssao_color", "color"), &Environment::set_ssao_color);
|
|
ClassDB::bind_method(D_METHOD("set_ssao_color", "color"), &Environment::set_ssao_color);
|
|
ClassDB::bind_method(D_METHOD("get_ssao_color"), &Environment::get_ssao_color);
|
|
ClassDB::bind_method(D_METHOD("get_ssao_color"), &Environment::get_ssao_color);
|
|
|
|
|
|
- ClassDB::bind_method(D_METHOD("set_ssao_blur", "enabled"), &Environment::set_ssao_blur);
|
|
|
|
- ClassDB::bind_method(D_METHOD("is_ssao_blur_enabled"), &Environment::is_ssao_blur_enabled);
|
|
|
|
|
|
+ ClassDB::bind_method(D_METHOD("set_ssao_blur", "mode"), &Environment::set_ssao_blur);
|
|
|
|
+ ClassDB::bind_method(D_METHOD("get_ssao_blur"), &Environment::get_ssao_blur);
|
|
|
|
+
|
|
|
|
+ ClassDB::bind_method(D_METHOD("set_ssao_quality", "quality"), &Environment::set_ssao_quality);
|
|
|
|
+ ClassDB::bind_method(D_METHOD("get_ssao_quality"), &Environment::get_ssao_quality);
|
|
|
|
+
|
|
|
|
+ ClassDB::bind_method(D_METHOD("set_ssao_edge_sharpness", "edge_sharpness"), &Environment::set_ssao_edge_sharpness);
|
|
|
|
+ ClassDB::bind_method(D_METHOD("get_ssao_edge_sharpness"), &Environment::get_ssao_edge_sharpness);
|
|
|
|
|
|
ADD_GROUP("SSAO", "ssao_");
|
|
ADD_GROUP("SSAO", "ssao_");
|
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "ssao_enabled"), "set_ssao_enabled", "is_ssao_enabled");
|
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "ssao_enabled"), "set_ssao_enabled", "is_ssao_enabled");
|
|
@@ -1000,7 +1028,9 @@ void Environment::_bind_methods() {
|
|
ADD_PROPERTY(PropertyInfo(Variant::REAL, "ssao_bias", PROPERTY_HINT_RANGE, "0.001,8,0.001"), "set_ssao_bias", "get_ssao_bias");
|
|
ADD_PROPERTY(PropertyInfo(Variant::REAL, "ssao_bias", PROPERTY_HINT_RANGE, "0.001,8,0.001"), "set_ssao_bias", "get_ssao_bias");
|
|
ADD_PROPERTY(PropertyInfo(Variant::REAL, "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::REAL, "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::COLOR, "ssao_color", PROPERTY_HINT_COLOR_NO_ALPHA), "set_ssao_color", "get_ssao_color");
|
|
ADD_PROPERTY(PropertyInfo(Variant::COLOR, "ssao_color", PROPERTY_HINT_COLOR_NO_ALPHA), "set_ssao_color", "get_ssao_color");
|
|
- ADD_PROPERTY(PropertyInfo(Variant::BOOL, "ssao_blur"), "set_ssao_blur", "is_ssao_blur_enabled");
|
|
|
|
|
|
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "ssao_quality", PROPERTY_HINT_ENUM, "Low,Medium,High"), "set_ssao_quality", "get_ssao_quality");
|
|
|
|
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "ssao_blur", PROPERTY_HINT_ENUM, "Disabled,1x1,2x2,3x3"), "set_ssao_blur", "get_ssao_blur");
|
|
|
|
+ ADD_PROPERTY(PropertyInfo(Variant::REAL, "ssao_edge_sharpness", PROPERTY_HINT_RANGE, "0,32,0.01"), "set_ssao_edge_sharpness", "get_ssao_edge_sharpness");
|
|
|
|
|
|
ClassDB::bind_method(D_METHOD("set_dof_blur_far_enabled", "enabled"), &Environment::set_dof_blur_far_enabled);
|
|
ClassDB::bind_method(D_METHOD("set_dof_blur_far_enabled", "enabled"), &Environment::set_dof_blur_far_enabled);
|
|
ClassDB::bind_method(D_METHOD("is_dof_blur_far_enabled"), &Environment::is_dof_blur_far_enabled);
|
|
ClassDB::bind_method(D_METHOD("is_dof_blur_far_enabled"), &Environment::is_dof_blur_far_enabled);
|
|
@@ -1134,6 +1164,10 @@ void Environment::_bind_methods() {
|
|
BIND_ENUM_CONSTANT(DOF_BLUR_QUALITY_LOW);
|
|
BIND_ENUM_CONSTANT(DOF_BLUR_QUALITY_LOW);
|
|
BIND_ENUM_CONSTANT(DOF_BLUR_QUALITY_MEDIUM);
|
|
BIND_ENUM_CONSTANT(DOF_BLUR_QUALITY_MEDIUM);
|
|
BIND_ENUM_CONSTANT(DOF_BLUR_QUALITY_HIGH);
|
|
BIND_ENUM_CONSTANT(DOF_BLUR_QUALITY_HIGH);
|
|
|
|
+
|
|
|
|
+ BIND_ENUM_CONSTANT(SSAO_QUALITY_LOW);
|
|
|
|
+ BIND_ENUM_CONSTANT(SSAO_QUALITY_MEDIUM);
|
|
|
|
+ BIND_ENUM_CONSTANT(SSAO_QUALITY_HIGH);
|
|
}
|
|
}
|
|
|
|
|
|
Environment::Environment() {
|
|
Environment::Environment() {
|
|
@@ -1179,7 +1213,9 @@ Environment::Environment() {
|
|
ssao_intensity2 = 1;
|
|
ssao_intensity2 = 1;
|
|
ssao_bias = 0.01;
|
|
ssao_bias = 0.01;
|
|
ssao_direct_light_affect = false;
|
|
ssao_direct_light_affect = false;
|
|
- ssao_blur = true;
|
|
|
|
|
|
+ ssao_blur = SSAO_BLUR_3x3;
|
|
|
|
+ set_ssao_edge_sharpness(4);
|
|
|
|
+ set_ssao_quality(SSAO_QUALITY_LOW);
|
|
|
|
|
|
glow_enabled = false;
|
|
glow_enabled = false;
|
|
glow_levels = (1 << 2) | (1 << 4);
|
|
glow_levels = (1 << 2) | (1 << 4);
|