Highly Detailed 3D Cities

Hey Modellers,

I’m honing in on a good workflow to create ultra-realistic models of existing buildings. The resulting meshes are quite nice visually, but come at a cost of high polygon count. Does anyone have good ideas on how to simplify them while preserving crucial architectural details?

Hi @mrhe

That’s really cool I immensely enjoyed the dinosaur destruction video.
You can use “reducemesh” command in rhino it tends to work really well. Just keep trying it and decide how much you can get away with. Make sure you save a copy of the originals first.

If you’re depending on a denser mesh for your explosions the lower mesh density might be noticeable.

RM

Thanks @3dsynergy!

I tried ReduceMesh but unfortunately it doesn’t preserve the details very well. This mesh initially had 1.5M tris, reducing it by 50% creates this mess.

Ouch that’s more destructive than your dinosaur, you could try a higher number like 87 percent then try going lower. Maybe try shrink wrap if you have V8.

In Unreal you could import and convert these meshes to nanite meshes than the polygon count wouldn’t matter.

RM

It seems like the ReduceMesh algorithm needs perfectly sharp edges to protect them. My geometry is very irregular and quite messy which probably trips the algo.

ShrinkWrap initially looked promising but to achieve the required level of detail I had to go with an even higher poly count. Reducing the resulting quad mesh produced even worse results than the original :person_facepalming:

There are lots of rectangular features, large and small, that can be represented with two triangles each, but they seem to be tessellated with an extremely high number of irregular triangles. Maybe the initial modelling process can be optimised?

Sure, but the whole point is that these 3d models are automatically generated by an Image to Mesh AI model. The input is a 2d image, the output is a dense 3d mesh. I’m trying to post-process the results to make them more usable downstream.

Then the automatic generation software is not very clever. Areas of zero curvature (flat) don’t need such an insanely dense tessellation. Maya has mesh reduction tools and there are polygon decimation plug-ins for Maya that collapse unnecessary vertices. Photogrammetry honchos I knew used Meshlab or Meshmixer to decimate super dense triangle meshes.

My condolences to the citizens of Wrocław :sob:. How about generating texture maps to control the mesh reduction? If you’re staying in Grasshopper, then Laurent Delrieu’s tools could probably help. But for a start, it would be easier to fiddle with maps generated in Substance Painter. I think in SP it’s possible to create a map that highlights edges to protect them from getting simplified. Well, maybe AI can generate it too…

You can mix edge mask with curvature mask, etc.

Interesting idea. Assuming I’d get such an edge mask, how would this work in practice? Does Rhino/GH have a mesh simplification tool taking a bitmap mask as a guide?

The AI tool spits out normal maps but they don’t look very promising out of the box…

I thought there was a slightly different toolset available. A mask would be useful, but only if TriRemesh accepted it as an input. I remember there were some talks on the forum about non-uniform triremeshing.

Another method (admittedly outside of Rhino) that might give you good results is using Decimate Mesh (Planar with angle limit) in Blender, using a very dense mesh as the source. With aggressive reduction, you might have some minor issues preserving clean vertex normals, but that should be pretty easy to fix.

Regarding your facades: are the surfaces that are supposed to be perfectly flat actually a bit wavy? My quick ReduceMesh tests in both Rhino and Blender gave good results in terms of preserving details while heavily reducing the mesh. However, those meshes were created from TriRemeshing NURBS geometry, so I suspect they don’t have that ‘noise’ in areas where the original geometry was very precise.

Use Atangeo Balancer nPro. The decimation is the best I have seen outside of Geomagic.

Unfortunately this is correct. The AI-generated mesh looks good from the distance but is quite messy upon closer inspection. I’ll see how Blender handles it.

Thanks! Will investigate. Never heard of this tool before.

@cdordoni Impressive program! Nice to know.

@cdordoni posted a very promising tool (already had a pleasure to fiddle with it a bit), but if you want to play with masks in Blender, Decimation also works with texture maps. It would be cool to have something like this in Grasshopper.


Actually, don’t bother making masks unless you are trying to do something very specific (as pictured above where dense triangulation is based on arbitrary decision). Decimation in Atangeo and in Blender works very well without it.

VIDEO


EDIT:

I forgot about this topic and interesting workflows:

This piece of software is amazing! By far the best triangulation results that I’ve seen so far:

1.5M tris:

0.25M tris (85% reduction)

Textures are also nicely preserved:

… and you cannot beat the cost.

Hi @cdordoni @mrhe

That’s an awesome mesh reduction tool much better than Rhinos.
I had this book marked and forgot about it thanks for suggesting it again.

Mariusz glad you were able to get such nice reduction for your project using Atangeo thanks for posting the results.

RM

I only just caught this pun. Made me laugh :slight_smile:

Hi @mrhe !

Out of curiosity, the website says the remeshing is extremely fast, but is that really the case? How long did it take to reduce 1.5 million faces? During the remeshing process, did you notice any GPU or CPU overload?

jmv

It is very fast, a 20 million face mesh takes roughly 2 - 3 minutes. A 1.5 million face mesh would be maybe 10 to 15 seconds. Reducing a mesh with textures takes somewhat longer as I recall but I have not reduced many of those to be more specific about how much longer.

It is a good question, but I haven’t watched the CPU & GPU usage.