Teague Scene Checker

 

Download TeagueSceneChecker v1.08

TeagueSceneChecker_UI

 Change Log:

1.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

1.03

  • 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

#WARN

  • 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:

Before:

Scene Before

 

 

 

 

 


After:

Scene After

 

 

 

 

 

 

 

Documentation

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.

TeagueSceneChecker_Doc1

 

 

 

 

 

 

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

)

All done!

The function for adding problems to the dialog are as follows:

fn addProblem <theType> <ID> <Message> objs:<Objects/Materials Array>

Parameters:

<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.

Cheers,
Colin

29 thoughts on “Teague Scene Checker

  1. wilsimar

    good, very good.. thankyou. Please add scan materials with missing bitmaps on scene, missing plugins.

    *****

  2. FD

    Hi Colin,

    When running the script, I get this error:

    “MAXScript Rollout Handler Exception
    — Type error: getClassInstances requires MAXClass, got: undefined”

    I’m using Max Design 2009, x64 (with SP1 and other hotfixes!) on Windows 7

    Best regards,
    FD

  3. Colin Post author

    Can you give me the line number it’s crashing on? I suspect you don’t have V-Ray installed?
    Email me: colin.senner(at)gmail(dot)com, for swifter responses.

    -Colin

  4. Kiran_1979_99

    Hi Colin.

    When running the Teague Scene Checker script, I get this error:

    “MAXScript Rollout Handler Exception
    – Type error: getClassInstances requires MAXClass, got: undefined”

    I’m using 3ds Max2010, x64 (with SP1 and other hotfixes!) on WindowsXP 64

    If there any solution for this. Pl letme know.

    Best regards,

    kiran……

  5. Anand

    Hi,

    I am using 3ds max 2011 x64, its not showing any thing, it only says no problems found. But i have VrayfastSSS and displacement is on, on some of the materials, why is not reporting anything?

    Can you reply me back?

  6. nitav

    want it anyhow but note working.
    downloaded from your website, latest version Teague Scene Checker V.1.02, today. but getting error :
    – Type error: getClassInstances requires MAXClass, got: undefined”
    also tried to open it by admistrator than also same error.
    pls do something. I am hardly waiting.

  7. Kris

    Thanks for this great plugin!

    While it works fine with the adv version, it seems not to recognize vray edu as I still get “info:: !!! V-Ray is NOT the current renderer” message on this particular machine (Teague 1.03 on V-Ray Edu 2.20.03) installed, would be great if this would be possible to fix…

  8. Colin Post author

    Kris, I wasn’t aware this might be an issue, do me a favor and run this line in the listener and tell me what the output is please:

    [code]
    print (renderers.current)
    [/code]

  9. pep

    Thank you very much again Colin.

    One “issue”, it detects “Architectural material” so i select these objects and delete it, but still when hitting Scan again is showing the “Architectural mat”, there is not in the scene since i deleted (and can see this through material editor > scene materials)

    best regards

  10. Colin Post author

    I think it’s probably because it’s still loaded in your material editor. Reset your material editor slots and see if that fixes it. Max considers things loaded in the material editor still in the scene, even if they aren’t assigned to any objects. Let me know.

  11. Kris

    Hey Colin

    here is the answer from listener

    print (renderers.current)
    V_Ray_Edu_2_20_03:V_Ray_Edu_2_20_03
    V_Ray_Edu_2_20_03:V_Ray_Edu_2_20_03

  12. cactusfloyd

    Thanks a lot man! this script is VERY useful and saves a lot of time. Sometimes you get models from anyone else and some numbers are ridiculous!!
    Thanks a lot for your time and for sharing, you rock!!

  13. Roman

    Thanks a lot!

    I have a suggestion to add important thing to your script.
    It is a #Critical type of situation: when you use Multiscatter and objects to distribute with NormapBump. It is always crash scene when its rendering.

    I hope I`ve written it right.

Leave a Reply

Your email address will not be published. Required fields are marked *

*