renderStacks

⌘K
  1. Home
  2. Docs
  3. renderStacks
  4. Tutorials
  5. 5. ObjParams pmodifier and sub name

5. ObjParams pmodifier and sub name

ObjParams pmodifier allow you control almost all parameters on node/baseobject/modifier per pass. If a parameter is expose to Maxscript, you can control it.

This pmodifier is the first pmodifier which requires sub name to use. The colon[:] will be used to separate the main pmodifier type and sub name like ObjParams:LitMul. Essentially, this pmodifier allows you to make your own type of pmodifier for the each parameters you want to control.

Since you have to give sub name, you can only make the first ObjParams pmodifier using Tab menu.

  1. Load that file. Yes, “Load renderStacks_Tut_001.max “.
  2. Make 2 passes, “rOrg” and “rBig”.
  3. Select “rOrg” pass.
  4. Press Tab.
  5. Select “ObjParams”.
    You can see the top textbox says “Type_Subname”

  6. Try to add the pmodifier. You will get a warning.

  7. I told u. You need to give a sub name. Type a name there. How about, “radius”? Type “radius” and press Enter.
    As long as you only use alphabet and number, You can name sub name as whatever you want. There is no direct relationship between sub name and what it actually does. It is just a name. But, it is always good idea to name close to what it does.

  8. You can see the short name shows the sub name “radius” after colon [oP:radius].

  9. Right click tree view and select “Add pmodifier”.
    You can see the newly added ObjParams with “radius” sub name is added to list list.|

  10. Make sure to select the newly ObjParams:radius pmodifier is selected.
    You can see 2 empty dropdown. It is waiting to be told what to control.

  11. Select a teapot.
  12. Open the first dropdown.
    This dropdown allow you choose what you want to control. Therefore, the items in the list will be different depends on what you selected.
    There are 2 item always there, Node and baseObjcet.

    Node

    In 3ds Max SDK and Maxscript, a “Node” means a scene object. If you choose, “Node” you can control per object parameters like wireframe color and object ID. Many of node level parameters are actually have own dedicated pmodifiers like Parent, Transform and Material. Other than them, you can control node level parameters here.

    baseObject

    The item at the bottom of modifier stack is called baseobject. The creation parameters for a parametric object like Sphere and Teapot are in base object. Also all the lights and camera settings are in baseobject.

    If you select this, the parameter name drop down will show a common parameters of selected objects’ base object. For example, if you want to control radius of spheres and teapots, you should select “baseObject” and “radius”.
    I’ll talk about The 3rd option baseObject | Teapot later.

  13. Choose “baseObject”.
  14. Open 2nd dropdown.
    It shows all parameters of selected object, Teapot.
  15. Choose “radius”
  16. Right click the property list below dropdowns.
    It says “RIghtclick here to add Objects”

  17. Click Add/Edit
  18. The Available list will show any object which has “radius” parameter on baseObject.
    That’s why you can see not just teapots but also cylinder and torus.
  19. Click “Add All” button.
  20. ress “Set” button after all objects are added to “Selected” list.
    You can see selected objects are added in the list with current value.
    Also if you check dropdowns. they became unediable.
    Now this pmodifier is locked to use baseObject.radius. You can not change what to control until you remove all objects from the list.

  21.  Double click 30.1392 number in Teapot001 entry.
  22. Change value from 30.1392 to 50.0
  23. Switch back and forth bwwteen “rOrg” and “rBig”.
    You can see the radius of Teapot is changing.
  24. Select “ObjParams:radius_001” pmodifier in “rBig”.
  25. Select all entries. You can right click and click “Select All”.
  26. Right click and select “Multi Value Edit”.
  27. Multi Value Editor will popup.
    As the name tell you, it will allow you change the value of selected items at once.
    renderStacks will check the value of selected items and open this dialog only if the type of all selected objec

  28. Since the value is float, it shows a spinner. On the right side, there is a radio button for choose operation type. “=” means it will apply the value on the left as it. So, if you set the value as 50.0 and choose “=”, all items will have value 20.0.
    Let’s try set value to 50.0 and choose “=” and press “Set & Activate”.
    “Set & Activate” will set the value and activate the pass so you can check the result immediately. It is convenient. But, it might take come time to activate pass if a lot of pmodifier is there.
  29. Select only teapots
  30. input -10 and choose “+”.
  31. Press “Set $ Activate”.
    Radius for the teapots become 40. (50 – 10)
  32. Select all again.
  33. Type 1.2 and choose “x”.
    All object’s radius are reduced 20%.

This is the basic of ObjParams pmodifier and pmodifier with sub name. As og not ObjParams is the only pmodifier that requires sub name. But, there will be more pmodifier like this.

Lets try one more ObjParams.

  1. Let’s activate “rOrg” pass.
  2. Select “Teapot001″(Orange one) and “GeosText”(Geos text).
  3. Apply Bend modifier
  4. Set Angle to 60.0
  5. Add “ObjParams:Bend”.
    You should know how to do it. You just learn!
  6. if you know your property, you can also directly type in the dropdown.
    Type “Bend” and “enabled”
  7. Right click and click Add/Edit.
  8. Add both “Teapot001” and “GeosText” and press “Set”.
  9. Turn off both checkboxes.
  10. switch to “rBig” and back to “rOrg”.
    You can see Bend is disabled in “rOrg” pass.

That’s it. This is the end of the basic tutorial for renderStacks!

Thanks!