When you have a lot of objects in a scene and you want to utilize Vray’s subdivision flag, it can be time consuming to go through the whole lot and flag each one by one.
So here’s a quick mel script to help out.
Select all your objects you want flagged as Subdiv and then run this in the script editor:
$selected = `ls -sl -l`;
for ($i=0;$i < size($selected);$i++)
{
$selShape = `listRelatives -shapes $selected[$i]`;
$selFullPath = ($selected[$i]+”|”+$selShape[
vrayAddAttr $selFullPath vraySubdivEnable;vrayAddAttr $selFullPath vraySubdivUVsAtBorders;
//print ($selFullPath+”\n”);
}
(Update/Edit : If you find the code throwing you an error like this:
// Error: $selFullPath = ($selected[$i]+”|”+$selShape[0]);
//
// Error: Syntax error //
You need to change the quote marks ( ”|” )
Just select them and retype. You can thank wordpress text formatting for that.)
You can then set your globals subdiv to be lower (like 6 instead of 256) and flag the important ones to be higher if needed.
There isn’t a good rule of thumb for how much to subD. It’s based a lot on how close you get to camera and how dense the geo was to start with.
In the event you’re using a displacement map, you’ll want to push this up higher. I find somewhere around the 40-50 gets me where I need to be without breaking my rendering bank. Again, in the event I need to scrap the paint via camera move I may start pushing this up. I will however say, I’ve found that a lot of ”my renders are really slow” come from people flagging the subD on their models and leaving it at default. Again, if 90% of my scene needs a 4-6 subD, I’ll go into the other 10% and give it an override flag, bringing it up to the minimum level to look good.
This script might be really useful but there’s an error on line 11 that is:
// Error: $selFullPath = ($selected[$i]+”|”+$selShape[0]);
//
// Error: Line 11.31: Syntax error //
I know little of MEL scripting so i can’t find the error.
You need to change the quote marks ( ”|” )
Just select them and retype. You can thank wordpress text formatting for that.)