RE: ldr_wgpu high performance realtime LDraw renderer
2023-05-29, 19:39 (This post was last modified: 2023-05-29, 19:40 by Jonathan N.)
2023-05-29, 19:39 (This post was last modified: 2023-05-29, 19:40 by Jonathan N.)
I've made some more improvements to rendering performance and loading times. I've also implemented calculation of normals using an angle threshold as well as splitting edges similar to what I do for the Blender addon ldr_tools_blender. The edge splitting is in its own module in the source code with associated unit tests for reference. The implementation is inspired by Blender but is implemented slightly differently.
These are the results from loading datsville. The time includes the time to create all the GPU buffers and shaders needed for rendering.
Vertices: 6368359, Indices: 12217668
Load 392515 parts, 3094 unique colored parts, and 1015 unique parts: 1.5907709s
For a high level description of the design decisions and names and links for the papers referenced, see the github repo. The document also has descriptions of how I represent an LDraw scene to better utilize multithreading and reduce memory usage.
https://github.com/ScanMountGoat/ldr_wgp...TECTURE.md