summaryrefslogtreecommitdiffstats
path: root/servers/rendering/renderer_rd/storage_rd/mesh_storage.h
Commit message (Collapse)AuthorAgeFilesLines
* Merge commit godotengine/godot@fd4c29a189e53a1e085df5b9b9a05cac9351b3efSpartan3222024-11-191-0/+1
|\
| * Implemented multimesh_get_buffer_rd_rid function into RenderingServer.David House2024-11-141-0/+1
| | | | | | | | | | | | Fixed style error. Updated dummy mesh_storage to move from cpp to h the return of a blank Rid on _multimesh_get_buffer_rd_rid.
* | Merge commit godotengine/godot@8004c7524fb9f43425c4d6f614410a76678e0f7cSpartan3222024-10-301-4/+4
|\|
| * Set clang-format `RemoveSemicolon` rule to `true`Adam Scott2024-10-251-4/+4
| | | | | | | | - Set clang-format `Standard` rule to `c++20`
* | Fix copyright headers referring to GodotSpartan3222024-10-271-2/+2
| |
* | Merge commit godotengine@92e51fca7247c932f95a1662aefc28aca96e8de6Spartan3222024-10-141-1/+1
|\|
| * Merge pull request #97744 from Nazarwadim/use_local_vector_for_skeletonThaddeus Crews2024-10-101-1/+1
| |\ | | | | | | | | | Use `LocalVector` for skeleton
| | * Use local vector for skeletonNazarii2024-10-021-1/+1
| | |
* | | Rebrand preambles to RedotDubhghlas McLaughlin2024-10-111-0/+2
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Credits: Co-authored-by: Skogi <skogi.b@gmail.com> Co-authored-by: Spartan322 <Megacake1234@gmail.com> Co-authored-by: swashberry <swashdev@pm.me> Co-authored-by: Christoffer Sundbom <christoffer_karlsson@live.se> Co-authored-by: Dubhghlas McLaughlin <103212704+mcdubhghlas@users.noreply.github.com> Co-authored-by: McDubh <103212704+mcdubhghlas@users.noreply.github.com> Co-authored-by: Dubhghlas McLaughlin <103212704+mcdubhghlas@users.noreply.github.com> Co-authored-by: radenthefolf <radenthefolf@gmail.com> Co-authored-by: John Knight <80524176+Tekisasu-JohnK@users.noreply.github.com> Co-authored-by: Adam Vondersaar <adam.vondersaar@uphold.com> Co-authored-by: decryptedchaos <nixgod@gmail.com> Co-authored-by: zaftnotameni <122100803+zaftnotameni@users.noreply.github.com> Co-authored-by: Aaron Benjamin <lifeartstudios@gmail.com> Co-authored-by: wesam <108880473+wesamdev@users.noreply.github.com> Co-authored-by: Mister Puma <MisterPuma80@gmail.com> Co-authored-by: Aaron Benjamin <lifeartstudios@gmail.com> Co-authored-by: SingleError <isaaconeoneone@gmail.com> Co-authored-by: Bioblaze Payne <BioblazePayne@gmail.com>
* / Implement asynchronous transfer queues, thread guards on RenderingDevice. ↵Dario2024-10-021-0/+7
|/ | | | | | | | | | | Add ubershaders and rework pipeline caches for Forward+ and Mobile. - Implements asynchronous transfer queues from PR #87590. - Adds ubershaders that can run with specialization constants specified as push constants. - Pipelines with specialization constants can compile in the background. - Added monitoring for pipeline compilations. - Materials and shaders can now be created asynchronously on background threads. - Meshes that are loaded on background threads can also compile pipelines as part of the loading process.
* Avoid const_cast in mesh_storage.hrune-scape2024-08-281-1/+1
|
* Fixed Timestep Interpolation: MultiMeshRicardo Buring2024-08-181-22/+26
| | | | | | Adds fixed timestep interpolation to multimeshes. Co-authored-by: lawnjelly <lawnjelly@gmail.com>
* Support custom AABB within MultiMesh resourcesArman Elgudzhyan2024-02-151-0/+4
| | | | | - Supporting custom AABB on the MultiMesh resource itself allows us to prevent costly runtime AABB recalculations. - Should also help improve CPU Particle performance.
* Merge pull request #84894 from clayjohn/tangent-error-messageYuri Sizov2024-01-241-0/+5
|\ | | | | | | Store ArrayMesh path in RenderingServer for use in error messages
| * Store ArrayMesh path in RenderingServer for use in error messagesclayjohn2023-11-141-0/+5
| |
* | Check skeleton RID when using cached AABBErik Johnson2023-12-171-0/+1
| |
* | Transform mesh's AABB to skeleton's space when calculate mesh's bounds.ShirenY2023-12-091-0/+4
|/
* Some more fixes for compressed meshesclayjohn2023-10-241-2/+2
| | | | | | | This cleans up a few more cases of uint32_t->uint64_t Importantly this fixes an edge case in the axis-angle compression by using the pre-existing Basis methods instead
* Vertex and attribute compression to reduce the size of the vertex format.clayjohn2023-10-051-5/+22
| | | | | | | | | | | | | This allows Godot to automatically compress meshes to save a lot of bandwidth. In general, this requires no interaction from the user and should result in no noticable quality loss. This scheme is not backwards compatible, so we have provided an upgrade mechanism, and a mesh versioning mechanism. Existing meshes can still be used as a result, but users can get a performance boost by reimporting assets.
* Fix mismatch between surface vertex array generation inside the function and ↵Dario2023-09-271-2/+2
| | | | | | the caller. Fixes #82446.
* [Servers] Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicableA Thousand Ships2023-09-251-5/+5
|
* Add FidelityFX Super Resolution 2.2 (FSR 2.2.1) support.Dario2023-09-251-0/+3
| | | | Introduces support for FSR2 as a new upscaler option available from the project settings. Also introduces an specific render list for surfaces that require motion and the ability to derive motion vectors from depth buffer and camera motion.
* Add motion vector support for animated surfaces like skeletons or blend shapes.Dario2023-08-161-9/+36
| | | | Extends mesh instances that required custom vertex buffers to create two alternating buffers that are written to and binds them to use them as the previous vertex buffer when generating motion vectors.
* Improve handling of motion vectors for multimesh instances.Dario2023-08-091-1/+1
| | | | Fixes #67287. There was a subtle error where due to how enabling motion vectors for multi-meshes was handled, only the first instance would have a valid transforms buffer and the rest would point to an invalid buffer. This change moves over the responsibility of enabling motion vectors only when changes happen to the individual 3D transforms or the entire buffer itself. It also fixes an unnecessary download of the existing buffer that'd get overwritten by the current cache if it exists. Another fix is handling the case where the buffer was not set, and enabling motion vectors would not cause the buffer to be recreated correctly.
* Fix error spam when a mesh with bone weights has an invalid skeletonbitsawer2023-06-221-1/+3
|
* Automatically transform Skeleton2D calculations so pivots are not neededclayjohn2023-01-271-0/+10
|
* One Copyright Update to rule them allRémi Verschelde2023-01-051-29/+29
| | | | | | | | | | | | | | | | | | | | As many open source projects have started doing it, we're removing the current year from the copyright notice, so that we don't need to bump it every year. It seems like only the first year of publication is technically relevant for copyright notices, and even that seems to be something that many companies stopped listing altogether (in a version controlled codebase, the commits are a much better source of date of publication than a hardcoded copyright statement). We also now list Godot Engine contributors first as we're collectively the current maintainers of the project, and we clarify that the "exclusive" copyright of the co-founders covers the timespan before opensourcing (their further contributions are included as part of Godot Engine contributors). Also fixed "cf." Frenchism - it's meant as "refer to / see".
* Remove mesh bone_aabbs as they are not used anywhere and calculating them is ↵clayjohn2022-12-141-2/+0
| | | | a pain
* Add Skeletons and Blend Shapes to the OpenGL rendererclayjohn2022-11-291-1/+0
| | | | | | | | | | This uses a similar multipass approach to blend shapes as Godot 3.x, the major difference here is that we need to convert the normals and tangents to octahedral for rendering. Skeletons work the same as the Vulkan renderer except the bones are stored in a texture as they were in 3.x.
* Fix drawing of 2D skeletons in the RD renderer.clayjohn2022-11-181-0/+1
| | | | | | Also clean up skeleton code in preparation for adding them to GLES3 Properly update Mesh2D AABBs when skeleton is updated
* Fix EXE_BAD_ACCESS caused by optional argumentGordon MacPherson2022-10-261-7/+3
| | | | | This argument is now non optional, but this never hits the same bad access. I voted to simplify the code here since the argument is never used optionally in our codebase.
* Move cluster builder, sdfgi and gi structures to clustered renderer, move ↵Bastiaan Olij2022-10-041-0/+2
| | | | light and probe elements into storage and reorganise our render_scene method.
* Add motion vectors support for MultiMeshInstancejfons2022-09-121-1/+10
| | | | Transparently handle changes in multimesh transforms so they get reflected in the motion vectors buffer.
* Changed storage structs to privateBastiaan Olij2022-08-011-208/+200
|
* Code quality: Fix header guards consistencyRémi Verschelde2022-07-251-1/+1
| | | | | Adds `header_guards.sh` bash script, used in CI to validate future changes. Can be run locally to fix invalid header guards.
* Split dependency logicBastiaan Olij2022-06-281-5/+5
| | | | | | Split FOG Split visibility notifier Final cleanup of storage classes
* Add a new HashSet templatereduz2022-05-201-1/+1
| | | | | * Intended to replace RBSet in most cases. * Optimized for iteration speed
* Replace most uses of Map by HashMapreduz2022-05-161-1/+1
| | | | | | | | | | | | * Map is unnecessary and inefficient in almost every case. * Replaced by the new HashMap. * Renamed Map to RBMap and Set to RBSet for cases that still make sense (order matters) but use is discouraged. There were very few cases where replacing by HashMap was undesired because keeping the key order was intended. I tried to keep those (as RBMap) as much as possible, but might have missed some. Review appreciated!
* Check multimesh before uniform set creationmightygoat2022-05-051-0/+6
|
* Fix the uniform set creation of multimesh with a invalidated buffermightygoat2022-05-051-0/+6
|
* Zero initialize all pointer class and struct membersRémi Verschelde2022-04-041-1/+1
| | | | | This prevents the pitfall of UB when checking if they have been assigned something valid by comparing to nullptr.
* Move storage for Mesh, MeshInstance, MultiMesh and Skeleton into MeshStorageBastiaan Olij2022-04-021-0/+694