katana opscript – Override albedo colors with gray
Its usually handy to have an interactive filter that does a middle gray default material. But sometimes you want to see the materials in gray, while keeping all the other features as spec, roughness, metalness, etc.
Here are 2 opscripts to do so: The first one takes care of networked materials as in materialPath.material.nodes
The second one takes care of simple materials like materialPath.material.prmanBxdfParam
local material = Interface.GetAttr('material.nodes') if (material ~= nil) then local len_of_children = material:getNumberOfChildren() if (len_of_children > 0) then for i=0, len_of_children do local shading_node = material:getChildByIndex(i) if (shading_node ~= nil) then local type = shading_node:getChildByName('type'):getValue() if (type == 'PxrSurface') then local image_node_attr = 'material.nodes.' .. shading_node:getChildByName('name'):getValue() Interface.SetAttr(image_node_attr .. '.parameters.diffuseColor.i0', FloatAttribute(.18)) Interface.SetAttr(image_node_attr .. '.parameters.diffuseColor.i1', FloatAttribute(.18)) Interface.SetAttr(image_node_attr .. '.parameters.diffuseColor.i2', FloatAttribute(.18)) Interface.SetAttr(image_node_attr .. '.connections.diffuseColor', StringAttribute("")) end if (type == 'PxrMarschnerHair') then local image_node_attr = 'material.nodes.' .. shading_node:getChildByName('name'):getValue() Interface.SetAttr(image_node_attr .. '.parameters.diffuseColor.i0', FloatAttribute(.18)) Interface.SetAttr(image_node_attr .. '.parameters.diffuseColor.i1', FloatAttribute(.18)) Interface.SetAttr(image_node_attr .. '.parameters.diffuseColor.i2', FloatAttribute(.18)) Interface.SetAttr(image_node_attr .. '.connections.diffuseColor', StringAttribute("")) end end end end end
local material = Interface.GetAttr('material.prmanBxdfParams') if (material ~= nil) then Interface.SetAttr("material.prmanBxdfParams.diffuseColor.i0", FloatAttribute(.18)) Interface.SetAttr("material.prmanBxdfParams.diffuseColor.i1", FloatAttribute(.18)) Interface.SetAttr("material.prmanBxdfParams.diffuseColor.i2", FloatAttribute(.18)) end