Itoo Software Forum

Author Topic: Adjusting materials -- questions and suggestions  (Read 610 times)

QE2393

  • Newbie
  • *
  • Posts: 21
Adjusting materials -- questions and suggestions
« on: August 29, 2015, 06:10:54 PM »
I find it tedious to adjust materials when I have a forestpack object with multiple types of geometry.  Below are a list of questions -- and if they don't have easy answers, then I would like to request improvements to make material handling faster and easier.

1. Is there a way to turn off the Forest Color Override feature in ALL materials for the selected object?  Sometimes I want to universally tint an object and I'd rather not dig through all the multi sub materials and turn off the Override switch.   

2. I would like a way to tint each type of geometry within a forest pack object individually.  This is possible now if you dig into the material editor and adjust all the Forest Color overrides manually -- but it can be time-consuming.  I would prefer if the main Forest Pack rollout had the option to do tinting globally (as it does now to all geometry -- AND also had the ability to tint each type of geometry individually.  It would be nice if the control was more centralized so digging through the individual sub-materials isn't necessary.  (This functionality would be much more useful if the idea in #1 was implemented as well).

iToo

  • Administrator
  • Hero Member
  • *****
  • Posts: 3315
    • iToo Software
Re: Adjusting materials -- questions and suggestions
« Reply #1 on: August 30, 2015, 09:51:06 AM »
1. No, unfortunately there is not any option to modify "Override" globally, but it can be done using Maxscript. The following script turns it off for the selected object:

Code: [Select]

fn FCProcessMaterial mat =
(
local i
if mat == undefined then
return 0
-- multi-material
for i = 1 to (getNumSubMtls mat) do
FCProcessMaterial (getSubMtl mat i)
-- simple material
for i = 1 to (getNumSubTexMaps mat) do
(
local tex = getSubTexMap mat i
if (tex != undefined) and (classof tex == Forest_Color) then
tex.override = false
)
)

fn FCTurnOffOverride fo =
(
if (classof fo != Forest_Pro) and (classof fo != Forest_Lite) then
return false
-- process all materials of the Geometry List
local i
for i = 1 to (fo.matlist.count) do
(
local mat = fo.matlist[i]
-- if material is empty, get material from custom object
if mat == undefined then
(
local cobj = fo.cobjlist[i]
if cobj != undefined then
mat = cobj.material
)
if mat != undefined then
FCprocessMaterial mat
)
-- update UI
fo.trees.update_ui()
)

FCTurnOffOverride $

2. This is more difficult to get. As you pointed out, now there are two modes to adjust tint: globally for the full Forest object, or locally by Material. This third option would need to replicate the tint options in the Geometry rollout (which is a bit complex actually). Or alternatively, some tool to modify the Forest Color settings for a specific geometry (assuming that materials are not shared by other geometries).

Carlos Quintero
iToo Software