Whats New - Version 4.3.0


return to main index



Houdini OTL
Using the Houdini "rmands" utilitiy, Cutter can now generate a new, or update an existing, OTL file(s) - figure 1. The following rules are applied when Cutter specifies the OTL file for "rmands". For the sake of illustration we'll assume a SL source code file, saved as "H:/rman/untitled.sl", is being compiled to produce a shader called "test.slo".

rule 1 - individual otl's
If the ".otl path" (shown opposite in yellow) is empty or the directory that will contain the OTL file does not exist, Cutter will execute "rmands" with the following command,

rmands -g 8 -L "H:/rman/test.otl" "H:/rman/shaders/test.slo"

In other words, an individual OTL file with the same name as the newly compiled SLO will be saved in the same directory as the SLO file.

rule 2 - shared otl
If the ".otl path" (shown opposite in yellow) is fully specified, for example, "H:/houdini/rman_shaders.otl" and the directory that contains the OTL file does exist, Cutter will execute "rmands" with the following command,

rmands -g 8 -L "H:/houdini/rman_shaders.otl" "H:/rman/shaders/test.slo"

By specifying the full path to an OTL file you will get a single OTL file shared for each SLO that you compile.


otl_empty
figure 1



Sending hcommand's to Houdini
In much the same way that Cutter is able to send MEL scripts via ftp to Maya the same facility has now been added for Houdini - figure 2. To enable Houdini to receive scripts open a Houdini text port window and enter the following command,

openport A_FOUR_DIGIT_NUMBER

Make sure the port number chosen in Houdini, for example, 4444 matches the selected port in Cutter (shown opposite in yellow).


toHoudini
figure 2



Pixar SLI files
The heuristics used by Cutter to help it specify the types of user-interface widgets that should be used by a RAT palette when displaying a shader (aka "Import Appearance") have been extended.

Pixar SLIM files
The generation of a SLIM document from the source code of a surface shader has been greatly improved. In addition to using the same heuristics as listed below, Cutter can now handle surface shaders that use arrays for its parameters. Cutter automatically creates collections for the arrays and modifies the source code for the SLIM document.

For a general overview of SLIM file generation by Cutter refer to Generating Slim Files. The notes on that document also apply to the generation of SLI files. The summary in table 1 may help you figure out how best to take advantage of Cutter's way of guessing what user-interface elements (SLI and) SLIM files should use based on user-interface hints and the names of shader instance variables ie. shader parameters.



Table 1

float varname
varname begins with "K", or varname is
   roughness,
   blend,
   mix,
   smooth or
   step
For example, float Kz = 0

ui-type
"slider" with a range of values from 0.0 to 1.0. Otherwise in the absence of a hint (see below) the range is negative twice default value to positive twice default value.

float varname /* [hint] */
   [min max]
     for example /* [-2 5] */
   [min max step]
     for example /* [-2 5 1] */
   [min or max]
     for example /* [0 or 1] */

ui-range
"slider" range from min to max.


"slider" will move in 1 unit increments.

"switch" on or off.

string varname
varname partially matches
   tex
   tra
   env
   filter
   shad
   refl
   world
   shader
   camera
   current
   coord
For example, string reflmap = ""

ui-type

"texture"
"texture"
"environment"
"filter"
"shadow"
"reflection"
"spacename"
"spacename"
"spacename"
"spacename"
"spacename"

uihint [xxxxx]
If xxxxx completely matches
   texture
   environment
   filter
   shadow
   reflection
   spacename


The ui type of the item will be,
"texture"
"environment"
"filter"
"shadow"
"reflection"
"spacename"

In the case of the "filter" Cutter assigns a ui-type of "selector" with the following values,
   box gaussian disk radial-bspline





© 2002- Malcolm Kesson. All rights reserved.