Moving large mesh - speed up possibilities?


#1

Hello all,

I am aware of the fact that there are some issues with display speed for consumer GPUs vs pro cards.
My issue is with moving a large (around 5M polys) mesh. The display performance is fine, but when transforming the mesh there is a nasty delay of a couple of seconds. Is there a way to reduce or eliminate it?

I’ve turned of “shade-highlight selected meshes” which is a total life saver for my eyes since now i can at least still see the mesh i’m transforming. The performance while moving is still pretty bad, maybe the reason is that a wireframe ‘shadow’ stays behind until the drag action is finished. Is there a way to disable it?

Thanks in advance for any help,
Cheers,
Adam


#2

Hi Adam,

by default Rhino shows the objects while it is moving them, which can be slow with many objects. You might try to paste below script in a new toolbar button to move objects (point to point) without showing them.

-_Runscript (
Option Explicit

Call MoveObjsPt2Pt()
Sub MoveObjsPt2Pt()
	
	Dim msg, arrObjs, arrFrom, arrTo

	msg = "Select objects to move"
	arrObjs = Rhino.GetObjects(msg,, True, True, True)
	If Not IsArray(arrObjs) Then Exit Sub
	
	arrFrom = Rhino.GetPoint("Point to move from")
	If IsNull(arrFrom) Then Exit Sub

	arrTo = Rhino.GetPoint("Point to move to", arrFrom)
	If IsNull(arrTo) Then Exit Sub

	Rhino.EnableRedraw False
	Rhino.MoveObjects arrObjs, arrFrom, arrTo
	Rhino.EnableRedraw True

End Sub
)

any better ?

c.


#3

works pretty well, thanks…I still miss seeing the object though, mainly because i use big meshes in rapid prototyping and orienting them in my build volume with rhino. Seeing the mesh helps with collision prevention.
Nevertheless I will use that script a lot :smile:


#4

You might be interested in BBox Display available in the _DisplayProperties. It may help to speed up navigation too. I agree something like this during command use would be an useful addition to Rhino’s default settings…

c.


#5

Clem this is great, something that anyone working with large data sets would benefit from. It doesn’t speed up the actual move of course, but eliminating that initial choppiness due to screen lag is definitely a great feature. Can you modify or make another couple versions that would allow for all the standard transformations: copy, rotation, orient 2point, orient 3pt, mirror, etc?
@pascal maybe this is a feature request too? :smile:
This is yet another one of the many ‘little’ things that would increase efficiency/productivity overall for people working with huge geometry on a regular basis.


#6

Adam, one other idea came to my mind later which might suit your problem better.You can create a custom display mode which uses a permanent bounding box.

then assign it using _SetObjectDisplayMode. I´ve found this is a bit faster than the script posted above, but it shows the geometry in place once it is moved…

c.


#7

cool, I wasn’t aware that you can change the display mode for a single object. I might create a script that assigns a dynamic BBox mode to all meshes say >1M polys so even standard display with huge meshes works faster.

thanks


(Pascal Golay) #8

Hi Carvecream - so the request is to respect BBox display during transforms… correct?

-Pascal


#9

I second that motion!

Maybe you could also include transform actions in view changes so:
Dynamic display -> Dynamic appearance -> “Only display during view changes” for BBox is triggered on transform.


#10

@pascal and @adam, this would be helpful !

c.