Rhino should never slow down again

Hello Rhino users, I am very thankful to finally meet a group that can help me.

I am an architect, I create renders for architecture firms through maxwell render. All modeling is done in rhino.
I am CONSTANTLY, CONSTANTLY, CONSTANTLY FIGHTING for every single little bit of space i can hold onto in rhino.
I have tried blocks, I have tried meshes, But the problems are vast and endless.

If i make a mesh, and need to apply a texture to it, i need to explode the mesh. Same for Blocks.
I end up simply leaving everything in surface/polysurfaces and work from there but it ALWAYS, always, always slows down.

I HAVE 64 MB MEMORY on my computer. I have an 3930 i7. A gtx 980 TI. I have a 4,000$ computer build.

and yet, As soon as my file grows to about 60 mb in rhino, It slows, drastically, horrifically.

It slows down my workflow, my day, it frustrates me to no end, by the time my model is semi-complete I am in the 500 mb levels, to which i have to wait 2 minutes between clicks.

I am asking, is there a way that rhino can be supercharged to run seamlessly? Does it need a render farm with dozens of powerful graphics cards? Does it need a 20 thousand dollar XEON processor?

I deal with houses, apartment complexes, so If i could have a library where i could just drag and drop- it would make my life much easier and workflow much faster.

I have much more to say and ask, but I will end now before anyone feelā€™s like thier reading the illiad. thank you.

any feedback is very much appreciated.

1 Like

Hi Norvik-

What slows, exactly? Rendering? If so, what renderer are you using? Is it general display performance in the viewort? Do modeling operations become slow?

-Pascal

Iā€™d start off disabling isocurves display from object proporties.

First of all, a very very very much appreciation filled thank you, for your quick response.
Now. To business.

My rendering is done in maxwell, it is slow, but I understand why and I have 64 MB Ram, So i start about 5-6 3k by 1.5k renders and come back in the morning to a good 15-16 sl, and iā€™m not worried. Maxwell has multilight, decent renderings, texturing, Iā€™m alright.

Its the modeling, that is unbearable. Its the file size that shoots way out of control.
I know about viewport displays, I work in wireframe, sure. BUT YOU CAN"T ALWAYS WORK IN WIREFRAME. sometimes, when it gets close to send the render- You need to work in rendered view. To see your applied textures, to see everything clearly. And i could understand a little slowdown, but this is, its literally unworkable.

A huge, huge huge aspect I would like to get help with, is this importing of objects from 3D Warehouse,
I am an architect, I visualize these buildings for clients. I am in need of tables, desks, chairs, lamps and knick knacks of the sort. I have already forgotten about rendering people into my scene because photoshop makes it easier in post production. But when i bring in a car from 3dWarehouse for example, and suddenly its 150 mb. Rhino grinds to a halt, it drops itā€™s anchors and buries its heels and its engine explodes.

Should I brute force my machine by investing 20k into xeon processors and graphics cards?
Why are these programs so faulty and difficult to actually recognize a streamlined workflow?
Sketch up is capable of renders with maxwell, but Iā€™ve heard rhino is actually more flexible, and I need that flexibility, JUST IN CASE.

If i get help with my workflow, I could go home for dinner every night. As of Now. I am at the mercy of rhino, my processor, my computer deciding when and where it damn well pleases to give me what iā€™ve been asking it to do for days.

WHAT SLOWS EXACTLY IS THE REACTION OF THE MODEL. WHEN I CLICK ON SOMETHING, IF I CLICK ON A POLYSURFACE, it WIll take it 30 seconds to Highlight. If i attempt to Move it, It will take 2 minutes until it moves it anywhere. Copy pasting is risk to crashing it, Once the model grows to over 100MB, it becomes unbearable.

ā€¦ I already know about using blocks. I use them, plenty. I know about meshes.

Ideally I would like to be able to use rhino in rendered mode, live. Modeling in that viewport, while bringing in and dragging dropping anything I needed from 3D warehouse.com with no problem.

It sounds like a distant impossible thing to me right now, if all i need to do to achieve that is invest money into supercharging my workhorse computer, building a new one, Then so be it, But i need to know if that will actually be a feasable option.

Hi Norvik - Iā€™ll take a wild guess that there may be masses of Maxwell user data piling upā€¦ can you please try saving a copy of the file with no plug-in data and see if size and general behavior are back to a manageable state? This is not a solution, more of a testā€¦ since it will remove all the Maxwell stuff:

-SaveAs SavePlugInData=No

(note the dash ā€œ-ā€ before the command)

