On this page | |
Since | 18.0 |
How to ¶
Light Mixer has a custom Qt-based user interface that takes over the parameter editor when this node is selected. You can switch between the custom interface and the regular parameters by clicking the Show/hide parameters button in the Parameter editor’s toolbar.
-
A tree on the left shows all lights in the scene.
-
Drag one or more lights or collections from the tree on the left into the space on the right.
-
You can switch the right side between two views of the added lights:
Sliders
Build a custom mixer interface, showing the lights and collections as sliders, similar to a light board.
Sheet
Displays the attributes on the lights in a spreadsheet format.
-
If you drag in an individual light into the mixer, it appears as an individual set of sliders for controlling different attributes (intensity and exposure, by default, plus color).
In the spreadsheet view, individual lights appear as rows.
-
If you drag a light collection into the mixer, it first appears collapsed. Click the Collapse button in the top right corner to expand the lights inside.
Each collection has its own “master sliders” for intensity, exposure, and a tint color, which are all multiplied with the attributes of the lights inside.
In the spreadsheet, collections appear as folders with light rows under them.
To... | Do this |
---|---|
Arrange items in the mixer |
Drag items in the mixer to rearrange them. |
Create a light collection |
Select lights in the tree on the left side, then click the Create a new Collection button. |
Edit a value in the spreadsheet view |
Click the value. |
Tips and notes ¶
-
This node represents a first try at using custom Python-driven UI for a node. Future versions should be faster, more robust, and have many more features.
-
Currently collections are always created on
/collection
. -
Collections created here will not have “/” included by default and their expansion rule is
explicitOnly
. -
You can add the same light/collection multiple times.
Configuration file ¶
You can customize the Light Mixer user interface by creating a HOUDINIPATH/LightMixerConfig.json
file (for example, $HOUDINI_USER_PREF_DIR/LightMixerConfig.json
. If the node finds multiple LightMixerConfig.json
files on the path, it merges them such that files earlier in the path override later ones (the HOUDINIPATH is ordered from most specific to least specific, unlike many path variables in UNIX where later items override earlier ones).
The following example contains the defaults for the available settings:
{ "main.default_tab": 1, "mixer.show_attributes": ["inputs:intensity", "intputs:exposure"], "sheet.show_attributes": ["inputs:intensity", "inputs:exposure", "inputs:color", "inputs:colorTemperature", "$solo", "$mute", "$active"], "collections.search": ["/lights", "/collections"], "lights.search": ["/"], "attributes.config": { } }
In your configuration file you can omit default values (unless you need to override another configuration file higher up the path). For example, if you only want to make new Light Mixers open with the Attribute Spreadsheet tab active, you can use just the following:
{ "main.default_tab": 0 }
You can use the following configuration keys in the JSON file:
main.default_tab
(Integer) Which tab is active in a new Light Mixer. 0
sets the Sliders tab. 1
sets the Attributes tab. 2
sets the Transforms tab. Default is 1
.
mixer.show_attributes
(List of strings) The names of USD attributes to show sliders for in the Sliders tab. The default is ["inputs:intensity", "intputs:exposure"]
.
sheet.show_attributes
(List of strings) The names of USD attributes to show columns for in the Attributes tab. For example, "inputs:color"
. The strings can use the following special values:
-
You can use the special strings
$solo
,$mute
, and$active
to add columns for those controls. -
You can “extract” a component of a vector attribute using
‹attribute_name›$‹index›
, for exampleinputs:color$1
to get the second component (green) of the color. You can user
,g
, andb
as aliases for0
,1
, and2
, for exampleinputs:color$r
to get the red component of the color. -
You can also use the names of custom attributes defined in the
attributes.config
key (see below).
collections.search
(List of strings) The USD prim paths to check for collection attributes. The default is ["/lights", "/collections"]
.
lights.search
(List of strings) The list of paths at which to start (recursively) searching the scene tree for light prims. The default is ["/"]
, which will find all light prims in the scene.
attributes.config
(Object) This maps attribute name strings to configuration objects describing how to present the attribute in the Light Mixer user interface. The object can have the following keys:
type
(String) The USD name for the attribute’s data type, for example float
, color3f
, bool
.
default
The default value for the attribute. The value should be a JSON equivalent of the attributes type. For example, if the type
is color3f
, this should be a list of three numbers.
min
, max
The minimum and maximum realistic values for the attribute (for compound types, these apply to the components). The light mixer uses these to set the low and high ends of the slider.
label
(String) The human readable label for the attribute to display in the user interface.
component_labels
(List of strings) For compound types, individual labels for each component.
modify
(String) How to apply this attribute to a collection. If this key is not present, this attribute is not shown in the interface as applicable to a whole collection at once. The possible values are multiply
(multiply the attribute on each member by the collection value), add
(add the collection value to the attribute on each member), or set
(set the attribute on each member to the collection value).
identity
The value which, when applied to a collection, has no effect. This is like the default value when applied to a collection. For example, 1.0
for a scale, or 0.0
for an offset. The value should be a JSON equivalent of the attributes type. For example, if the type
is color3f
, this should be a list of three numbers.
precision
(Number) Indicates the number of decimal places the user interface should show for this value (if the attribute type is numeric). For example, 0.01
to show two decimal places.
For example:
{ "sheet.show_attributes": ["inputs:intensity", "mycustomvector"], "attributes.config": { "mycustomvector": { "type": "float2", "default": [1.0, 1.5], "identity": [1.0, 1.0], "min": 0.0, "max": 3.0, "label": "Size", "component_labels": ["Width", "Height"], "modify": "multiply", "precision": 0.1, } } }
Parameters ¶
Number of Collections
The number of USD collections that this node will create. For each collection, a separate set of parameters are used to define the collection’s name, USD prim and members.
Collection # Prim
The USD prim where the collection will be authored.
Collection # Name
The name of the new collecton. Replaces any existing group of the same name on the same prim.
Collection # Includes
Space separated list of prim patterns that will be included in the collection.
Collection # Excludes
Space separated list of prim patterns that will be excluded from the include list.
See also |