summaryrefslogtreecommitdiff
path: root/servers/rendering_server.cpp
AgeCommit message (Collapse)Author
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-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-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-22Merge pull request #53992 from Calinou/hard-shadow-mapping-allow-ditheringRémi Verschelde
2021-10-21Add Soft Very Low shadow quality mode for 3DHugo Locurcio
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.
2021-10-20doctool: Fix differences between headless and Vulkan rendering backendsRémi Verschelde
Fixes #53913.
2021-10-09Fix auto LOD generation for blendshapes.Joan Fons
2021-10-08Allow any floating-point value as a 3D rendering scale optionHugo Locurcio
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.
2021-10-07Remove unimplemented `Environment.ambient_light_occlusion_color` propertyHugo Locurcio
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.
2021-10-03GLTF for game templates.K. S. Ernest (iFire) Lee
Convert GLTF Document to use ImporterMeshInstance3D. Add a GLTFDocument extension list and an extension for converting the importer mesh instance 3d to mesh instance 3d. Use GLTF module when the editor tools are disabled. Modified the render server to be less restrictive on matching blend arrays and have more logging. Misc bugs with multimesh. Always index the meshes.
2021-10-01Implement TextServer GDExtension interface, remove TextServer GDNative ↵bruvzg
interface.
2021-09-13Merge pull request #49063 from Calinou/remove-16x-msaaRémi Verschelde
Remove 16× MSAA support due to driver bugs and low performance
2021-09-108 uvs for glTF2, URI decode and Vertex Custom api.Lyuma
Add glTF2 uri decode for paths. Add vertex custom apis. Add scene importer api. Change Color to float; add support for float-based custom channels in SurfaceTool and EditorSceneImporterMesh Co-authored-by: darth negative hunter <thenegativehunter2@users.noreply.github.com>
2021-09-09Expose Vulkan internal values for access from extensionsBastiaan Olij
2021-08-26Optionally scale 3D render contentBastiaan Olij
2021-08-25Remove 16× MSAA support due to driver bugs and low performanceHugo Locurcio
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.
2021-08-12Use the Unicode multiplication symbol where relevantHugo Locurcio
2021-08-12Fix the Use Nearest Mipmap Filter project setting not workingHugo Locurcio
The project setting wasn't being used anywhere. This also tweaks the property hints to denote that these properties are only effective after a restart.
2021-08-11Decrease the default depth of field bokeh qualityHugo Locurcio
This makes depth of field perform better out of the box, with little visual difference.
2021-08-09Some work on double supportAaron Franke
2021-08-01Handle 32-bit and 64-bit floats for tangents/weights in RenderingServerAaron Franke
2021-07-30Expose Vulkan's clustered and mobile backends in the project managerHugo Locurcio
Since OpenGL will not be available in Godot 4.0, this exposes a choice between Vulkan clustered and Vulkan mobile in the project manager. Despite the name, Vulkan mobile has many benefits on desktop platforms. It provides better performance on simple scenes, and ensures that you won't accidentally use unsupported features while testing your project on desktop platforms. The Vulkan backend setting was made into a "basic" setting so that it can be changed without having to enable the Advanced Settings toggle. This also improves list formatting to use bullet points and tweaks the property hint to be more descriptive.
2021-07-25Use const references where possible for List range iteratorsRémi Verschelde
2021-07-23Use C++ iterators for Lists in many situationsAaron Franke
2021-07-20Merge pull request #50618 from reduz/implement-more-specialization-constantsRémi Verschelde
Implement more rendering options as specialization constants
2021-07-19Implement more rendering options as specialization constantsreduz
* 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.
2021-07-19Explicitly cast to float when creating a float arrayAaron Franke
2021-07-06Fix warning message spam when a VoxelGI node is selected in the editorHugo Locurcio
Support for anisotropy in VoxelGI was removed during its development due to the high cost. This was a leftover from anisotropy support.
2021-07-03Fix Render Inforeduz
* Fixed and redone the process to obtain render information from a viewport * Some stats, such as material changes are too difficult to guess on Vulkan, were removed. * Separated visible and shadow stats, which causes confusion. * Texture, buffer and general video memory can be queried now. * Fixed the performance metrics too.
2021-07-02Remove leftovers from the DirectionalLight3D Optimized shadow depth rangeHugo Locurcio
The Optimized shadow depth range was removed in late 2020 in favor of the Stable shadow depth range, but it still had a (broken) property that allowed to enable it.
2021-07-01Merge pull request #50040 from reduz/fix-renderingserver-bindingsRémi Verschelde
Clean up RenderingServer and its bindings