BunnyLOD
meshoptimizer
Our great sponsors
BunnyLOD | meshoptimizer | |
---|---|---|
4 | 12 | |
74 | 4,969 | |
- | - | |
0.0 | 9.0 | |
almost 4 years ago | 5 days ago | |
C++ | C++ | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
BunnyLOD
-
question about wasted index Buffer data
If you reuse the same index buffer as proposed then you won't be able to share vertices, which can be an important optimization. In my case I use a 323 cache of vert indices and just insert an index rather than a vertex if the vertex already exists and has the same material. I generate normals in the pixel shader to increase what can be shared, and then use a variant of Stan Melax's edge collapse polygon reduction algorithm to combine edges and reduce triangle count.
-
help implementing LOD edge collapse algorithm
You might want to take a look at Stan Melax's easy mesh simplification technique with edge collapse at http://www.melax.com/polychop (read the full article link) - I've ported the code so it runs cross platform on https://github.com/dougbinks/BunnyLOD
-
Mesh optimization algorithms
I use a variant of progressive meshing, but constrained to preserve edges, normals and ambient occulusion in Avoyd based on Stan Melax's work: https://github.com/dougbinks/BunnyLOD
-
Voxel Vendredi 81
My triangle reduction in Avoyd, loosely based on Stan Melax's progressive mesh approach checks that the vertex being removed is internal to a set of triangles by checking that the internal angles add up to roughly 2Pi. This also ensures only flat surfaces are reduced, although I also perform normal checks and that vertex ambient occlusion gradients are preserved.
meshoptimizer
-
Nanite-like LODs experiments
1) I used meshoptimizer to simplify meshes and building meshlets. But to combine these meshlets (for more efficient simplifying) I built a graph with weights and partition it. In this weight some metrics are included: the shared border length of a pair of meshlets, their facing direction and other similar metrics. The next step is to simplify these groups of meshlets (fixate borders for each of them and simplify meshlets within the group). So, you can make dependencies of newly generated meshlets on the initial ones.
-
Will the same texture used in many gltfs be duplicated in memory?
Here are some amazing tools for compressing GLTFs: https://github.com/zeux/meshoptimizer/blob/master/gltf/README.md
-
Maximum size of scene or a project in THREE.JS
I've also had good results with this tool: https://github.com/zeux/meshoptimizer/blob/master/gltf/README.md and kt2tdecoder + meshopt_decoder
-
[Part 7] Update of my Vulkan renderer: LODs, Multiple different meshes, Memory Allocator, Render architecture and more
Implemented Mesh LOD system. LOD selection is done completely on GPU. I generate LODs using meshoptimizer.
-
Given a mesh without indices, how I generate indices for that mesh and remove the duplicate vertices?
Maybe Meshoptimizer can be useful?
-
[Part 4] Update of my Vulkan toy renderer: Mesh Shader Pipeline, Reversed-Z Depth Buffer, SPIRV-Reflect and many more
Added NVidia mesh shader pipeline support, with old pipeline still supported on top. Meshlets are generated using meshoptimizer.
-
Algoritm to simplify geometric data similar to texture bitmapping
I've used the "Simplification" operation of meshoptimizer to simplify 3D model geometry: https://github.com/zeux/meshoptimizer
-
help implementing LOD edge collapse algorithm
I call meshopt_simplify(). It uses a quadric error metric based mesh simplification of some sort. I haven't really looked into the details of how it works, but the code (with some comments referencing papers) can be found here: https://github.com/zeux/meshoptimizer/blob/master/src/simplifier.cpp
-
what is the size of a mesh vertex
hi! i am building a game engine with c and raylib and i want to use this library for optimizing meshes : https://github.com/zeux/meshoptimizer
-
Fast mesh decimation?
Have you considered this? https://github.com/zeux/meshoptimizer
What are some alternatives?
chip-8 - Yet another Chip-8 interpreter, but this time with a beautiful interface 💻
assimp - The official Open-Asset-Importer-Library Repository. Loads 40+ 3D-file-formats into one unified and clean data structure.
magnum - Lightweight and modular C++11 graphics middleware for games and data visualization
CGal - The public CGAL repository, see the README below
meshlab - The open source mesh processing system
Physically-based-deferred-shading - First attempt at writing a good looking 3D renderer. Written in C++ using OpenGL on Ubuntu.
Open3D - Open3D: A Modern Library for 3D Data Processing
Bplus.jl - A modern OpenGL 4.6 rendering framework, written in Julia.
PhysicsFS - PhysFS++ is a C++ wrapper for the PhysicsFS library.
stylized_snake_game - A cross-platform desktop stylized version of snake game made from scratch in C++/OpenGL.
draco - Draco is a library for compressing and decompressing 3D geometric meshes and point clouds. It is intended to improve the storage and transmission of 3D graphics.