<p>I am looking for algorithms to create meshlets from triangulated meshes.
I searched for articles, but could not find any.
Maybe &quot;meshlet&quot; is not the right term?</p>
<p>I want to cluster the faces to have a maximum number of vertices each (for example 64) and a nearly equal normal vector, and each face within a cluster should be close to each other. The reason for this is early clipping / culling to speed up my rendering.</p>
<p>I've tried to do it myself, but it's not as easy as it seems. I got &quot;bad&quot; looking results. On closer inspection I saw that many meshlets are very small. Probably because adjacent faces have already been grouped into other meshlets, or the normal vectors are too different.</p>
<p>It also doesn't seem easy to keep the normal vectors similar without ending up with meshlets that are too small.</p>
<p>Which algorithms can I use? And what advantages do they have (compared to other algorithms)?</p>
<p>Edit: It seems unclear what I mean by meshlets. So I'll explain what I'm trying to do:</p>
<p>I want to group the faces of a geometry into individual groups (meshlets). I don't want to increase the number of faces.... This is a preprocessing step that needs to be done once when loading the geometry. Each of the meshlets gets a bounding sphere for clipping tests, a normal vector with additional angle (normal vector cone) for culling tests. If geometry rendering is foreseen, clipping/culling tests are performed beforehand, along with a level of detail (LoD) test. During rendering, the results of the culling/clipping/LoD tests are loaded to finally render only the parts of the geometry that survived these tests.</p>
<p><a href="https://i.sstatic.net/nVndt.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/nVndt.png" alt="enter image description here" /></a></p>
<p><strong>Figure1</strong> <a href="https://metalbyexample.com/mesh-shaders/" rel="nofollow noreferrer">Image source</a>. This is an example of a result I am trying to achieve.</p>

CC BY-SA 4.0
2023-05-16T07:17:08.303Z
@YvesDaoust thanks for the hint. I've changed it :) I am sorry, english is not my mother tongue
Thomas
CC BY-SA 4.0
2023-05-16T07:27:08.147Z
@YvesDaoust One of the reasons I'm asking this question is to familiarize myself with mesh shaders. The bounding volume hierarchy would bring me to the same question (how to cluster)
Thomas
CC BY-SA 4.0
2023-05-16T07:38:32.227Z
I think together with **Figure1** it is reasonably clear what I am trying to achieve
Thomas
CC BY-SA 4.0
2023-05-16T14:11:44.327Z
https://github.com/zeux/meshoptimizer  Keep reading on this link, the Turing mesh info is near the bottom.  I think this question is outside the computer graphics scope so don't be surprised if it gets closed.
pmw1234
CC BY-SA 4.0
2023-05-16T14:28:12.717Z
https://developer.nvidia.com/blog/introduction-turing-mesh-shaders/ this has some info on creating the actual meshlets.
pmw1234
<computational-geometry><geometry>
looking for meshlet generation algorithms
Thomas
# looking for meshlet generation algorithms

(Asked by: username_0 on 2023-05-15)

I am looking for algorithms to create meshlets from triangulated meshes.
I searched for articles, but could not find any.
Maybe "meshlet" is not the right term?

I want to cluster the faces to have a maximum number of vertices each (for example 64) and a nearly equal normal vector, and each face within a cluster should be close to each other. The reason for this is early clipping / culling to speed up my rendering.

I've tried to do it myself, but it's not as easy as it seems. I got "bad" looking results. On closer inspection I saw that many meshlets are very small. Probably because adjacent faces have already been grouped into other meshlets, or the normal vectors are too different.

It also doesn't seem easy to keep the normal vectors similar without ending up with meshlets that are too small.

Which algorithms can I use? And what advantages do they have (compared to other algorithms)?

Edit: It seems unclear what I mean by meshlets. So I'll explain what I'm trying to do:

I want to group the faces of a geometry into individual groups (meshlets). I don't want to increase the number of faces.... This is a preprocessing step that needs to be done once when loading the geometry. Each of the meshlets gets a bounding sphere for clipping tests, a normal vector with additional angle (normal vector cone) for culling tests. If geometry rendering is foreseen, clipping/culling tests are performed beforehand, along with a level of detail (LoD) test. During rendering, the results of the culling/clipping/LoD tests are loaded to finally render only the parts of the geometry that survived these tests.

[![enter image description here](https://i.sstatic.net/nVndt.png)](https://i.sstatic.net/nVndt.png)

**Figure1** [Image source](https://metalbyexample.com/mesh-shaders/). This is an example of a result I am trying to achieve.

**Tags:** computational-geometry, geometry

> **Comments:**
> **username_0**: @YvesDaoust thanks for the hint. I've changed it :) I am sorry, english is not my mother tongue  
> **username_0**: @YvesDaoust One of the reasons I'm asking this question is to familiarize myself with mesh shaders. The bounding volume hierarchy would bring me to the same question (how to cluster)  
> **username_0**: I think together with **Figure1** it is reasonably clear what I am trying to achieve  
> **username_1**: https://github.com/zeux/meshoptimizer  Keep reading on this link, the Turing mesh info is near the bottom.  I think this question is outside the computer graphics scope so don't be surprised if it gets closed.  
> **username_1**: https://developer.nvidia.com/blog/introduction-turing-mesh-shaders/ this has some info on creating the actual meshlets.  

---

## 0 answers

