Download TeagueSceneChecker v1.08
- I’m bad at remembering to update the previous version’s changelog
- Added subdivs printout on high subdivs values for lights and materials
- Only show 1 instance of each light type
- Info: Filter maps – Filter maps for GI being off
- Info: Some bitmaps have filtering disabled or set low (<.25)
- Info: Some bitmaps not having pyramidal filtering on
- Fixed the issue with Max 2009/2010, I originally reported this fixed in version 1.02, but verified it was not completely fixed. It is now. Apologies.
- Random fix when V-Ray is not the default renderer.
Note: The file when downloaded should be TeagueSceneChecker v1.#.mzp (NOT ZIP, IExplorer makes it a Zip file)
INSTALLATION: In 3dsMax, goto MAXScript -> Run Script, and run the file you downloaded above “TeagueSceneChecker v1.0.mzp“
Teague Scene Checker (for V-Ray) is a script that checks your scene for known error causing problems with V-Ray as well as informs you of some things that are happening in your scene. The script currently checks for the following things and informs you so you can optimize the scene.
After numerous scenes with outrageous render times Teague decided to invest in a simple, easy-to-use tool to eliminate problems for its artists.
#INFO (These are just useful information to know, not really problems, just want to be aware of some of them)
- V-Ray fur object is in the scene
- V-Ray material has “Use Interpolation” on (Problematic for animation
- V-Ray light material has direct light on (can be problematic if there are a large number of faces on the object)
- Irradiance Map/LC Not set
- “Use Light Cache for glossy rays” is off
- Dynamic memory limit set very low
- VRayDisplacementMod is applied to objects
- VRayCarPaintMtl in the scene
- VRayFastSSS/2 materials in the scene
- Detects if you are using Linear Workflow and makes sure you have gamma 2.2 and “Don’t affect colors” (There are valid reasons to not have this ticked, but you already know that if you aren’t ticking it)
- Detail Enhancement is on in the Irradiance Map
- V-Ray material(s) with more than 32 subdivisions
- V-Ray light with high subdivisions (>24) found
- Architectural material found in the scene
- Autodesk_Generic material found in the scene (I’ve have lots of problems with this one. They are created automatically when importing geometry from Rhino)
#CRITICAL (Usually show stopping errors for V-Ray, crashes and the like or heavily un-optimized things that can skyrocket render times)
- Standard lights found without “VRayShadow” or “VRayShadowMap” for their shadow generator
- V-Ray material with “Use Irradiance Map” off (This thing along is why this script was written. I absolutely hate this, it has cost me so many hours figuring it out)
- Raytrace map found
- Mental Ray lights that are found and unsupported
The Script’s interface is simple. In the Messages window it shows the info/warnings/critical errors in the scene. In the “Objects/Materials” window, it identifies what objects have the problems being referenced allowing you to easily change and tweak them.
The results of a scene optimization are as follows:
If you’d like to extend the script’s functionality, here are the functions you can use and how they work:
Find the function “checkForProblems()”, it’s located on line 113 in version 1.0.
The /**** INFO *****/ heading is at the top which proceeds all #info types.
To add a problem of your own (Let’s say, informing the user of a VRayHairMtl in your scene), here’s how you do it.
Somewhere in the “Info” section of the function above (fn checkForProblems) let’s make a new variable to find all the VRayHairMtls in the scene. There are plenty of ways to do it, but let’s just use getClassInstances() for now
local VRayHairMtlsInScene = getClassInstances VRayHairMtl
Now, let’s see if there were any. getClassInstances returns an array that we can check the number of elements in the array with the count property.
if VRayHairMtlsInScene.count != 0 then (
addProblem #info #VRayHairMtls “VRayHairMtls are in your scene” objs:VRayHairMtlsInScene
The function for adding problems to the dialog are as follows:
fn addProblem <theType> <ID> <Message> objs:<Objects/Materials Array>
<theType> : Just a reference type, can be anything, it is put at the beginning of the message
<ID> : a unique ID, not currently used, but for filtering things at a later date if necessary
<Message> : The message displayed in the window, of type string
objs:<Objects/Materials Array> : This is an optional parameter that will populate the list to the right allowing the user to select objects/materials. Pass it an Array.
There is one more function for filtering objects of type to find the dependents (Like in the case of the Raytrace Map), which you would want to show the user what materials depend on the raytrace map. For this we need to use a custom function: getDependentsOfType
Check the problem checking regarding the Raytrace Map for more info on more advanced filtering.