feat: updated engine version to 4.4-rc1
This commit is contained in:
parent
ee00efde1f
commit
21ba8e33af
5459 changed files with 1128836 additions and 198305 deletions
|
|
@ -28,10 +28,10 @@
|
|||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||
/**************************************************************************/
|
||||
|
||||
#include "core/config/project_settings.h"
|
||||
|
||||
#include "light_3d.h"
|
||||
|
||||
#include "core/config/project_settings.h"
|
||||
|
||||
void Light3D::set_param(Param p_param, real_t p_value) {
|
||||
ERR_FAIL_INDEX(p_param, PARAM_MAX);
|
||||
param[p_param] = p_value;
|
||||
|
|
@ -146,6 +146,15 @@ bool Light3D::get_shadow_reverse_cull_face() const {
|
|||
return reverse_cull;
|
||||
}
|
||||
|
||||
void Light3D::set_shadow_caster_mask(uint32_t p_caster_mask) {
|
||||
shadow_caster_mask = p_caster_mask;
|
||||
RS::get_singleton()->light_set_shadow_caster_mask(light, shadow_caster_mask);
|
||||
}
|
||||
|
||||
uint32_t Light3D::get_shadow_caster_mask() const {
|
||||
return shadow_caster_mask;
|
||||
}
|
||||
|
||||
AABB Light3D::get_aabb() const {
|
||||
if (type == RenderingServer::LIGHT_DIRECTIONAL) {
|
||||
return AABB(Vector3(-1, -1, -1), Vector3(2, 2, 2));
|
||||
|
|
@ -191,6 +200,20 @@ Light3D::BakeMode Light3D::get_bake_mode() const {
|
|||
void Light3D::set_projector(const Ref<Texture2D> &p_texture) {
|
||||
projector = p_texture;
|
||||
RID tex_id = projector.is_valid() ? projector->get_rid() : RID();
|
||||
|
||||
#ifdef DEBUG_ENABLED
|
||||
if (p_texture.is_valid() &&
|
||||
(p_texture->is_class("AnimatedTexture") ||
|
||||
p_texture->is_class("AtlasTexture") ||
|
||||
p_texture->is_class("CameraTexture") ||
|
||||
p_texture->is_class("CanvasTexture") ||
|
||||
p_texture->is_class("MeshTexture") ||
|
||||
p_texture->is_class("Texture2DRD") ||
|
||||
p_texture->is_class("ViewportTexture"))) {
|
||||
WARN_PRINT(vformat("%s cannot be used as a Light3D projector texture (%s). As a workaround, assign the value returned by %s's `get_image()` instead.", p_texture->get_class(), get_path(), p_texture->get_class()));
|
||||
}
|
||||
#endif
|
||||
|
||||
RS::get_singleton()->light_set_projector(light, tex_id);
|
||||
update_configuration_warnings();
|
||||
}
|
||||
|
|
@ -300,7 +323,7 @@ bool Light3D::is_editor_only() const {
|
|||
}
|
||||
|
||||
void Light3D::_validate_property(PropertyInfo &p_property) const {
|
||||
if (!shadow && (p_property.name == "shadow_bias" || p_property.name == "shadow_normal_bias" || p_property.name == "shadow_reverse_cull_face" || p_property.name == "shadow_transmittance_bias" || p_property.name == "shadow_opacity" || p_property.name == "shadow_blur" || p_property.name == "distance_fade_shadow")) {
|
||||
if (!shadow && (p_property.name == "shadow_bias" || p_property.name == "shadow_normal_bias" || p_property.name == "shadow_reverse_cull_face" || p_property.name == "shadow_transmittance_bias" || p_property.name == "shadow_opacity" || p_property.name == "shadow_blur" || p_property.name == "distance_fade_shadow" || p_property.name == "shadow_caster_mask")) {
|
||||
p_property.usage = PROPERTY_USAGE_NO_EDITOR;
|
||||
}
|
||||
|
||||
|
|
@ -354,6 +377,9 @@ void Light3D::_bind_methods() {
|
|||
ClassDB::bind_method(D_METHOD("set_shadow_reverse_cull_face", "enable"), &Light3D::set_shadow_reverse_cull_face);
|
||||
ClassDB::bind_method(D_METHOD("get_shadow_reverse_cull_face"), &Light3D::get_shadow_reverse_cull_face);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_shadow_caster_mask", "caster_mask"), &Light3D::set_shadow_caster_mask);
|
||||
ClassDB::bind_method(D_METHOD("get_shadow_caster_mask"), &Light3D::get_shadow_caster_mask);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_bake_mode", "bake_mode"), &Light3D::set_bake_mode);
|
||||
ClassDB::bind_method(D_METHOD("get_bake_mode"), &Light3D::get_bake_mode);
|
||||
|
||||
|
|
@ -372,7 +398,8 @@ void Light3D::_bind_methods() {
|
|||
ADD_PROPERTYI(PropertyInfo(Variant::FLOAT, "light_energy", PROPERTY_HINT_RANGE, "0,16,0.001,or_greater"), "set_param", "get_param", PARAM_ENERGY);
|
||||
ADD_PROPERTYI(PropertyInfo(Variant::FLOAT, "light_indirect_energy", PROPERTY_HINT_RANGE, "0,16,0.001,or_greater"), "set_param", "get_param", PARAM_INDIRECT_ENERGY);
|
||||
ADD_PROPERTYI(PropertyInfo(Variant::FLOAT, "light_volumetric_fog_energy", PROPERTY_HINT_RANGE, "0,16,0.001,or_greater"), "set_param", "get_param", PARAM_VOLUMETRIC_FOG_ENERGY);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "light_projector", PROPERTY_HINT_RESOURCE_TYPE, "Texture2D"), "set_projector", "get_projector");
|
||||
// Only allow texture types that display correctly.
|
||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "light_projector", PROPERTY_HINT_RESOURCE_TYPE, "Texture2D,-AnimatedTexture,-AtlasTexture,-CameraTexture,-CanvasTexture,-MeshTexture,-Texture2DRD,-ViewportTexture"), "set_projector", "get_projector");
|
||||
ADD_PROPERTYI(PropertyInfo(Variant::FLOAT, "light_size", PROPERTY_HINT_RANGE, "0,1,0.001,or_greater,suffix:m"), "set_param", "get_param", PARAM_SIZE);
|
||||
ADD_PROPERTYI(PropertyInfo(Variant::FLOAT, "light_angular_distance", PROPERTY_HINT_RANGE, "0,90,0.01,degrees"), "set_param", "get_param", PARAM_SIZE);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "light_negative"), "set_negative", "is_negative");
|
||||
|
|
@ -388,6 +415,7 @@ void Light3D::_bind_methods() {
|
|||
ADD_PROPERTYI(PropertyInfo(Variant::FLOAT, "shadow_transmittance_bias", PROPERTY_HINT_RANGE, "-16,16,0.001"), "set_param", "get_param", PARAM_TRANSMITTANCE_BIAS);
|
||||
ADD_PROPERTYI(PropertyInfo(Variant::FLOAT, "shadow_opacity", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_param", "get_param", PARAM_SHADOW_OPACITY);
|
||||
ADD_PROPERTYI(PropertyInfo(Variant::FLOAT, "shadow_blur", PROPERTY_HINT_RANGE, "0,10,0.001"), "set_param", "get_param", PARAM_SHADOW_BLUR);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "shadow_caster_mask", PROPERTY_HINT_LAYERS_3D_RENDER), "set_shadow_caster_mask", "get_shadow_caster_mask");
|
||||
|
||||
ADD_GROUP("Distance Fade", "distance_fade_");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "distance_fade_enabled"), "set_enable_distance_fade", "is_distance_fade_enabled");
|
||||
|
|
@ -532,7 +560,7 @@ void DirectionalLight3D::_validate_property(PropertyInfo &p_property) const {
|
|||
p_property.usage = PROPERTY_USAGE_NO_EDITOR;
|
||||
}
|
||||
|
||||
if (p_property.name == "light_size" || p_property.name == "light_projector" || p_property.name == "light_specular") {
|
||||
if (p_property.name == "light_size" || p_property.name == "light_projector") {
|
||||
// Not implemented in DirectionalLight3D (`light_size` is replaced by `light_angular_distance`).
|
||||
p_property.usage = PROPERTY_USAGE_NONE;
|
||||
}
|
||||
|
|
@ -582,6 +610,7 @@ DirectionalLight3D::DirectionalLight3D() :
|
|||
// Increase the default shadow normal bias to better suit most scenes.
|
||||
set_param(PARAM_SHADOW_NORMAL_BIAS, 2.0);
|
||||
set_param(PARAM_INTENSITY, 100000.0); // Specified in Lux, approximate mid-day sun.
|
||||
set_param(PARAM_SPECULAR, 1.0);
|
||||
set_shadow_mode(SHADOW_PARALLEL_4_SPLITS);
|
||||
blend_splits = false;
|
||||
set_sky_mode(SKY_MODE_LIGHT_AND_SKY);
|
||||
|
|
@ -604,7 +633,7 @@ PackedStringArray OmniLight3D::get_configuration_warnings() const {
|
|||
}
|
||||
|
||||
if (get_projector().is_valid() && OS::get_singleton()->get_current_rendering_method() == "gl_compatibility") {
|
||||
warnings.push_back(RTR("Projector textures are not supported when using the GL Compatibility backend yet. Support will be added in a future release."));
|
||||
warnings.push_back(RTR("Projector textures are not supported when using the Compatibility renderer yet. Support will be added in a future release."));
|
||||
}
|
||||
|
||||
return warnings;
|
||||
|
|
@ -640,7 +669,7 @@ PackedStringArray SpotLight3D::get_configuration_warnings() const {
|
|||
}
|
||||
|
||||
if (get_projector().is_valid() && OS::get_singleton()->get_current_rendering_method() == "gl_compatibility") {
|
||||
warnings.push_back(RTR("Projector textures are not supported when using the GL Compatibility backend yet. Support will be added in a future release."));
|
||||
warnings.push_back(RTR("Projector textures are not supported when using the Compatibility renderer yet. Support will be added in a future release."));
|
||||
}
|
||||
|
||||
return warnings;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue