Dense mesh landscapes very slow in Rhino

Hi there,

I’m trying to manage large meshes for landscape work. The mesh has anywhere from 150,000- 600,000 points. Meshes are quad-remeshed with edge lengths of 0.2m, 0.25m or 0.5m, trying to balance accuracy with computer performance. SoftTransform is used frequently.

I am trying to figure out why Rhino seems to struggle significantly with speed when handling larger meshes. For example, working with that same mesh in Blender seems to be quicker in terms of vertex movement etc. I use wireframe for both softwares. Unfortunately, blender doesn’t have grasshopper etc, and is thus limited for my purposes.

I had a landscape designer software from 2006 which dealt with large landscapes at ~1m grid intervals. Unfortunately, it cannot be used for serious work applications.
I think that perhaps it was fast for possibly 2 reasons.

  1. The vertex grid could be adjusted in the Z axis only. It probably didn’t need to calculate X and Y adjustments as the grid was fixed.
  2. It may have had a processing engine which optimised performance to what the camera sees only.

Q1 Is there a type of Rhino grid mesh that works only in the Z axis to improve performance for large surfaces?
Q2 Is there a way to be able to handle large landscape meshes efficiently and accurately without it being slow? I don’t know if these quad meshes can be make to work faster.
Q3 is there a perhaps a way to take an existing high res mesh and accurately approximate it with a SubD geometry which offers similar editing accuracy, but greater performance?

I love Love rhino to bits, but this slow performance on a powerful computer (i9 14900k) for a mesh is making work progress very difficult.

-Jeremy

You can try _ReduceMesh

1 Like

Hi Martin, thanks for the reply.

ReduceMesh seems to be quite useful. Natively, does ReduceMesh preserve greater face count density in areas which have high frequency of slope change? and the inverse; it reduces mesh density in areas which have less slope change?

Is there a way to densify a mesh in certain areas; sort of the opposite of ReduceMesh? For example, later on, I might need to add more verteces in areas where finite details are required.

-Jeremy

In Grasshopper there’s a component called RemeshByColor…. Could be useful

1 Like

I will check this out, thank you :slight_smile:

Was this in relation to ReduceMesh? Or the idea of increasing intensity in low intensity areas?

-Jeremy

It can be used for both things.

You can see high density on the head, medium density on the body and coarse in the crotch.

1 Like

Is there any command within rhino itself where you can be asked to select or brush areas where you want to increase mesh density?

-Jeremy

What you’re looking for can be found in programs like Zbrush, Blender, and 3DCoat, which are made for 3D sculpting. A guy is working on scripts for sculpting some Zbrush brushes, but it’s still in the early stages. However, look here, I tested them, and they work.

1 Like

May I ask how did you configure the input to RemeshByColor to achieve the high density on the head, and lower elsewhere?

I’m thinking of how this could be paramaterised over a large landscape; and the faces recoloured from black to white as an input to that component.

I think that somehow, I would need to measure frequency of slope change; for example, if a landscape area had many small hills, vs a large area with continuous slope. The small hills have more detail in slope change, hence they would benefit from more mesh faces.

I think a way to define that ‘frequency of change’ could involve taking a localised group of say 9 adjacent mesh faces, and measuring the total magnitude of both how much each face normal deviates from the average, both against the Z-axis, and the XY plane in radians. I’m not sure if this makes sense.. just somehow measuring aberrations at a small level can determine a colour gradient map to feed the RemeshByColour component.

I used points and a distance threshold to define vertex colors from black to white. The resulting black to white color gradient is the important input for Remesh by Color.

You could also use mesh curvature to extract zones of higher detail. Many options

Look at this topic:

Adaptive TriRemesh? - Grasshopper - McNeel Forum

1 Like

If Martin’s suggestion does not work for you, you can also try Blancer nPro

While its not free, it is low cost and does an amazing job using the tolerance setting to preserve small detail.

1 Like