|
@@ -815,7 +815,7 @@ BakedLightmap::BakeError BakedLightmap::bake(Node *p_from_node, String p_data_sa
|
|
|
|
|
|
bool gen_atlas = OS::get_singleton()->get_current_video_driver() == OS::VIDEO_DRIVER_GLES2 ? false : generate_atlas;
|
|
|
|
|
|
- Lightmapper::BakeError bake_err = lightmapper->bake(Lightmapper::BakeQuality(bake_quality), use_denoiser, bounces, bias, gen_atlas, max_atlas_size, environment_image, environment_xform, _lightmap_bake_step_function, &bsud, bake_substep_function);
|
|
|
+ Lightmapper::BakeError bake_err = lightmapper->bake(Lightmapper::BakeQuality(bake_quality), use_denoiser, bounces, bounce_indirect_energy, bias, gen_atlas, max_atlas_size, environment_image, environment_xform, _lightmap_bake_step_function, &bsud, bake_substep_function);
|
|
|
|
|
|
if (bake_err != Lightmapper::BAKE_OK) {
|
|
|
switch (bake_err) {
|
|
@@ -1412,6 +1412,15 @@ int BakedLightmap::get_bounces() const {
|
|
|
return bounces;
|
|
|
}
|
|
|
|
|
|
+void BakedLightmap::set_bounce_indirect_energy(float p_indirect_energy) {
|
|
|
+ ERR_FAIL_COND(p_indirect_energy < 0.0);
|
|
|
+ bounce_indirect_energy = p_indirect_energy;
|
|
|
+}
|
|
|
+
|
|
|
+float BakedLightmap::get_bounce_indirect_energy() const {
|
|
|
+ return bounce_indirect_energy;
|
|
|
+}
|
|
|
+
|
|
|
void BakedLightmap::set_bias(float p_bias) {
|
|
|
ERR_FAIL_COND(p_bias < 0.00001f);
|
|
|
bias = p_bias;
|
|
@@ -1460,6 +1469,9 @@ void BakedLightmap::_bind_methods() {
|
|
|
ClassDB::bind_method(D_METHOD("set_bounces", "bounces"), &BakedLightmap::set_bounces);
|
|
|
ClassDB::bind_method(D_METHOD("get_bounces"), &BakedLightmap::get_bounces);
|
|
|
|
|
|
+ ClassDB::bind_method(D_METHOD("set_bounce_indirect_energy", "bounce_indirect_energy"), &BakedLightmap::set_bounce_indirect_energy);
|
|
|
+ ClassDB::bind_method(D_METHOD("get_bounce_indirect_energy"), &BakedLightmap::get_bounce_indirect_energy);
|
|
|
+
|
|
|
ClassDB::bind_method(D_METHOD("set_bias", "bias"), &BakedLightmap::set_bias);
|
|
|
ClassDB::bind_method(D_METHOD("get_bias"), &BakedLightmap::get_bias);
|
|
|
|
|
@@ -1524,6 +1536,7 @@ void BakedLightmap::_bind_methods() {
|
|
|
ADD_GROUP("Tweaks", "");
|
|
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "quality", PROPERTY_HINT_ENUM, "Low,Medium,High,Ultra"), "set_bake_quality", "get_bake_quality");
|
|
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "bounces", PROPERTY_HINT_RANGE, "0,16,1"), "set_bounces", "get_bounces");
|
|
|
+ ADD_PROPERTY(PropertyInfo(Variant::REAL, "bounce_indirect_energy", PROPERTY_HINT_RANGE, "0,16,0.01"), "set_bounce_indirect_energy", "get_bounce_indirect_energy");
|
|
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "use_denoiser"), "set_use_denoiser", "is_using_denoiser");
|
|
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "use_hdr"), "set_use_hdr", "is_using_hdr");
|
|
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "use_color"), "set_use_color", "is_using_color");
|
|
@@ -1583,6 +1596,7 @@ BakedLightmap::BakedLightmap() {
|
|
|
capture_propagation = 1;
|
|
|
capture_enabled = true;
|
|
|
bounces = 3;
|
|
|
+ bounce_indirect_energy = 1.0;
|
|
|
image_path = "";
|
|
|
set_disable_scale(true);
|
|
|
capture_cell_size = 0.5;
|