-Pascal

I canā€™t believe you responded so quick!

I will do that right away and let you know asap.

Also, How about I send you the file?

It took off about 4 MB.

I found, that an imported car I brought in from 3D warehouse, was 150 MB.

I can delete that, But I need that.
I can use less detailed car figures, but then my renders suffer realism.
Also, Why is it when I import from 3d Warehouse ( which i understand its more suited for sketchup files )

why do some of them lose thier texture? and some donā€™t?

These are all questions that Iā€™ve been piling up over the past year of working through gritted teeth and late nights, I have had no one to seek answers from. I thank you again, very very much.

Is there a limit to how much big of a file Rhino it itself can handle? If i hooked up rhino to a million dollar computer, could it hypothetically run a 10 gig file?

Thank you.

Ah, ok- if you are using skp filesā€¦ depending on how these are made they can be massive when imported to Rhino. If you can find suitable files that are in OBJ format, that might work somewhat, or even a lot, better. But heavily detailed files will tend to be large no matter what.

-Pascal

Fair enough,

Understandable.

Should I resort to simply trying another program, if there is any more fine-tuned to what Iā€™m seeking?
Or should I resort to investing into upgrades of gpu/cpu

@Jarek - can you offer any tips n tricks here? I guess you manage quite detailed and complex architectural scenes in Rhino for renderingā€¦ What format files do you use for ā€˜propsā€™ like cars? I bet they are not 150MBā€¦

thanks,

-Pascal

Hi @Mun144, @pascal,

It is a broad subject and I could write an Illiad, too, but will try to throw some ideas and concepts out there hoping they will help. I deal with quite complex architectural models populated with entourage elements inside Rhino on a daily basis and it is definitely workable is a seamless way, in rendered mode, as long as you understand what slows you down and what tricks you can use to speed things up.

Your system specs are more than enough, I work on similar spec workstation. You can bog down any supercomputer easily with overly complex entourage models or the way your models are built, in general, so no need to spend extra $$.

  1. the file size is not always relevant when it comes to speed. Especially if you work with blocks. You can have a very small file with 50,000 copies of same block definition and it will be very slow because of number of objects, and also a large file that has just a few complex joined mesh objects that will perform super fast.

  2. In rendered mode, Shadows and Skylight will slow things down quite a bit, so dont use them (make a separate display mode for that look)

  3. As mentioned above, the NUMBER of objects in the scene is what slows things down the most in my experience. I bet under the hood it is due to the fact that each object has a lot of properties associated with it that need to be handled separately. So whenever you can, especially when dealing with meshes imported from 3DWarehouse, try joining (_Join) the meshes into single objects, of join them per layer or material, so instead of blocks that consist of 1000ā€™s of exploded individual faces, you actually have 5-10 meshes that represent the materials. If you need to edit the joined mesh, you dont need to always explode it - commands like _ExtractMeshPart, _SplitDisjointMesh and _ExtractMeshFaces are doing pretty good job with this workflow.

Try an experiment - get your heavy scene, select all, run _ExtractRenderMesh command, delete original objects (they stay selected) and run _Join command. You should see a drastic speed increase. Of course you canā€™t do it with the entire scene, but maybe parts of your buildings (i.e. all mullions, glass, etc). You can always keep your original more editable nurbs versions in a separate file. In scenes with a lot of detailed buildings, you can keep each of the detailed nurbs models in a separate file that has a corresponding joined meshed version and plug them into your main scene using Insert Block with ā€œlinkā€ option (instead of embed), to keep your file size smaller.

  1. When it comes to entourage elements, definitely blocks are way to go. As mentioned above, you still want as small number of exploded faces in the block as possible, so it may take some cleanup of often crappy 3DWarehouse imports. I have seen models of a city block where the heaviest part of the model that was slowing things down was a nice tiny single shrub someone carelessly brought from 3DWarehouse.
    So when you create your blocks, it may be a good idea to create a ā€˜lightā€™ version of the block. Use ReduceMesh command for that, or simply delete some not critical detais. You can work with the ā€˜lightā€™ blocks while modeling, and then replace them at the end before rendering with your detailed ones. With few blocks, you can do it manually using ReplaceBlock command, with tons of them, you can come up with a naming convention (ā€œCar150ā€ vs ā€œCar150ā€“lightā€) and use the script I shared in this thread to mass-replace them all: Wish: viewport proxies for blocks

