summaryrefslogtreecommitdiffstats
path: root/servers/rendering_server.h
Commit message (Collapse)AuthorAgeFilesLines
* Replace DirectionalLight3D's `use_in_sky_only` with `sky_mode` enumHugo Locurcio2022-03-171-1/+8
| | | | | | | | | | 3 options are available: - Light and Sky (default) - Light Only (new) - Sky Only (equivalent to `use_in_sky_only = true`) Co-authored by: clayjohn <claynjohn@gmail.com>
* Remove unused `shadow_color` property from Light3DHugo Locurcio2022-03-041-1/+0
| | | | | This shadow color property was no longer effective since the shaders were optimized to improve occupancy.
* Merge pull request #58512 from Calinou/light3d-add-distance-fadeRémi Verschelde2022-03-041-0/+1
|\
| * Implement distance fade properties in OmniLight3D and SpotLight3DHugo Locurcio2022-02-251-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | This can be used to fade lights and their shadows in the distance, similar to Decal nodes. This can bring significant performance improvements, especially for lights with shadows enabled and when using higher-than-default shadow quality settings. While lights can be smoothly faded out over distance, shadows are currently "all or nothing" since per-light shadow color is no longer customizable in the Vulkan renderer. This may result in noticeable pop-in when leaving the shadow cutoff distance, but depending on the scene, it may not always be that noticeable.
* | Fix typo in SSR roughness quality enum value namesHugo Locurcio2022-02-281-4/+4
|/
* Merge pull request #39965 from Calinou/tweak-sdfgi-defaultsRémi Verschelde2022-02-101-2/+2
|\
| * Tweak default SDFGI settings for better qualityHugo Locurcio2022-02-061-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | - Enable Read Sky Light to get proper outdoors lighting out of the box. - Set bounce feedback to 0.5 by default to get a better quality result. - Higher values may cause infinite feedback with bright surfaces. - Increase the number of frames to converge to improve quality at the cost of latency. Most scenes are fairly static after all. - Use 75% Y scale by default as most scenes are not highly vertical. - Reorder the Y scale enum to go from the lowest Y scale to the highest. Also rename the "Disabled" setting to "100%" for clarity.
* | Merge pull request #57628 from Calinou/shadow-atlas-default-enable-16-bitsRémi Verschelde2022-02-101-2/+2
|\ \
| * | Enable 16-bit shadow atlas by default in the RenderingServer methodsHugo Locurcio2022-02-041-2/+2
| |/ | | | | | | | | | | | | | | | | 16-bit shadow atlases are already the default in the project settings, but low-level methods used 24-bit shadows by default. This makes low-level methods more consistent with the default project settings to avoid accidental performance issues when users change the shadow size at run-time.
* / Fix BLEND_SHAPE_MASKreduz2022-02-081-1/+1
|/ | | | | * Should now be correct * Supersedes 53738
* Merge pull request #54574 from Ansraer/glow_mapRémi Verschelde2022-01-261-1/+1
|\
| * add support for glow mapsAnsraer2022-01-201-1/+1
| |
* | Merge pull request #55360 from Calinou/rename-bake-mode-propertiesRémi Verschelde2022-01-201-1/+1
|\ \ | |/ |/|
| * Rename and reorder bake mode properties for consistencyHugo Locurcio2021-12-141-1/+1
| | | | | | | | | | | | | | | | The order now goes from least to most computationally expensive: - Disabled - Static - Dynamic
* | Revert "Add new scaling modes for splash screen"Rémi Verschelde2022-01-191-11/+1
| | | | | | | | | | | | | | This reverts commit fcc9f5ce396ff921ed8253f657a8c9c38e7a878d. The feature is good but the implementation still needs more work. A new PR will be made with a rework of this commit.
* | Add new scaling modes for splash screenSamuel Pedrajas2022-01-181-1/+11
| | | | | | | | | | | | Removes the `fullsize` option which is superseded by `stretch_mode`. Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
* | Allow using between 1 and 8 cascades for SDFGIHugo Locurcio2022-01-171-8/+1
| | | | | | | | | | | | This provides more flexibility between performance and quality adjustments, especially when using SDFGI for small-scale levels (which can be useful for procedurally generated scenes).
* | Optimize include files to improve `shader_language.h` compilation speedYuri Roubinsky2022-01-121-2/+1
| |
* | Expose RenderingServer SSIL quality setter methodsHugo Locurcio2022-01-061-0/+1
| | | | | | | | This allows changing SSIL quality at run-time in a project.
* | Added material_overlay property to MeshInstance3DFernando Cosentino2022-01-051-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Applying overlay materials into multi-surface meshes currently requires adding a next pass material to all the surfaces, which might be cumbersome when the material is to be applied to a range of different geometries. This also makes it not trivial to use AnimationPlayer to control the material in case of visual effects. The material_override property is not an option as it works replacing the active material for the surfaces, not adding a new pass. This commit adds the material_overlay property to GeometryInstance3D (and therefore MeshInstance3D), having the same reach as material_override (that is, all surfaces) but adding a new material pass on top of the active materials, instead of replacing them.
* | Merge pull request #55790 from Calinou/renderingserver-add-device-type-getterRémi Verschelde2022-01-041-0/+1
|\ \ | | | | | | Add `RenderingServer.get_video_adapter_type()` method
| * | Add `RenderingServer.get_video_adapter_type()` methodHugo Locurcio2021-12-101-0/+1
| | | | | | | | | | | | | | | | | | | | | This can be used to distinguish between integrated, dedicated, virtual and software-emulated GPUs. This in turn can be used to automatically adjust graphics settings, or warn users about features that may run slowly on their hardware.
* | | Merge pull request #56305 from Calinou/rename-lod-thresholdRémi Verschelde2022-01-041-2/+2
|\ \ \
| * | | Rename Lod Threshold to Mesh Lod ThresholdHugo Locurcio2021-12-291-2/+2
| |/ / | | | | | | | | | | | | This makes it more obvious that the setting only affects mesh LOD, not manual (H)LOD achieved using visibility ranges.
* | | Merge pull request #51206 from clayjohn/Vulkan-ASSGIRémi Verschelde2022-01-041-0/+13
|\ \ \
| * | | Added SSIL post processing effectclayjohn2021-11-061-0/+13
| | | |
* | | | Update copyright statements to 2022Rémi Verschelde2022-01-031-2/+2
| |/ / |/| | | | | | | | Happy new year to the wonderful Godot community!
* | | Fixed minimum size of aabb in ImmediateMesh to draw only one vertexSilc 'Tokage' Renew2021-12-021-27/+30
| |/ |/|
* | Implemented AMD's FSR as a computer shader for upscaling 3D scenesJe06jm2021-11-231-1/+12
| |
* | Fix default_texture_param in shader pipeline to support uniform arraysYuri Roubinsky2021-11-121-2/+2
| |
* | Use Callable in RS::request_frame_drawn_callbackBrian Semrau2021-11-051-2/+2
|/
* Addition of FogVolumes, FogShaders, FogMaterial, and overhaul of VolumetricFogclayjohn2021-10-281-1/+20
| | | | Co-authored-by: Brian Semrau <brian.semrau@gmail.com>
* Implement distance fade and transparencyJFonS2021-10-251-1/+9
| | | | | | | | | | | | | | | | | | | | | The built-in ALPHA in spatial shaders comes pre-set with a per-instance transparency value. Multiply by it if you want to keep it. The transparency value of any given GeometryInstance3D is affected by: - Its new "transparency" property. - Its own visiblity range when the new "visibility_range_fade_mode" property is set to "Self". - Its parent visibility range when the parent's fade mode is set to "Dependencies". The "Self" mode will fade-out the instance when reaching the visibility range limits, while the "Dependencies" mode will fade-in its dependencies. Per-instance transparency is only implemented in the forward clustered renderer, support for mobile should be added in the future. Co-authored-by: reduz <reduzio@gmail.com>
* Add Soft Very Low shadow quality mode for 3DHugo Locurcio2021-10-211-0/+1
| | | | | | | This can be used to improve 3D shadow rendering quality at little performance cost. Unlike the existing Hard setting which is limited to variable shadow blur only, it works with both fixed blur and variable blur.
* Allow any floating-point value as a 3D rendering scale optionHugo Locurcio2021-10-081-11/+1
| | | | | | | This allows for finer control over 3D rendering resolution. Supersampling can also be performed by setting a 3D rendering resolution above 1.0, which is useful for offline rendering or for very high-end GPUs.
* Merge pull request #53523 from Calinou/remove-occlusion-colorRémi Verschelde2021-10-071-1/+1
|\
| * Remove unimplemented `Environment.ambient_light_occlusion_color` propertyHugo Locurcio2021-10-071-1/+1
| | | | | | | | | | | | | | This property was intended to provide a way to have SSAO or VoxelGI ambient occlusion with a color other than black. However, it was dropped during the Vulkan renderer development due to the performance overhead it caused when the feature wasn't used.
* | Replace references to VisualServer in code comments with RenderingServerHugo Locurcio2021-10-071-1/+1
|/ | | | VisualServer no longer exists in the `master` branch.
* Auto LOD fixes and improvementsjfons2021-09-271-1/+1
| | | | | | | | | | | | | | | | * Fixed LODs for shadow meshes. * Added a merging step before simplification. This helps with tesselated meshes that were previously left untouched. The angle difference at wich edges ar considered "hard" can be tweaked as an import setting. * LODs will now start with the highest decimation possible and keep doubling (approximately) the number of triangles from there. This makes sure that very low triangle counts are included when possible. * Given more weight to normal preservation. * Modified MeshOptimizer to report distance-based error instead of including attributes in the reported metrics. * Added attribute transference between the original mesh and the various LODs. Right now only normals are taken into account, but it could be expanded to other attributes in the future.
* Merge pull request #49063 from Calinou/remove-16x-msaaRémi Verschelde2021-09-131-1/+0
|\ | | | | Remove 16× MSAA support due to driver bugs and low performance
| * Remove 16× MSAA support due to driver bugs and low performanceHugo Locurcio2021-08-251-1/+0
| | | | | | | | | | | | | | | | | | | | In the `master` branch, 16× MSAA caused the entire system to freeze on NVIDIA GPUs. This is likely caused by graphics drivers not actually implementing 16× MSAA, but combining 8× MSAA with 2× SSAA instead. On top of that, modern shader complexity makes 16× MSAA very difficult to use while keeping a good framerate. 8× MSAA is hard enough to use as it is.
* | Expose Vulkan internal values for access from extensionsBastiaan Olij2021-09-091-0/+1
| |
* | Makes FontData importable resource.bruvzg2021-08-271-0/+1
| | | | | | | | | | | | | | Adds multi-channel SDF font texture generation and rendering support. Adds per-font oversampling support. Adds FontData import plugins (for dynamic fonts, BMFonts and monospaced image fonts), font texture cache pre-generation and loading. Adds BMFont binary format and outline support.
* | Optionally scale 3D render contentBastiaan Olij2021-08-261-0/+11
|/
* Use real_t and double where appropriate in ParticlesAaron Franke2021-08-121-4/+4
|
* Some work on double supportAaron Franke2021-08-091-1/+1
|
* Use doubles for time in many other placesAaron Franke2021-08-091-8/+8
|
* Implement more rendering options as specialization constantsreduz2021-07-191-0/+23
| | | | | | | | * Shadow quality settings now specialization constant. * Decal and light projector filters can be set. * Changing those settings forces re-creation of the pipelines. These changes should help improve performance related to shadow mapping, and allows improving performance by sacrificing decal and light projector quality.
* Use specialization constants in clustered rendererreduz2021-07-121-1/+2
| | | | | | | * Keep track of when projector, softshadow or directional sofshadow were enabled. * Enable them via specializaton constant where it makes sense. * Re-implements soft shadows. * Re-implements light projectors.
* Restructure and reimplement vsync optionsHendrik Brucker2021-07-061-1/+1
| | | | | -Add a v-sync mode setting which allows to choose between DISABLED, ON, ADAPTIVE and MAILBOX -Removed the V-Sync via Compositor option