summaryrefslogtreecommitdiff
path: root/servers/rendering_server.cpp
AgeCommit message (Collapse)Author
2022-03-13Expose `RenderingServer::canvas_item_add_animation_slice` in GDScriptXavier Loh
2022-03-04Remove unused `shadow_color` property from Light3DHugo Locurcio
This shadow color property was no longer effective since the shaders were optimized to improve occupancy.
2022-03-04Merge pull request #58512 from Calinou/light3d-add-distance-fadeRémi Verschelde
2022-02-28Fix typo in SSR roughness quality enum value namesHugo Locurcio
2022-02-25Implement distance fade properties in OmniLight3D and SpotLight3DHugo Locurcio
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.
2022-02-23Implementing OpenXR driverBastiaan Olij
2022-02-22Use Filament specular models and parametrizationclayjohn
2022-02-17Merge pull request #58177 from clayjohn/VULKAN-prefiltered-radianceRémi Verschelde
2022-02-16Use prefiltered radianceclayjohn
2022-02-16Style: Cleanup single-line blocks, semicolons, dead codeRémi Verschelde
Remove currently unused implementation of TextureBasisU, could be re-added later on if needed and ported.
2022-02-10Merge pull request #54158 from Calinou/decrease-default-soft-shadow-qualityRémi Verschelde
2022-02-10Merge pull request #54677 from Calinou/voxelgi-default-low-qualityRémi Verschelde
2022-02-10Merge pull request #39965 from Calinou/tweak-sdfgi-defaultsRémi Verschelde
2022-02-08Fix BLEND_SHAPE_MASKreduz
* Should now be correct * Supersedes 53738
2022-02-06Tweak default SDFGI settings for better qualityHugo Locurcio
- 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.
2022-01-26Merge pull request #54574 from Ansraer/glow_mapRémi Verschelde
2022-01-20Rename or refactor macros to avoid leading underscoresOmar Polo
These are not used consistently and some can conflict with system-specific defines. While here, also delete some unused macros.
2022-01-20Merge pull request #55360 from Calinou/rename-bake-mode-propertiesRémi Verschelde
2022-01-20add support for glow mapsAnsraer
2022-01-19Revert "Add new scaling modes for splash screen"Rémi Verschelde
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.
2022-01-18Add new scaling modes for splash screenSamuel Pedrajas
Removes the `fullsize` option which is superseded by `stretch_mode`. Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2022-01-18Merge pull request #56761 from Calinou/sdfgi-allow-any-number-of-cascadesRémi Verschelde
2022-01-17Allow using between 1 and 8 cascades for SDFGIHugo Locurcio
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).
2022-01-14Remove support for PVRTC texture encoding and decodingHugo Locurcio
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.
2022-01-12Optimize include files to improve `shader_language.h` compilation speedYuri Roubinsky
2022-01-07Merge pull request #56170 from Calinou/renderingserver-expose-gi-half-resolutionRémi Verschelde
2022-01-06Expose RenderingServer SSIL quality setter methodsHugo Locurcio
This allows changing SSIL quality at run-time in a project.
2022-01-05Added material_overlay property to MeshInstance3DFernando Cosentino
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.
2022-01-04Merge pull request #55790 from Calinou/renderingserver-add-device-type-getterRémi Verschelde
Add `RenderingServer.get_video_adapter_type()` method
2022-01-04Merge pull request #56305 from Calinou/rename-lod-thresholdRémi Verschelde
2022-01-04Merge pull request #55386 from Calinou/allow-disable-depth-prepassRémi Verschelde
2022-01-04Merge pull request #51206 from clayjohn/Vulkan-ASSGIRémi Verschelde
2022-01-03Update copyright statements to 2022Rémi Verschelde
Happy new year to the wonderful Godot community!
2021-12-29Rename Lod Threshold to Mesh Lod ThresholdHugo Locurcio
This makes it more obvious that the setting only affects mesh LOD, not manual (H)LOD achieved using visibility ranges.
2021-12-22Expose RenderingServer GI half resolution setter methodHugo Locurcio
This is required for projects to be able to change the GI half-resolution setting at run-time.
2021-12-14Rename and reorder bake mode properties for consistencyHugo Locurcio
The order now goes from least to most computationally expensive: - Disabled - Static - Dynamic
2021-12-10Add `RenderingServer.get_video_adapter_type()` methodHugo Locurcio
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.
2021-12-07Merge pull request #35901 from nathanfranke/pool-byte-array-subarray-exclusiveRémi Verschelde
2021-12-02Fixed minimum size of aabb in ImmediateMesh to draw only one vertexSilc 'Tokage' Renew
2021-11-27Allow disabling the depth prepass in the Vulkan Clustered backendHugo Locurcio
In scenes that have little to no overdraw, disabling the depth prepass can give a small performance boost. Nonetheless, in most other scenarios, the depth prepass should be left enabled as it improves performance significantly.
2021-11-26PackedByteArray, Array slice end exclusive, rename subarray to sliceNathan Franke
2021-11-23Implemented AMD's FSR as a computer shader for upscaling 3D scenesJe06jm
2021-11-12Fix default_texture_param in shader pipeline to support uniform arraysYuri Roubinsky
2021-11-06Added SSIL post processing effectclayjohn
2021-11-06Decrease the default VoxelGI quality to improve performanceHugo Locurcio
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.
2021-11-05Use Callable in RS::request_frame_drawn_callbackBrian Semrau
2021-10-31Use OpenGL 3.3 core profile instead of compatibility profileClay John
- Rename OpenGL to GLES3 in the source code per community feedback. - The renderer is still exposed as "OpenGL 3" to the user. - Hide renderer selection dropdown until OpenGL support is more mature. - The renderer can still be changed in the Project Settings or using the `--rendering-driver opengl` command line argument. - Remove commented out exporter code. - Remove some OpenGL/DisplayServer-related debugging prints.
2021-10-28Addition of FogVolumes, FogShaders, FogMaterial, and overhaul of VolumetricFogclayjohn
Co-authored-by: Brian Semrau <brian.semrau@gmail.com>
2021-10-25Implement distance fade and transparencyJFonS
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>
2021-10-23Decrease the default soft shadow quality to improve performanceHugo Locurcio
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.