I am not Maxwell user, but assume all modern-day render engines have some sort of Proxy object / Instances system. The way it works is the detailed mesh geometry is saved as external reference file and only a simple representation (point, bounding box, reduced face count model) are used in the model vport - and the full geometry is loaded only during rendering time. Most useful for entourage elements (think: convert your 150 MB car to a proxy object - then you should be able to place 100s of them not decreasing the vport speed or render time) but also you can make more complex part of your scene into proxies (i.e. if you have many copies of the same apartment building in your master plan model, etc.).

  1. Take advantage of the nested layer system to keep your model well organized. No matter how complex the model is, the ability to quickly eliminate the parts of your scene that are not relevant to what you are currently modeling is critical.

  2. Use clipping planes - sometimes it may be a helpful trick to use several clipping planes that act as a ā€˜clipping boxā€™ to clip out the non-relevant parts of your model or to let you see of work on some interior part of your model without hiding objects or layers. You should see some speed gains by doing that, too.

There is probably more concepts that donā€™t come to my mind right now, but hope the above can get you started with adjusting your workflow and organizing your models in Rhino.

Good luck, and keep asking if you have any more specific questions.

ā€“jarek

9 Likes

Just to clarify on imported models, whether via SKP or OBJ - in the end, you always end up with meshes and it will be up to you to clean them up to do the job you need. It is hard to expect nice and clean models coming from random sources and other software, especially from amateur free models that come from 3DWarehouse. You would probably have more luck with commercial libraries that come from TurboSquid or other content developers like Evermotion or Dosch Design.

Having said that, when you bring SKP models into Rhino, they are a mess, 99% of the time, that you have to invest some time to control. Hopefully over time you will build you own clean library that will not requite to pull and cleanup items for every new project. So - use ExplodeBlocks command to get rid of the nested blocks in SKP fille. Also, use _Purge command often to get rid of any unused block definitions, materials, groups, etc. Especially when bringing these models in. Depending on the way you import them, often these model would come in exploded, with each face being a separate object. This is terrible and will slow you down greatly. You have to take time and join them in a way that makes sense, as mentioned above. Some other mesh processing commands that you should look into are: Weld, Unweld, RebuildMeshNormals, UnifyMeshNormals, AlignMeshVerticesā€¦

hth,

ā€“jarek

3 Likes

Great, thanks Jarek -

a couple of shots of ā€˜wine dark seaā€™ in there, just for atmosphere, and you should be set.

-Pascal

:wink: Itā€™s my Homer day, I guess. Just wrote the Odyssey in another postā€¦

-j

Thank you everyone.
I feel like a homeless man who just found a 100 dollars on the ground.
I am now in the disbelief moments of holding this, looking at it over and over.
Thank you, I will use your advice to tame this rhino until it stops crashing itself into the ground.
Thank you.

If i could buy you guys beers or something to repay you all for your help i would!

My Best,

Norvik.

Norvik

If you could send us one of those models, we could investigate exactly what is causing the slowness.

Andy

You have 64GB of memory, correct? Just a note: until you actually raytrace, fast quads such as the 6700k are still quite fast for design/CAD.

Anyway, perhaps you could check/lower the rendering mesh quality, you can force a lower mesh quality for things in the background.

It might help to make sure your minimum number of undos is reasonable, and make sure your Dynamic redraw is set to something like 16-24FPS, so it will force degradation.

Hi Norvik,
One thing that will gain you memory and performance is to use work sessions. Split your file up into parts that are logical for you then you can turn on them and off easier, I also found this to be the only way to speed up and use all ram but you donā€™t get much more speed you get more memory for geometry.
Also blocks are ok but I think they raise memory and slow down performance because of the transform matrix associated with each block at least that was the case maybe not now, low poly meshes are the best way to really speed up the process.

Ok having said all that I think you are most likely hitting the wall with Rhino and should try 3dsmax for what you are doing.
Youā€™ll get rendering with many more options, (one important one is to use render network which allows any machine to become a render mode and help in the process) and all the entourage and 3dobjects and libraries etc. are all there and really well supported. Also your get great animation, water out of the box with no plugins, there is so much great stuff in this field for max.

Many people I know use max for architectural vis and Rhino and other programs to build but not to render larger projects.
RM

1 Like

Also, Roland, check LimitReferenceModel if you have not - you can keep files attached but throw away, temporarily, the stuff not in the area you are working on. The downside is you need to wait while all the files reload into memory when you turn off or change limiting.

-Pascal

1 Like

Wow Cool Pascal I didnā€™t know of that command, now thatā€™s something should be talked about.
Thanks for the tip,
RM