Rhino should never slow down again

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

8 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

2 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

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

Just curious. I’m not sure if this would be a viable option for you but have you considered or looked into using an architecture-based application (such as VisualARQ)?

I had never heard of it until now. I just checked it out, it looks. extremely interesting. If you are familiar with it, what can you personally tell me about it? Also, thanks!

Although I currently do not own a copy of it, I’ve been examining VisualARQ as it has been developing over the years. In my opinion, having used a few standalone architecture-based software applications, VisualARQ continues to introduce innovative features such as its latest addition incorporating Grasshopper to allow for the creation of unique organic structures and other more complex constructions that are not easily accomplished in most mainstream traditional architecture apps to date.

One other software application that is adopting this feature is Vectorworks Architect. They call it Marionette, but it’s primarily the same process which involves a series of node-based operations - each node containing its own set of attributes / operators which can be infinitely tweaked.

In my opinion, I think your workflow would greatly benefit from what VisualARQ has to offer. Only you will know if it’s right for what you will be using it for so I highly recommend downloading a trial version to see if it meets with your approval.

How do I keep this at the top of my bookmarks? This is the best thread I’ve read all week!

1 Like