summaryrefslogtreecommitdiffstats
path: root/servers/rendering_server.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Automatically update the editor viewport when 3D scaling options are changedHugo Locurcio2022-06-191-4/+4
| | | | | This allows for previewing the effects of the various 3D scaling project settings without having to restart the editor.
* Initial TAA implementationjfons2022-06-071-0/+2
| | | | | | Initial TAA support based on the implementation in Spartan Engine. Motion vectors are correctly generated for camera and mesh movement, but there is no support for other things like particles or skeleton deformations.
* Ensure has_os_features is safely called as it can't be called from within ↵Bastiaan Olij2022-06-011-0/+2
| | | | the construct of RenderingServerDefault on which it relies
* Add Cone and Cylinder shapes to FogVolumeHugo Locurcio2022-05-251-0/+3
| | | | | | This complements the existing Ellipsoid and Box local fog shapes. This can be used to represent a light cone coming from a SpotLight.
* Add basic lighting to GLES3 renderer.clayjohn2022-05-161-2/+2
| | | | This includes all three light types and IBL, but does not include shadows or any form of GI
* Merge pull request #60976 from Calinou/fsr-rename-property-hintRémi Verschelde2022-05-121-1/+1
|\
| * Rename remaining references of FSR to FSR 1.0Hugo Locurcio2022-05-121-1/+1
| | | | | | | | | | With FSR 2.0 around the corner, we should avoid any ambiguity by explicitly stating the version number.
* | Basic 3D renderingclayjohn2022-05-121-37/+9
|/
* Add `get_video_adapter_api_version()` to RenderingServerHugo Locurcio2022-05-031-0/+1
| | | | | | This method can be used to get the graphics API version currently in use (such as Vulkan). It can be used by projects for troubleshooting or statistical purposes.
* Fix more issues found by cppcheck.bruvzg2022-04-201-9/+9
|
* Restore antialiasing for `draw_line`Yuri Roubinsky2022-04-121-1/+1
|
* Fix some issues found by cppcheck.bruvzg2022-04-061-2/+0
|
* Merge pull request #49738 from Calinou/ssao-gi-default-half-resolutionRémi Verschelde2022-03-181-2/+1
|\ | | | | Compute SSAO at half resolution by default
| * Compute SSAO at half resolution by defaultHugo Locurcio2022-02-141-2/+1
| | | | | | | | | | | | | | | | This provides a significant speedup for a small quality loss. The quality loss is generally more noticeable during a project's early stages of development (e.g. in level blockouts) than it is in a finished project.
* | Replace DirectionalLight3D's `use_in_sky_only` with `sky_mode` enumHugo Locurcio2022-03-171-1/+5
| | | | | | | | | | | | | | | | | | | | 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>
* | Expose `RenderingServer::canvas_item_add_animation_slice` in GDScriptXavier Loh2022-03-131-0/+1
| |
* | 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
|/ /
* | Implementing OpenXR driverBastiaan Olij2022-02-231-1/+1
| |
* | Use Filament specular models and parametrizationclayjohn2022-02-221-2/+0
| |
* | Merge pull request #58177 from clayjohn/VULKAN-prefiltered-radianceRémi Verschelde2022-02-171-3/+3
|\ \
| * | Use prefiltered radianceclayjohn2022-02-161-3/+3
| |/
* / Style: Cleanup single-line blocks, semicolons, dead codeRémi Verschelde2022-02-161-2/+2
|/ | | | | Remove currently unused implementation of TextureBasisU, could be re-added later on if needed and ported.
* Merge pull request #54158 from Calinou/decrease-default-soft-shadow-qualityRémi Verschelde2022-02-101-2/+2
|\
| * Decrease the default soft shadow quality to improve performanceHugo Locurcio2021-10-231-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Soft shadows are relatively expensive to filter. However, with the default blur factors, it's not needed to use too many samples (unless PCSS-like shadows are used with a large size). Textures and screen-space antialiasing can also be used to mask the noise pattern effectively. On a GeForce GTX 1080, going from Medium to Low for both shadow types saves 0.2-0.4 ms of GPU time per frame in 2560×1440 resolution. This can translate to significantly higher savings on lower-end GPUs. Given how the shader works, this improves rendering performance even if lights with shadows are never used.
* | Merge pull request #54677 from Calinou/voxelgi-default-low-qualityRémi Verschelde2022-02-101-1/+1
|\ \
| * | Decrease the default VoxelGI quality to improve performanceHugo Locurcio2021-11-061-1/+1
| | | | | | | | | | | | | | | | | | On a GeForce GTX 1080 in 2002×1447 resolution, decreasing VoxelGI quality from High to Low quality saves 1.2 ms of GPU time in a medium-sized test scene. This only results in a minor drop in quality.
* | | Merge pull request #39965 from Calinou/tweak-sdfgi-defaultsRémi Verschelde2022-02-101-3/+3
|\ \ \
| * | | Tweak default SDFGI settings for better qualityHugo Locurcio2022-02-061-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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.
* | | | 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
| | | |
* | | | Rename or refactor macros to avoid leading underscoresOmar Polo2022-01-201-6/+7
| | | | | | | | | | | | | | | | | | | | These are not used consistently and some can conflict with system-specific defines. While here, also delete some unused macros.
* | | | 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-8/+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/+8
| | | | | | | | | | | | | | | | | | | | | | | | Removes the `fullsize` option which is superseded by `stretch_mode`. Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
* | | | Merge pull request #56761 from Calinou/sdfgi-allow-any-number-of-cascadesRémi Verschelde2022-01-181-4/+0
|\ \ \ \
| * | | | Allow using between 1 and 8 cascades for SDFGIHugo Locurcio2022-01-171-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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).
* | | | | Remove support for PVRTC texture encoding and decodingHugo Locurcio2022-01-141-1/+0
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | On the only platform where PVRTC is supported (iOS), ETC2 generally supersedes PVRTC in every possible way. The increased memory usage is not really a problem thanks to modern iOS' devices processing power being higher than its Android counterparts.
* | | | Optimize include files to improve `shader_language.h` compilation speedYuri Roubinsky2022-01-121-1/+2
| | | |
* | | | Merge pull request #56170 from Calinou/renderingserver-expose-gi-half-resolutionRémi Verschelde2022-01-071-0/+4
|\ \ \ \
| * | | | Expose RenderingServer GI half resolution setter methodHugo Locurcio2021-12-221-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | This is required for projects to be able to change the GI half-resolution setting at run-time.
* | | | | Expose RenderingServer SSIL quality setter methodsHugo Locurcio2022-01-061-0/+7
| | | | | | | | | | | | | | | | | | | | This allows changing SSIL quality at run-time in a project.
* | | | | Added material_overlay property to MeshInstance3DFernando Cosentino2022-01-051-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-1/+1
|\ \ \ \ \