summaryrefslogtreecommitdiffstats
path: root/servers/rendering_server.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | | | 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!
* | | | | | Merge pull request #35901 from nathanfranke/pool-byte-array-subarray-exclusiveRémi Verschelde2021-12-071-1/+1
|\ \ \ \ \ \
| * | | | | | PackedByteArray, Array slice end exclusive, rename subarray to sliceNathan Franke2021-11-261-1/+1
| | |/ / / / | |/| | | |
* / | | | | Fixed minimum size of aabb in ImmediateMesh to draw only one vertexSilc 'Tokage' Renew2021-12-021-32/+30
|/ / / / /
* | | | | Implemented AMD's FSR as a computer shader for upscaling 3D scenesJe06jm2021-11-231-7/+31
| | | | |
* | | | | 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-1/+1
|/ / /
* | | Use OpenGL 3.3 core profile instead of compatibility profileClay John2021-10-311-0/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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.
* | | Addition of FogVolumes, FogShaders, FogMaterial, and overhaul of VolumetricFogclayjohn2021-10-281-3/+17
| | | | | | | | | | | | Co-authored-by: Brian Semrau <brian.semrau@gmail.com>
* | | Implement distance fade and transparencyJFonS2021-10-251-1/+6
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge pull request #53992 from Calinou/hard-shadow-mapping-allow-ditheringRémi Verschelde2021-10-221-4/+5
|\ \
| * | Add Soft Very Low shadow quality mode for 3DHugo Locurcio2021-10-211-4/+5
| | | | | | | | | | | | | | | | | | | | | 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.
* | | doctool: Fix differences between headless and Vulkan rendering backendsRémi Verschelde2021-10-201-0/+6
|/ / | | | | | | Fixes #53913.
* | Fix auto LOD generation for blendshapes.Joan Fons2021-10-091-1/+1
| |
* | Allow any floating-point value as a 3D rendering scale optionHugo Locurcio2021-10-081-9/+3
| | | | | | | | | | | | | | 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.
* | 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.
* | GLTF for game templates.K. S. Ernest (iFire) Lee2021-10-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Implement TextServer GDExtension interface, remove TextServer GDNative ↵bruvzg2021-10-011-0/+1
| | | | | | | | interface.
* | 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.
* | | 8 uvs for glTF2, URI decode and Vertex Custom api.Lyuma2021-09-101-4/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | Expose Vulkan internal values for access from extensionsBastiaan Olij2021-09-091-0/+6
| | |
* | | Optionally scale 3D render contentBastiaan Olij2021-08-261-0/+13
|/ /
* | Use the Unicode multiplication symbol where relevantHugo Locurcio2021-08-121-1/+1
| |
* | Fix the Use Nearest Mipmap Filter project setting not workingHugo Locurcio2021-08-121-2/+2
| | | | | | | | | | | | | | 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.
* | Decrease the default depth of field bokeh qualityHugo Locurcio2021-08-111-2/+2
| | | | | | | | | | This makes depth of field perform better out of the box, with little visual difference.
* | Some work on double supportAaron Franke2021-08-091-1/+1
| |
* | Handle 32-bit and 64-bit floats for tangents/weights in RenderingServerAaron Franke2021-08-011-30/+55
| |
* | Expose Vulkan's clustered and mobile backends in the project managerHugo Locurcio2021-07-301-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Use const references where possible for List range iteratorsRémi Verschelde2021-07-251-1/+1
| |
* | Use C++ iterators for Lists in many situationsAaron Franke2021-07-231-11/+11
| |
* | Merge pull request #50618 from reduz/implement-more-specialization-constantsRémi Verschelde2021-07-201-0/+21
|\ \ | | | | | | Implement more rendering options as specialization constants
| * | Implement more rendering options as specialization constantsreduz2021-07-191-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | | Explicitly cast to float when creating a float arrayAaron Franke2021-07-191-4/+4
|/ /
* | Fix warning message spam when a VoxelGI node is selected in the editorHugo Locurcio2021-07-061-1/+0
| | | | | | | | | | Support for anisotropy in VoxelGI was removed during its development due to the high cost. This was a leftover from anisotropy support.
* | Fix Render Inforeduz2021-07-031-16/+13
| | | | | | | | | | | | | | | | * 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.
* | Remove leftovers from the DirectionalLight3D Optimized shadow depth rangeHugo Locurcio2021-07-021-4/+0
| | | | | | | | | | | | 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.
* | Merge pull request #50040 from reduz/fix-renderingserver-bindingsRémi Verschelde2021-07-011-392/+859
|\ \ | | | | | | Clean up RenderingServer and its bindings
| * | Clean up RenderingServer and its bindingsreduz2021-07-011-392/+859
| | | | | | | | | | | | | | | | | | * Rewrote bindings for RenderingServer. * They are now all up to date. * Several unused methods and deprecated features were cleaned up.
* | | Import mesh colors in 8BPP.reduz2021-06-301-9/+11
|/ / | | | | | | | | | | | | | | * Colors were imported as 16BPP (half float) * Far most common use cases only require 8BPP * If you need higher data precision, use a custom array, which are supported now. **WARNING**: 3D Scenes imported in 4.0 no longer compatible with this new format. You need to re-import them (erase them from .godot/import)
* | Deprecate ImmediateGeometryreduz2021-06-301-21/+1
| | | | | | | | | | | | | | | | | | * Removed entirely from RenderingServer. * Replaced by ImmediateMesh resource. * ImmediateMesh replaces ImmediateGeometry, but could use more optimization in the future. * Sprite3D and AnimatedSprite3D work again, ported from Godot 3.x (though a lot of work was needed to adapt them to Godot 4). * RootMotionView works again. * Polygon3D editor works again.
* | Implement visibility range and dependencies.jfons2021-06-141-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds the following properties to GeometryInstance3D: `visibility_range_begin`, `visibility_range_begin_margin`, `visibility_range_end`, `visibility_range_end_margin`. Together they define a range in which the GeometryInstance3D will be visible from the camera, taking hysteresis into account for state changes. A begin or end value of 0 will be ignored, so the visibility range can be open-ended in both directions. This commit also adds the `visibility_parent` property to 'Node3D'. Which defines the visibility parents of the node and its subtree (until another parent is defined). Visual instances with a visibility parent will only be visible when the parent, and all of its ancestors recursively, are hidden because they are closer to the camera than their respective `visibility_range_begin` thresholds. Combining visibility ranges and visibility parents users can set-up a quick HLOD system that shows high detail meshes when close (i.e buildings, trees) and merged low detail meshes for far away groups (i.e. cities, woods).
* | Add stereoscopic rendering through multiviewBastiaan Olij2021-06-131-0/+2
| |
* | Merge pull request #47835 from mortarroad/master-lossless-webpRémi Verschelde2021-06-111-0/+4
|\ \ | | | | | | Implement lossless WebP encoding
| * | Implement lossless WebP encodingMorris Tabor2021-06-111-0/+4
| | |
* | | Fix tangent importingreduz2021-06-111-1/+3
| | | | | | | | | | | | * Binormal compression was wrong.
* | | Rename GI Classesreduz2021-06-051-31/+31
|/ / | | | | | | | | | | | | * GIProbe is now VoxelGI * BakedLightmap is now LightmapGI As godot adds more ways to provide GI (as an example, SDFGI in 4.0), the different techniques (which have different pros/cons) need to be properly named to avoid confusion.
* | Implement shader cachingreduz2021-05-311-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | * Shader compilation is now cached. Subsequent loads take less than a millisecond. * Improved game, editor and project manager startup time. * Editor uses .godot/shader_cache to store shaders. * Game uses user://shader_cache * Project manager uses $config_dir/shader_cache * Options to tweak shader caching in project settings. * Editor path configuration moved from EditorSettings to new class, EditorPaths, so it can be available early on (before shaders are compiled). * Reworked ShaderCompilerRD to ensure deterministic shader code creation (else shader may change and cache will be invalidated). * Added shader compression with SMOLV: https://github.com/aras-p/smol-v
* | Fix typos with codespellRémi Verschelde2021-05-201-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using codespell 2.0.0. Method: ``` $ cat > ../godot-word-whitelist.txt << EOF ang curvelinear dof doubleclick fave findn GIRD leapyear lod merchantibility nd numer ois ony que seeked synching te uint unselect webp EOF $ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po" $ git diff // undo unwanted changes ```