mirror of
https://github.com/godotengine/godot.git
synced 2025-10-20 00:13:30 +00:00
Addition of FogVolumes, FogShaders, FogMaterial, and overhaul of VolumetricFog
Co-authored-by: Brian Semrau <brian.semrau@gmail.com>
This commit is contained in:
parent
9307808987
commit
1b2cd9f251
51 changed files with 2979 additions and 777 deletions
|
@ -1723,6 +1723,7 @@ void RenderingServer::_bind_methods() {
|
|||
BIND_ENUM_CONSTANT(SHADER_CANVAS_ITEM);
|
||||
BIND_ENUM_CONSTANT(SHADER_PARTICLES);
|
||||
BIND_ENUM_CONSTANT(SHADER_SKY);
|
||||
BIND_ENUM_CONSTANT(SHADER_FOG);
|
||||
BIND_ENUM_CONSTANT(SHADER_MAX);
|
||||
|
||||
/* MATERIAL */
|
||||
|
@ -2126,6 +2127,17 @@ void RenderingServer::_bind_methods() {
|
|||
BIND_ENUM_CONSTANT(PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_8192);
|
||||
BIND_ENUM_CONSTANT(PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_MAX);
|
||||
|
||||
/* FOG VOLUMES */
|
||||
|
||||
ClassDB::bind_method(D_METHOD("fog_volume_create"), &RenderingServer::fog_volume_create);
|
||||
ClassDB::bind_method(D_METHOD("fog_volume_set_shape", "fog_volume", "shape"), &RenderingServer::fog_volume_set_shape);
|
||||
ClassDB::bind_method(D_METHOD("fog_volume_set_extents", "fog_volume", "extents"), &RenderingServer::fog_volume_set_extents);
|
||||
ClassDB::bind_method(D_METHOD("fog_volume_set_material", "fog_volume", "material"), &RenderingServer::fog_volume_set_material);
|
||||
|
||||
BIND_ENUM_CONSTANT(FOG_VOLUME_SHAPE_ELLIPSOID);
|
||||
BIND_ENUM_CONSTANT(FOG_VOLUME_SHAPE_BOX);
|
||||
BIND_ENUM_CONSTANT(FOG_VOLUME_SHAPE_WORLD);
|
||||
|
||||
/* VISIBILITY NOTIFIER */
|
||||
|
||||
ClassDB::bind_method(D_METHOD("visibility_notifier_create"), &RenderingServer::visibility_notifier_create);
|
||||
|
@ -2301,7 +2313,7 @@ void RenderingServer::_bind_methods() {
|
|||
ClassDB::bind_method(D_METHOD("environment_set_ssao", "env", "enable", "radius", "intensity", "power", "detail", "horizon", "sharpness", "light_affect", "ao_channel_affect"), &RenderingServer::environment_set_ssao);
|
||||
ClassDB::bind_method(D_METHOD("environment_set_fog", "env", "enable", "light_color", "light_energy", "sun_scatter", "density", "height", "height_density", "aerial_perspective"), &RenderingServer::environment_set_fog);
|
||||
ClassDB::bind_method(D_METHOD("environment_set_sdfgi", "env", "enable", "cascades", "min_cell_size", "y_scale", "use_occlusion", "bounce_feedback", "read_sky", "energy", "normal_bias", "probe_bias"), &RenderingServer::environment_set_sdfgi);
|
||||
ClassDB::bind_method(D_METHOD("environment_set_volumetric_fog", "env", "enable", "density", "light", "light_energy", "length", "p_detail_spread", "gi_inject", "temporal_reprojection", "temporal_reprojection_amount"), &RenderingServer::environment_set_volumetric_fog);
|
||||
ClassDB::bind_method(D_METHOD("environment_set_volumetric_fog", "env", "enable", "density", "albedo", "emission", "emission_energy", "anisotropy", "length", "p_detail_spread", "gi_inject", "temporal_reprojection", "temporal_reprojection_amount", "ambient_inject"), &RenderingServer::environment_set_volumetric_fog);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("environment_glow_set_use_bicubic_upscale", "enable"), &RenderingServer::environment_glow_set_use_bicubic_upscale);
|
||||
ClassDB::bind_method(D_METHOD("environment_glow_set_use_high_quality", "enable"), &RenderingServer::environment_glow_set_use_high_quality);
|
||||
|
@ -2440,6 +2452,7 @@ void RenderingServer::_bind_methods() {
|
|||
ClassDB::bind_method(D_METHOD("instance_attach_skeleton", "instance", "skeleton"), &RenderingServer::instance_attach_skeleton);
|
||||
ClassDB::bind_method(D_METHOD("instance_set_extra_visibility_margin", "instance", "margin"), &RenderingServer::instance_set_extra_visibility_margin);
|
||||
ClassDB::bind_method(D_METHOD("instance_set_visibility_parent", "instance", "parent"), &RenderingServer::instance_set_visibility_parent);
|
||||
ClassDB::bind_method(D_METHOD("instance_set_ignore_culling", "instance", "enabled"), &RenderingServer::instance_set_ignore_culling);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("instance_geometry_set_flag", "instance", "flag", "enabled"), &RenderingServer::instance_geometry_set_flag);
|
||||
ClassDB::bind_method(D_METHOD("instance_geometry_set_cast_shadows_setting", "instance", "shadow_casting_setting"), &RenderingServer::instance_geometry_set_cast_shadows_setting);
|
||||
|
@ -2469,6 +2482,7 @@ void RenderingServer::_bind_methods() {
|
|||
BIND_ENUM_CONSTANT(INSTANCE_LIGHTMAP);
|
||||
BIND_ENUM_CONSTANT(INSTANCE_OCCLUDER);
|
||||
BIND_ENUM_CONSTANT(INSTANCE_VISIBLITY_NOTIFIER);
|
||||
BIND_ENUM_CONSTANT(INSTANCE_FOG_VOLUME);
|
||||
BIND_ENUM_CONSTANT(INSTANCE_MAX);
|
||||
|
||||
BIND_ENUM_CONSTANT(INSTANCE_GEOMETRY_MASK);
|
||||
|
@ -2836,7 +2850,7 @@ RenderingServer::RenderingServer() {
|
|||
GLOBAL_DEF("rendering/shader_compiler/shader_cache/strip_debug.release", true);
|
||||
|
||||
GLOBAL_DEF("rendering/reflections/sky_reflections/roughness_layers", 8);
|
||||
GLOBAL_DEF("rendering/reflections/sky_reflections/texture_array_reflections", true);
|
||||
GLOBAL_DEF_RST("rendering/reflections/sky_reflections/texture_array_reflections", true);
|
||||
GLOBAL_DEF("rendering/reflections/sky_reflections/texture_array_reflections.mobile", false);
|
||||
GLOBAL_DEF("rendering/reflections/sky_reflections/ggx_samples", 1024);
|
||||
GLOBAL_DEF("rendering/reflections/sky_reflections/ggx_samples.mobile", 128);
|
||||
|
@ -2927,7 +2941,7 @@ RenderingServer::RenderingServer() {
|
|||
|
||||
GLOBAL_DEF("rendering/environment/volumetric_fog/volume_size", 64);
|
||||
ProjectSettings::get_singleton()->set_custom_property_info("rendering/environment/volumetric_fog/volume_size", PropertyInfo(Variant::INT, "rendering/environment/volumetric_fog/volume_size", PROPERTY_HINT_RANGE, "16,512,1"));
|
||||
GLOBAL_DEF("rendering/environment/volumetric_fog/volume_depth", 128);
|
||||
GLOBAL_DEF("rendering/environment/volumetric_fog/volume_depth", 64);
|
||||
ProjectSettings::get_singleton()->set_custom_property_info("rendering/environment/volumetric_fog/volume_depth", PropertyInfo(Variant::INT, "rendering/environment/volumetric_fog/volume_depth", PROPERTY_HINT_RANGE, "16,512,1"));
|
||||
GLOBAL_DEF("rendering/environment/volumetric_fog/use_filter", 1);
|
||||
ProjectSettings::get_singleton()->set_custom_property_info("rendering/environment/volumetric_fog/use_filter", PropertyInfo(Variant::INT, "rendering/environment/volumetric_fog/use_filter", PROPERTY_HINT_ENUM, "No (Faster),Yes (Higher Quality)"));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue