# Virtually Geometric

**URL:** <https://discourse.threejs.org/t/virtually-geometric/28420>\
**Category:** Showcase\
**Tags:** lod, geometry\
**Created:** [July 28, 2021, 6:26am UTC](https://discourse.threejs.org/t/virtually-geometric/28420 "2021-07-28T06:26:20Z")\
**Posts on this page:** 1\
**Showing post:** 19

<div class="post-metadata">

**Author:** ![Usnul](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/usnul/32/2355_2.png) [@Usnul](https://discourse.threejs.org/u/Usnul)\
**Post date:** [November 21, 2022, 9:15pm UTC](https://discourse.threejs.org/t/virtually-geometric/28420/19 "2022-11-21T21:15:22Z")

</div>

hey guys, here’s a [live link](http://server1.company-named.com/tests/micron_lucy_2022_08_05/)

[![image](https://canada1.discourse-cdn.com/flex035/uploads/threejs/original/3X/7/4/74013c259b92ceda34ab687fddc0ac70c6c1c4c0.jpeg)](http://server1.company-named.com/tests/micron_lucy_2022_08_05/)

Here’s [another version](http://server1.lazy-kitty.com/tests/micron_lucy_debug_2022_08_05/) of the same thing with patches colored with random colors to help visualize the technique.

[![image](https://canada1.discourse-cdn.com/flex035/uploads/threejs/original/3X/0/b/0ba031effa7847bbbe4627ed36bbb5f24101ed06.jpeg)](http://server1.lazy-kitty.com/tests/micron_lucy_debug_2022_08_05/)

What you see there is a grid of 100x100 angel statues, each 100,000 polygons for a total of exactly 1 billion triangles. I thought it should be enough to prove my point.

main things that have changed since last time I talked about this:

- much better performance
- removed a few limitations, such as supported source maximum geometry size
- full support for all three.js materials

There are some goodies under the hood in there as well, such as:

- accelerated raycasting for free basically, because there’s already a spatially partitioned hierarchy. You get same performacne as with a great quality BVH, but without having to build that separately.
- export of any mesh simplification LOD. You input number of triangles in the desired output mesh - and we get a hierarchy cut that satisfies this constraint. Super fast too.
- used the above, building discrete LOD proxies for a mesh. Say you don’t want to actually use the entire Micron (my Virtual Geometry solution name) rendering stack - you can quickly build any number of LODs from the micron representation. When I say - I mean linear speed with respect to output size, it’s about as fast as you can write to memory 🙂
- support of custom geometry attributes
- automatic normal, uv and tangent compression. This is something Unreal’s nanite does as well, for vast majority of meshes - it’s able to reduce normals memory requirements from 12 bytes per vertex, down to just 3 bytes, for UVs and tangents it’s similar. Not that Micron meshes were heavy to begin with, but with this they are around ~30 lighter as well as taking less GPU ram (~40-50% typically) and rendering faster.

Overall it’s hard to compete with C++, threads and native graphics API that has bindless resources as well as compute shaders. But you can get pretty far even with what we have in browser today 🙂

PS:  
please note that this still is _not_ an open-source project

---

_[View the full topic](https://discourse.threejs.org/t/virtually-geometric/28420)._
