COMMANDS (RENDER PASSES) IN DETAIL

To recap: commands (aka render passes) must consist of at least three elements: the command type, the layer type, and the target group. This was explained in The Group-Command Relationship section.

SUBCOMMANDS
Commands may also consist of more elements called subcommands. Subcommands are either scene commands, or directives for groups. They are inserted into the main command string, and are separated by dots (.). They are inserted right after the layer type. Here is an example of a command that contains subcommands (underscored for emphasis):

BTY.BG.MULTIPLIER2.bgColor255,255,255.AA6.Airplane

The subcommands (and their interpreted values) in the line above are:

MULTIPLIER2 (Resolution Multiplier: 0.5)
bgColor255,255,255 (Backdrop Color: 255,255,255)
AA6 (Antialiasing 7-PLD)

Subcommands are case-insensitive. Also note that they reside between the layer type and the target group .Subcommands also follow strict syntax rules, discussed in Subcommand Reference.

EDITING SUBCOMMANDS
There are several ways to view and edit subcommands. You can edit it directly in the cmdline or use the multi-line editor, or you can use the Render Pass Subcommands category.

SUBCOMMAND REFERENCE

Here are the list of available commands in Janus. They are categorised in twelve (12) groups, and you will see these groups arranged accordingly based, more of less, on how they are arranged in the LightWave interface. The Misc category contains more Janus-centric functions, or other functions that would not otherwise be categorised in LightWave. Note that despite using upper-case in these examples they are actually case-insensitive.

Subcommands marked with an asterisk (*) are not yet supported.

CAMERA SUBCOMMANDS
Camera subcommands control aspects only of the rendering camera.

RENDERCAM"<string>"
Specifies which camera is used for this render. Ordinarily, the currently selected camera would be used. But you may also ensure the correct camera is rendered, or when you wish to render out multiple cameras, to specify this pass's render camera.

CAMTYPE<"PERSPECTIVE"|"REALLENS"|"SURFACEBAKING"|"ORTHOGRAPHIC"|"ADVANCED">
Specifies the type of the rendering camera. The above LightWave-native cameras have shorthand versions. These are:

All of these keywords are case-insensitive. Remember to enclose them in quotation marks.

CAMTYPE"persp"

When using third-party cameras be sure to spell the handler's name correctly, and follow the its upper- and lower-casing as it appears in the ASCII scene file. Janus will give out a warning if a third-party camera is being used, but will not be able to check if you have spelled the name correctly.

You may also specify a pre-saved CameraHandler data block. See Plugin Data / Data Blocks section to learn more about saving Plugin Data Blocks.

FRAMESIZE<int>
Specifies a pre-set frame size. Provide an integer corresponding to its index in its list.

MULTIPLIER<int>
Specifies the resolution multiplier. Provide an integer corresponding to its index in its list.

USERFRAMESIZE"<ResX> <ResY>"
Specifies a user-defined frame size. Provide width and height in pixels separated by a whitespace, both enclosed in quotation marks .Note that USERFRAMESIZE has higher priority than FRAMESIZE; if both USERFRAMESIZE and FRAMESIZE are used in one process, USERFRAMESIZE's values will be used.

USERMULTIPLIER"<num>"
Specifies a user-defined resolution multiplier. Provide a number enclosed in quotation marks. Note that USERMULTIPLIER has higher priority than MULTIPLIER; if both USERMULTIPLIER and MULTIPLIER are used in one process, USERMULTIPLIER's values will be used.

PAR"<num>"
Specifies a user-defined pixel aspect ratio. Provide a number enclosed in quotation marks. By default, pixel aspect ratio is determined by the chosen preset in FRAMESIZE. If PAR is used, the pixel aspect ratio of the resolution preset, if any are used, will be overriden by this subcommand.

FIELD<int>
Specifies Field Rendering parameters.

AA<int>
Specifies antialiasing level. Provide an integer corresponding to its index in its list.

RCFILTER<int>
Specifies Reconstruction Filter level. Provide an integer corresponding to its index in its list.

MOTBLUR<int>
Specifies the level of motion blur. Provide an integer corresponding to its index in its list.

AASAMPLES<int> (LW9.x only)
Specifies antialiasing samples. This is specific to LightWave 9.x only.

OVERSAMPLE"<float>" (LW9.x only)
Specifies antialias samples. This is specific to LightWave 9.x only.

BLURPASS<int> (LW9.x only)
Specifies the number of motion blur passes. This is specific to LightWave 9.x only.

BLURLENGTH"<float>"
Specifies the blur length in floating-point notation where 1.0 is 100%.

SHUTTEREFF"<float>" (LW9.x only)
Specifies shutter efficiency. This is specific to LightWave 9.x only.

SAMPLINGPATTERN<int> (LW9.x only)
Specifies sampling pattern type. This is specific to LightWave 9.x only.

ADAPTIVESAMPLING<ON|OFF> (LW9.x only)
Specifies if Adaptive Sampling is switched on or off. This is specific to LightWave 9.x only.

SAMPLINGTHRESHOLD"<float>" (LW9.x only)
Specifies Adaptive Sampling Threshold. This is specific to LightWave 9.x only.

MINSAMPLES"<int>" (LW11.x only)
Specifies minimum samples for Unified Sampling. This is specific to LightWave 11.x only.

MAXSAMPLES"<int>" (LW11.x only)
Specifies maximum samples for Unified Sampling. This is specific to LightWave 11.x only.

SHADINGSAMPLES"<int>" (LW11.x only)
Specifies shading samples for Unified Sampling. This is specific to LightWave 11.x only.

LIGHTSAMPLES"<int>" (LW11.x only)
Specifies light samples for Unified Sampling. This is specific to LightWave 11.x only.

 

CAMERA EFFECTS (CAMFX) SUBCOMMANDS
Camera effects subcommands control sub-set of parameters of the rendering camera.

SOFTFILTER<ON|OFF>
Specifies Field Rendering parameters.

DOF<ON|OFF>
Specifies if Depth-of-Field is switched on or off.

STEREO<ON|OFF>
Specifies if Stereoscopic Rendering is turned on of off.

EYESEP"<float>"
Specifies stereoscopic eye separation in meters.

 

SCENE SUBCOMMANDS
Scene subcommands refer to the options found in the Backdrop, Volumetrics, and Compositing tabs in the Effects panel.

BUFFER<ON/OFF>["<nameOfBuffer>"]|<DATA>"<nameOfBuffer.bufferAttribute.bufferValue.subValues>"
Specifies if Render Buffers are to be used, and which Buffers, if any, are to used. If BUFFERON is used without a specified buffer, Janus assumes that all active buffers are to be turned on. This applies inversely with BUFFEROFF.

BUFFERDATA is functionally BUFFERON, in that it will turn on a buffer, but also allows you specify a buffer name, an attribute to change, and the value to change it to. Depending on the nature of the buffer attribute or buffer value, any number extra subvalues may be inputted. Please see the available Render Buffers' own sections to see what subcommands they support.

DBWEXR"<nameOfPreset>.<typeOfPreset>"
Applies an exrTrader preset to this command. The name of the preset and the type of the preset (e.g. User, Content, or Global) must be specified.

RSMB"<nameOfParameter>.<value>"
Sets an RSMB parameter to a certain value. See the secton on RSMB Export for more details. This subcommand may appear mutliple times in the command line.

BGIMAGE<ON/OFF>|<DATA><"bgImagePreset">
Will deactivate the backdrop image if BGIMAGEOFF is used. Background image may be replaced by using the DATA keyword:

BGIMAGEDATA"myBackgroundImagePreset"

..where, "myBackgroundImagePreset" is a saved Scene Plugin Data. See Plugin Data / Data Blocks section to learn more about saving Plugin Data Blocks.

ENV<ON|OFF>[[EX]"<HandlerName>.<HandlerIndex>"]
Turns Environment Handlers (Plugins) on or off. See the Extended-Single-String Format section for details.

ENVDATA"<PresetPluginParameterName>.<HandlerIndex>"
Adds Environment Handlers (Plugins) with a pre-set plugin data block in Janus_SCENEDEFPLUGIN.cfg. The HandlerIndex value represents the index that you want to add the plugin data into, overwriting any plugin's settings in the block. If HandlerIndex is omitted, the plugin will be added into the next available slot. See Plugin Data / Data Blocks section to learn more about saving Plugin Data Blocks.

ENVDATA"myPreset.1"(overwrites EnvironmentHandler slot 1 with the data block from "myPreset")
ENVDATA"myPreset" (adds "myPreset" data block to list of EnvironmentHandlers)

VOL<ON|OFF>[[EX]"<HandlerName> <HandlerIndex>"]
Turns Volumetric Handlers (Plugins) on or off. See the Extended-Single-String Format section for details.

VOLDATA"<PresetPluginParameterName>.<HandlerIndex>"
Replaces or adds Volumetric Handlers (Plugins) with a pre-set plugin data block in Janus_SCENEDEFPLUGIN.cfg. The HandlerIndex value represents the index that you want to add the plugin data into, overwriting any plugin's settings in the block. If HandlerIndex is omitted, the plugin will be added into the next available slot. Plugin Data / Data Blocks section to learn more about saving Plugin Data Blocks.

VOAA<ON|OFF>
Turns Volumetric Antialiasing on or off.

USEBGCOLOR<ON/OFF>
Specifies whether to enable background color.

BGCOLOR"<float,float,float>"|[<int>,<int>,<int>]
Specifies background color (note that this is not refer to Backdrop Color). Use floating-point values or 0 - 255 for each field.

BACKDROPCOLOR"<float,float,float>"|[<int>,<int>,<int>]
Specifies backdrop color. Use floating-point values or 0 - 255 for each field.

FOGTYPE<int> | FOGTYPEOFF
Specifies the fog type. If FOGTYPE0 is used then it constitutes the same as a turning off the fog (e.g. FOGTYPEOFF).

FOGMINDIST<"meters">, FOGMAXDIST<"meters">
Specifies the fog's minimum and maximum distances. Specify the value in meters. Do not use the 'm' token, as in "10.1m". Simply use "10.1".

FOGMINAMT<"float">, FOGMAXAMT<"float">
Specifies the fog's minimum and maximum amount. Values are float. 0 is 0% and 1.0 is 100%.

FOGCOLOR"<float,float,float>"|[<int>,<int>,<int>]
Specifies fog's color. Use floating-point values or 0 - 255 for each field.

HDRFILTER<int>
Specifies the HDR filtering type (1 None, 2 Gaussian, 3 Bilinear)

 

PROCESSING SUBCOMMANDS
Scene subcommands refer to the options found in the Processing tab in the Effects panel.

DITHERINT<"int">
Specifies Dither Intensity. Values are indexed:

ANIMATEDDITHER<ON|OFF>
Specifies if Animated Dither is enabled or not.

GLOWEFFECT<ON|OFF>
Specifies if Glow Effect is enabled or not.

GLOWINT<"float">
Specifies Glow Intensity. Values are float. 0 is 0% and 1.0 is 100%.

GLOWRAD<"float">
Specifies Glow Radius. Values are number of pixels (expressed in float)

COLORSAT<"float">
Specifies Color Saturation. Values are float. 0 is 0% and 1.0 is 100%.

LIMITDYNRANGE<ON|OFF>
Specifies if Limit Dynamic Range is enabled or not.

IMG<ON|OFF>[[EX]"<HandlerName> <HandlerIndex>"]
Turns Image Filter Handlers (Plugins) on or off. See the Extended-Single-String Format section for details.

IMGDATA"<PresetPluginParameterName>.<HandlerIndex>"
Adds Image Filter Handlers (Plugins) with a pre-set plugin data block in Janus_SCENEDEFPLUGIN.cfg. The HandlerIndex value represents the index that you want to add the plugin data into, overwriting any plugin's settings in the block. If HandlerIndex is omitted, the plugin will be added into the next available slot. Plugin Data / Data Blocks section to learn more about saving Plugin Data Blocks.

PIX<ON|OFF>[[EX]"<HandlerName> <HandlerIndex>"]
Turns Pixel Filter Handlers (Plugins) on or off. See the Extended-Single-String Format section for details.

PIXDATA"<PresetPluginParameterName>.<HandlerIndex>"
Adds Pixel Filter Handlers (Plugins) with a pre-set plugin data block in Janus_SCENEDEFPLUGIN.cfg. The HandlerIndex value represents the index that you want to add the plugin data into, overwriting any plugin's settings in the block. If HandlerIndex is omitted, the plugin will be added into the next available slot. Plugin Data / Data Blocks section to learn more about saving Plugin Data Blocks.

 

RENDER GLOBALS SUBCOMMANDS
Render Globals subcommands deal with all options in the LightWave's Render Globals.

RENDERMODE"<mode>"
Specifies the Render Mode. Inputted values must either be one of WIRE, QUICK, or REAL, and the subcommand expects it to be typed out.

RENDERMODE"Quick"

RENDERLINES<ON|OFF>
Turns render lines on or off.

RTSHADOW<ON|OFF>
Turns raytraced shadows on or off.

RTREFLECT<ON|OFF>
Turns raytraced reflections on or off.

RTREFRACT<ON|OFF>
Turns raytraced refractions on or off.

RTTRANSP<ON|OFF>
Turns raytraced transparency on or off.

RTOCC<ON|OFF>
Turns raytraced occlusion on or off.

RAYLIMIT<int>
Specifies Ray Recursion Limit.

SF<int> | SF"<startFrame>
Sets the start frame. Tip: you can specify a constant or user variable.

EF<int> | EF"<startFrame>"
Sets the end frame. Tip: you can specify a constant or user variable.

AF"<frameA-frameB>"|"<frameA-frameB,frameC"
Sets the arbitary range. Use the same syntax as you would in LightWave except that you should enclose it in quote marks.

BY<int>
Sets the frame step.

FPS<"float">
Sets the frame-per-second in floating point.

OUTFORMAT<ON|OFF>|<"string">
Specifies a specific output format for that render pass. You must input the string as it appears in the popdown in the LightWave render output interface. However, a unique partial match will be acceptable, too. For example:

outformat"tga_32"

..will match "LW_TGA32(.tga)" because there are no other TGA_32 strings. However inputting this:

outformat"LW_TGA"

.. will match the first instance of LW_TGA, which is "LW_TGA24", which may or may not be desirable.

You can turn off image saving by specifying:

outformatOff

ALPHAFORMAT<ON|OFF><"string">
Specifies the alpha output format for that render pass. Same rules apply as those in OUTFORMAT. When explicitly specified, Alphas are automatically switched on to be saved.

RENDERLINES<ON|OFF>
Sets the render lines off or on.

UNPREMULT<ON|OFF>
Sets the unpremultiply by alpha feature off or on.

LIMREG<ON|OFF>
Enables or disables Limited Region.

ZBUFFERMINMAX<ON|OFF>
Turns z-buffer min and max ranges on or off.

ZMIN"<float>"
Turns z-buffer minimum distance.

ZMAX"<float>"
Turns z-buffer maximum distance.

CSOUTPUTRGB<int>
Modifies the colour space output of the RGB image. (1 linear, 2 sRGB, 3 rec709
)

CSOUTPUTALPHA<int>
Modifies the colour space output of the alpha image. (1 linear, 2 sRGB, 3 rec709
)

RENDERINSTANCES<ON|OFF>
Specifies the if instances are to be rendered or not.

LIGHT SUBCOMMANDS
Light subcommands are scene-centric light parameters. They do not refer to Lights as items (which are categorised separately as Light Items).

VLIGHT<ON|OFF>
Enables / disables global volumetric lights. (Scene-centric)

SHADOWMAPS<ON|OFF>
Enables / disables global shadow maps. (Scene-centric)

LENSFLARES<ON|OFF>
Enables / disables global lens flares. (Scene-centric)

AMBCOLOR"<float,float,float>"|[<int>,<int>,<int>]
Specifies ambient color. Use floating-point values or 0 - 255 for each field. (Scene-centric)

AMBINT"<float>"
Specifies ambient intensity. A value of 1.0 is 100%. (Scene-centric)

GLIGHTINT"<float>"
Specifies the global light intensity. (Scene-centric)

GLIGHTINT".515" (Sets it to 51.5%)
GLIGHTINT"1.25" (Sets it to 125%)

FLAREINT"<float>"
Specifies global lens flare intensity. A value of 1.0 is 100%. (Scene-centric)

DEFLIGHTEXCLUDE"EXCLUDE"|"INCLUDE"
Specifies whether or not the default light exclusion behavior is to include or exclude. DEFLIGHTEXCLUDE is not to be appended with ACTIVE, OTHER, or BOTH since this subcommand merely alters how Janus treats lights for a particular pass. If switched to "Include", lights are turned on by default. If the switch is "Exclude" lights are turned off by default and must be assigned to a group and associated with the render pass for it to be turned on. Remember that even lights follow group directives, so that if a group is directed to be replaced with nulls, lights are deactivated as well. Use this option carefully. Also note that the full string "Exclude" or "Include" must be typed out. It is case-insensitive.

LIGHTPASS<ON/OFF>
Specifies whether or not the current pass would be specially treated as a light pass. This subcommand will instruct Janus to search all the associated groups of this pass for lights. If it finds a group with lights, it regards this as a single light 'unit'. When it collates all of the 'units' Janus divides these 'units' into three parts, assigning red, green, and blue light colors to each of the light 'units.' Then it breaks out one scene per color channel. For example, if you have a scene with seven (7) associated groups each containing lights: Group 1 will be assigned a red color, Group 2 green, Group 3 blue. Then it cycles back to Group 4 assigned as red, Group 5 green, Group 6 blue, and Group 7 red again. In this example, the total number of scenes that will be outputted in the end will be three breakout scenes: Scene 1 will have Groups 1 thru 3, Scene 2 will have Groups 4 thru 6, and Scene 3 will have Group 7.

LTEXCLUDE<BOTH|ACTIVE|OTHER>"<Group1,Group2,...>"
Light exclusion done via this subcommand employs LightWave's own exclusion method within Janus. It instructs lights, specified as group, to be excluded from the active, other, or both groups. For example, if you input:

LTEXCLUDEOTHER"LT_GRP"

This will exclude all lights in LT_GRP from the other or contributing groups.

 

LIGHT ITEM SUBCOMMANDS
Light Item subcommands are object-centric light parameters. They are special in this case; Light Item subcommands must be suffixed with ACTIVE, OTHER, or BOTH, denoting the group you intend to apply them to. Then the value for that subcommand follows.

LTAffectSpecularACTIVEOFF (deactivates Affect Specular in Active Group lights)

Please note: item-centric subcommands (including those of the Object subcommands) must be inserted as a subcommand. They do not work as a global setting; that is, even if you tick the checkbox of a Light Item parameter such as Affect Diffuse, this will have no effect. To make it take effect, you must insert the subcommand as text.

A light's Volumetric properties can be modified through its data block. Please refer to the Plugin Data and Data Blocks section for more information.

LTAFFECTDIFFUSE<ACTIVE|OTHER|BOTH><ON|OFF>
Specifies that specified lights will have their Affect Diffuse parameter turned on or off. (Object-centric)

LTAFFECTSPECULAR<ACTIVE|OTHER|BOTH><ON|OFF>
Specifies that specified lights will have their Affect Specular parameter turned on or off. (Object-centric)

LTAFFECTCAUSTICS<ACTIVE|OTHER|BOTH><ON|OFF>
Specifies that specified lights will have their Affect Caustics parameter turned on or off. (Object-centric)

LTINTENSITY<ACTIVE|OTHER|BOTH>"<float>"
Sets light intensity. (Object-centric)

LTCOLOR<ACTIVE|OTHER|BOTH>"<float,float,float>"|[<int>,<int>,<int>]
Sets light color. (Object-centric)

LTTYPE<ACTIVE|OTHER|BOTH><int>|<NOMINAL>
Sets the light type. The following values are allowed. (Object-centric)

0 (Distant)
1 (Point)
2 (Spotlight)
3 (Linear)
4 (Area)
NOMINAL (no change)

LTINTFALLOFF<ACTIVE|OTHER|BOTH><int>|<NOMINAL>
Sets the light intensity falloff type. The following values are allowed. (Object-centric)

0 (None)
1 (Linear)
2 (Inverse Distance)
3 (Inverse Distance ^ 2)
NOMINAL (no change)

LTRANGE<ACTIVE|OTHER|BOTH>"<float>"
Sets light nominal range. (Object-centric)

LTSHADOWTYPE<ACTIVE|OTHER|BOTH><int>|<NOMINAL>
Sets the light's shadow type. The following values are allowed. (Object-centric)

0 (None)
1 (Ray Trace)
2 (Shadow Map)
NOMINAL (no change)

LTSHADOWCOLOR<ACTIVE|OTHER|BOTH>"<float,float,float>"|[<int>,<int>,<int>]
Sets light's shadow color. (Object-centric)

LTSHADOWMAPSIZE<ACTIVE|OTHER|BOTH><int>
Sets light's shadow map's resolution size. Expressed in an integer. (Object-centric)

LTSHADOWMAPFUZZ<ACTIVE|OTHER|BOTH>"<float>"
Sets light's shadow map's resolution size. Expressed in a floating-point number. (Object-centric)

LTQUALITY<ACTIVE|OTHER|BOTH>"<float>"
Sets light's quality (for Linear and Area lights). (Object-centric)

LTPROJIMAGE<ACTIVE|OTHER|BOTH>"<ltProjImagePresetName>"
Sets light's projection image. Requires a pre-saved Light Projection Image data block. (Object-centric)

 

GLOBAL ILLUMINATION (GI) SUBCOMMANDS
GI subcommands are specific to radiosity settings.

RADENABLE<ON|OFF>
Specifies that radiosity is enabled or disabled.

RADTYPE<int>
Specifies radiosity type. The following types are available:

RADINTERPOLATE<ON|OFF>
Specifies that radiosity interpolation is enabled or disabled.

RADTRANSP<ON|OFF>
Specifies that radiosity transparency is enabled or disabled.

RADCACHE<ON|OFF>
Specifies that cache radiosity is enabled or disabled.

RADINT"<float>"
Specifies radiosity intensity in floating-point notation. 1.0 is 100%.

RADTOL"<float>"
Specifies radiosity tolerance.

RADRPE"<int>"
Specifies the number of rays per evaluation.

RADMES"<float>"
Specifies the minimum evaluation spacing, in meters.

RADMPS"<float>"
Specifies the minimum pixel spacing.

RADBOUNCE"<int>"
Specifies the number of radiosity bounces.

RADAMB<ON|OFF>
Specifies to use ambient for radiosity.

RADDIRRAYS<ON|OFF>
Specifies the use of directional rays for radiosity.

RADBLURBG<ON|OFF>
Specifies blurring of background for radiosity.

 

CAUSTICS SUBCOMMANDS
These subcommands are specific to caustics-related parameters.

CAUSTICS<ON|OFF>
Specifies that caustics is enabled or disabled.

CAUSTICSCACHE<ON|OFF>
Specifies that caching of caustics is enabled or disabled.

CAUSTICSINT"<float>"
Specifies caustic intensity, in floating point. .5 is 50% and 1.0 is 100%

CAUSTICSACC"<int>"
Specifies caustic accuracy, as an integer.

CAUSTICSSOFT"<int>"
Specifies caustic softness, as an integer.

 

OBJECT SUBCOMMANDS
Like Light subcommands, Object subcommands must be followed by ACTIVE, OTHER, and BOTH. For example, if you want to switch UnseenByCamera off to the active group:

BTY.BG.UBCACTIVEOFF.myObject

Please note: item-centric subcommands (including those of the Light Item subcommands) must be inserted as a subcommand. They do not work as a global setting; that is, even if you tick the checkbox of an Object parameter such as Unseen By Camera , this will have no effect. To make it take effect, you must insert the subcommand as text.

UBC<ACTIVE|OTHER|BOTH><ON|OFF>
Specifies that all associated groups (both active and other groups) will have their UnseenByCamera property turned off or on.

UBR<ACTIVE|OTHER|BOTH><ON|OFF>
Specifies that all associated groups (both active and other groups) will have their UnseenByRays property turned off or on.

UBF<ACTIVE|OTHER|BOTH><ON|OFF>
Specifies that all associated groups (both active and other groups) will have their UnseenByFog property turned off or on.

UBA<ACTIVE|OTHER|BOTH><"surface"|"unaffected"|"black">
Specifies that all associated groups (both active and other groups) will have their UnseenByAlpha property switched to the mode. Note that the values are case-insensitive.

UBRAD<ACTIVE|OTHER|BOTH><ON|OFF>
Specifies that all associated groups (both active and other groups) will have their UnseenByRadiosity property switched to the mode. Note that the values are case-insensitive.

CS<ACTIVE|OTHER|BOTH><ON|OFF>
Specifies that all associated groups (both active and other groups) will have their Cast Shadow property turned off or on.

SS<ACTIVE|OTHER|BOTH><ON|OFF>
Specifies that all associated groups (both active and other groups) will have their Self Shadow property turned off or on.

RS<ACTIVE|OTHER|BOTH><ON|OFF>
Specifies that all associated groups (both active and other groups) will have their Receive Shadow property turned off or on.

MATTECBJECT<ACTIVE|OTHER|BOTH><ON|OFF>
Specifies that all associated groups (both active and other groups) will have their MatteObject property turned off or on.

MATTECOLOR<ACTIVE|OTHER|BOTH>"<float,float,float>"|[<int>,<int>,<int>]
Specifies that all associated groups (both active and other groups) will have their MatteObject property turned off or on.

DISSOLVE<ACTIVE|OTHER|BOTH>"<float>"
Sets the Object Dissolve property of the specified groups. Specify the value in floating-point and enclose it in quotation marks.

PATCH<ACTIVE|OTHER|BOTH<"numOperationString">
Specifies subpatch level of the ACTIVE GROUP. You may use a number to set the level, or use four types of operators (+,-,/,*)to change the level.

PATCHACTIVE"/2" (will divide an item's subpatch level by half)
PATCHACTIVE"+1" (will add 1 to the item's subpatch level)

REPLACE<ACTIVE|OTHER|BOTH>"<search_string>""<replace_string>[:object_layer]"
REPLACE<ACTIVE|OTHER|BOTH>"<replacementObject.lwo>[:object_layer]"
Replaces objects by using a search-and-replace function or a direct object reference replacement. You can optionally use an object layer, which is denoted by putting a colon (:) and then inputting a layer number. If using search-and-replace, it uses object filenames and their paths, not simply their aliases in LightWave. Object naming convention will play a greater part in leveraging this flexible tool.

REPLACEACTIVE"objects\ROBOT\ROBOT.lwo""objects\ROBOT\ROBOT_OCC.lwo"

This will replace all ROBOT.lwo with ROBOT_OCC.lwo. Alternately, depending on your path and filenames, it can shortened to something like this:

REPLACEACTIVE"ROBOT.""ROBOT_OCC."

You may also use a direct object reference replacement, where you specify only one string pointing to the replacement object.

REPLACEOTHER"shadowCatcher.lwo"

Object layer can also be replaced.

REPLACEACTIVE"objects\ROBOT\ROBOT.lwo""objects\ROBOT\ROBOT_OCC.lwo:3"

REPLACEOTHER"shadowCatcher.lwo:2"

 

SUBDIVORDER<ACTIVE|OTHER|BOTH><Subdivision_Order>
This subcommand changes the subdivision order of the objects based on the integer number provided.

1 - First
2 - After Bones
3 - After Morph
4 - After Displacement
5 - After Motion
6 - Last

Ex: SubdivOrderBoth3 uses 'After Morph' option.

PROXYOBJECT<ON|OFF>
Janus sports a proxy replacement system in this subcommand using the SmartReplace concept. Objects can be tagged to be proxied in a scene; these objects must initially be the actual non-proxy objects (e.g. not nulls when they are meant to be actual objects) so that the proper reference to their filenames can be made. These objects are then subsequently proxied by nulls or low-res objects. When the subcommand PROXYOBJECT is called either from the Global Settings or command line, Janus turns on the proxy replacement: the proxy objects will be swapped with their real objects during break out of the scene. PROXYOBJECT is only an on and off switch.

ITEMACTIVE<ACTIVE|OTHER|BOTH><ON|OFF>
This subcommand activates or deactivates items; in Layout this is the same as checking or unchecking the active parameter in the Scene Editor.

MAKESRF<ACTIVE|OTHER|BOTH>"<Surface_Type>.[<Surface_Type_Parameters>]"
This subcommand dynamically generates an inbuilt shader and assigns this shader unto the objects that comprise the render pass. Surface_Type refers to a Janus-defined shader type, which may accept parameters (e.g. Surface_Type_Parameters). The table below shows the available shaders and their supported parameters.

MAKESRF Shaders
Example Formats
Comments
UV UV.#1 Uses the first UV map in the system
  UV.#1,#2 Uses the first and second UV map in the system
  UV.#1-#3,#9 Uses the first, second, third, and ninth UV map in ths system.
  UV.UVMap_head Uses the UV map named "UVMap_head"
 

UV.#1,UVMap_head
UVMap_body

Uses the UV map named "UVMap_head" and "UVMap_body"
  UV.#1-#8,UV_head Uses the first up to the eighth UV map, and the UV map named "UV_head"
     

 

OBJECT DATA SUBCOMMANDS
Object Data subcommands are those that involve data blocks, or plugin settings.

Please note: item-centric subcommands, such as Object Data must be inserted as a subcommand. They do not work as a global setting; that is, even if you tick the checkbox of an Object parameter such as Clip Map Data , this will have no effect. To make it take effect, you must insert the subcommand as text.

OBJPLUGIN_DM<ACTIVE|OTHER|BOTH>[ON|OFF][<"dataBlockName">]<"dataBlockName"> Specifies the Displacement Map handler data block preset name to use. Note that specifying a preset (e.g. "dataBlockName") will add that preset into the object, but will remove all other plugins of the same type from the object.

objPlugin_DMBOTHOn (turns plugins on)

objPlugin_DMBoth"dm_test1" (adds dm_test1 preset as a DisplacementHandler while stripping all other existing DisplacementHandlers)

OBJPLUGIN_CO<ACTIVE|OTHER|BOTH>[ON|OFF][<"dataBlockName">]<"dataBlockName"> Specifies the Custom Object handler data block preset name to use. Note that specifying a preset (e.g. "dataBlockName") will add that preset into the object, but will remove all other plugins of the same type from the object.

OBJPLUGIN_OR<ACTIVE|OTHER|BOTH>[ON|OFF][<"dataBlockName">]<"dataBlockName"> Specifies the Object Replacement Map handler data block preset name to use. Note that specifying a preset (e.g. "dataBlockName") will add that preset into the object, but will remove all other plugins of the same type from the object.

CLIPDATA<ACTIVE|OTHER|BOTH><"dataBlockName">
Specifies the Clip Map data block preset name to use.

DISPDATA<ACTIVE|OTHER|BOTH><"dataBlockName">
Specifies the Displacement Map data block preset name to use.

NODEDISPDATA<ACTIVE|OTHER|BOTH><"dataBlockName">
Specifies the Node Displacement data block preset name to use.

APSRENDERDATA<ACTIVE|OTHER|BOTH><"dataBlockName">
Specifies the APS Render data block preset name to use.

SRF<ACTIVE|OTHER|BOTH>"<surfaceFile.srf>"
Replaces surfaces of groups. User must provide either 1.) a full absolute file path to the surface file, or 2.) a file path relative to the default Janus_Surfaces directory, or 3.) a file path relative to the 'Project Surfaces Directory' that can be set by the user in the Preferences. For multi-surface object overrides, a text file containing the path the surfaces can also be provided (relative or absolute path).

COMBINEOTHERGROUP[EXCL] / COMBINEACTIVEGROUP[EXCL]
This pair of subcommands combines the mesh of the other or active groups. These subcommands only combine meshes per group; they do not combine multiple groups into one mesh. Combined objects are saved by their group name. They are placed in the Surface Overrides User Directory under the subdirectory /CombinedLWO, and will, furthermore, be placed inside a folder with the same name as the render pass scene.

The EXCL keyword denotes 'exclusive', which means that Janus will compare items from associated groups and will exclude items found in those groups. For example, if you call COMBINEOTHERGROUPSEXCL, Janus will combine all items found in 'Other' groups, *except* for those items it may be sharing with the 'Active' group.

GROUPITEM"<string>"
This subcommand accepts a string that defines a range of integers (i.e. groupItem"1-5,7,11"). The resulting integers refer to the index of items in the Items In Group listbox. The function of this subcommand is exclude item that are not listed; in the example above, only items of the index of 1 thru 5, 7th, and 11th will be included in the group.

At this time, all groups associated to the render pass will be applied this exclusion.

 

OBJECT EDGES SUBCOMMANDS
Object Edges subcommands are those that involve object's edges parameters (found in the Edges tab in an object's property panel).

POLYSIZE<ACTIVE|OTHER|BOTH>"<float>"
Changes the polygon size. Accepts a float between the quote marks.

EDGETHICK<ACTIVE|OTHER|BOTH>"<float>"
Changes the default edge thickness Accepts a float between the quote marks.

SILHOUETTETHICK<ACTIVE|OTHER|BOTH>"<float>"
Changes the thickness of the silhouette edges.

UNSHAREDTHICK<ACTIVE|OTHER|BOTH>"<float>"
Changes the thickness of the unshared edges.

CREASESTHICK<ACTIVE|OTHER|BOTH>"<float>"
Changes the thickness of the creased edges.

BORDERSTHICK<ACTIVE|OTHER|BOTH>"<float>"
Changes the thickness of the border edges.

OTHERTHICK<ACTIVE|OTHER|BOTH>"<float>"
Changes the thickness of the other edges.

EDGECOLOR<ACTIVE|OTHER|BOTH>"<float,float,float>"|[<int>,<int>,<int>]>
Changes the colour of the edges. Values should be represented between 0-255.

EDGEZSCALE<ACTIVE|OTHER|BOTH>"<float>"
Changes the edge Z scale size.

EDGEDISTANCE<ACTIVE|OTHER|BOTH>"<float>"
Changes the edge nominal distance. Accepts a float that is interpretted to distance in metres.

 

MISC SUBCOMMANDS
Misc subcommands mostly deal with scene-naming and image-output functions. Unique to Misc subcommands, you can use Constant Variables in their Global Settings fields to dynamically change their values.

OUTFILE"<string>"
Replaces the output breakout filename with the parameter string. This doesn't replace the path, only the the filename part of the breakout scene.

OUTPUTSUBDIR"<string>"
Designates a suffix to the output file path after the output path was been determined based on the breakout scene's name. (See Scene-naming Convention and Image Output Directory). This is a marked difference from pre-v1.5 where OUTPUTSUBDIR actually appends the string on your scene.

SEQ_OPENING.SHOT01.lws

And a OUTPUTSUBDIR is placed in this way in a render pass with ROBOT as the pass's name:

BTY.BG.OUTPUTSUBDIR"OCC".ARMY

This will output this pass as:

SEQ_OPENING.SHOT01.ROBOT.lws

And will map and create a directory for output images (assuming \images is the main images folder):

\images\SEQ_OPENING\SHOT01\ROBOT\OCC\

 

OUTPUTABSDIR <"absolutePathString">
Specifies an image path for output. The inputted string will be initially interpreted as an absolute path, for the most part. If the drive portion of the path is omitted, then it will be interpreted as a path relative to the root of the project. Unlike OUTPUTSUBDIR this subcommand will not create child directories. It will simply create the specified directory and set the output images to that directory for that pass.

ALPHASUBDIR"<string>"
Similar to OUTSUBDIR, this subcommand instead applies a suffix to the alpha output file name and, in turn, creates a subdirectory under the breakout images directory. The Alpha subdirectory is always under the final image location. When explicitly specified, Alphas are automatically switched on to be saved.

ALPHASUFFIX"<string>"
This subcommand gives you the option of adding a suffix to the final image name. When explicitly specified, Alphas are automatically switched on to be saved.

PASSNAME"<string>"
Designates a suffix that replaces the pass's name and thus renames the scene file accordingly. If your scene name is:

SEQ_OPENING.SHOT01.lws

And your COMMAND is:

BTY.BG.PASSNAME"ROBOT.SHADOW".ARMY

The final scene file looks like:

SEQ_OPENING.SHOT01.ROBOT.SHADOW.lws

And will output an image directory called:

\images\SEQ_OPENING\SHOT01\ROBOT\SHADOW\

If you want to strip the pass name from the standard Janus convention, simply specify the subcommand without any parameter:

BTY.BG.PASSNAME.ARMY

And the final breakout scene file looks like:

SEQ_OPENING.SHOT01.lws

SUBPASSNAME"<string>"
Designates a suffix that goes after the pass's name. This is to provide extra control and identification of passes.

SUBSCENENAME"<string>"
Designates a suffix that is appended directly after the scene name. This provides more granularity in organising passes. If you wish to leverage Janus's file management behaviors regarding periods, you need to manually specify a period before inputting your sub-scene's name. Example, with a base scene named SEQ_OPENING.lws

BTY.BG.subscene"SHOT01".ARMY

Outputs this scene file:

SEQ_OPENINGSHOT01.ARMY.lws

But you may opt to either place an underscore or a period, depending on your preference:

BTY.BG.subscene"_SHOT01".ARMY
(breakout scene: SEQ_OPENING_SHOT1.ARMY)
(output image path: \SEQ_OPENING_SHOT01\ARMY\)

BTY.BG.subscene".red".ARMY
(breakout scene: SEQ_OPENING.red.ARMY)
(output image path: \SEQ_OPENING\red\ARMY\)

SCENENAME<"sceneNameString">
Specifies a new scene output scene name for this pass. This replaces the current scene's name and effectively bypasses the native behavior of Janus of appending the passes' names to the scene file. However, the output images subdirectory will still default to the scene name. If you wish to control the final output directory, you may use OUTPUTABSDIR (e.g. output absolute directory), or use SCENENAME in conjunction with PASSNAME and OUTPUTSUBDIR.

SCENENAME may be used in conjunction with SUBSCENENAME.

If you want to strip the scenename from the breakout directory, as defined in the standard Janus convention, simply specify the subcommand without any parameter:

BTY.BG.SCENENAME.ARMY

And the final breakout scene file looks like:

ARMY.lws

This is useful if you want to compress the final naming of your breakout scenes.

 

LWSC<int>
Specifies the LightWave scene format number. Take care in using this for this may potentially make your scene render incorrectly in Screamernet, unless you know what you are doing.

ACTIVEGRP<"nameOfActiveGroup">
Forces Janus to treat the inputted name as the active group. Regular expressions can be used to match multiple groups, but they must be turned on in the Preferences.

DEFOBJASSOC"INCLUDE"|"EXCLUDE"
This subcommand tells Janus to associate all items with the render pass. This bypasses the need to create an 'All' group for all items. Call this subcommand when you know that all other items in the scene will affect the current render pass. Just like DEFLIGHTEXCLUDE, specify only "Include" or "Exclude" (case-insensitive)

CTCMD"<nameOfCommandType>"
This subcommand inherits the properties of an existing command type. Be sure you specify an existing command type.

BLENDMODE"<blendingMode>"
This subcommand controls the blending mode of the pass's test render image when it is exported to an external application. This is dependent upon the script's use of this subcommand. The following is a list of supported blending modes.

Example:

blendMode"NORMAL"

BLENDMODE"linearDodge"

LAYERNAME"<nameOfLayer>"
This subcommand renames layer of the pass when it is exported to an external application. This is dependent upon the script's use of this subcommand.

PREBREAKOUTLS"<nameOfScript>"
This subcommand execute a pre-breakout script on this render pass.

POSTBREAKOUTLS"<nameOfScript>"
This subcommand execute a post-breakout script on this render pass.

FORDIR"<path/mask>"
This is Janus's For Loop construct for iterating through files within a specified directory. Please see For Loops for more information on how to use this subcommand.

FORFILE"<filename>"
This is Janus's For Loop construct for iterating through lines within an ASCII (e.g. text) file. Please see For Loops for more information on how to use this subcommand.

FORGROUP"<nameOfGroup>"
This is Janus's For Loop construct for iterating through associated groups of a given render pass. FORGROUP accepts regular expressions to do group matching, so you can pick which groups you want to include. If no value is specified, then the "." regular expression is used, which is equivalent of processing all groups. Please see For Loops for more information on how to use this subcommand.

FOREACH"<startIndex>,<endIndex>,<increment>"
This is Janus's For Loop construct for iterating through a user-specified loop. Please see For Loops for more information on how to use this subcommand.

SUBCOMMAND SYNTAX

Subcommands follow a somewhat logical syntax rule, based on what kind of parameter is being changed. Because the subcommand list is a bit long, I will only delineate the kinds of formatting you will encounter. The complete list of subcommands is listed after this subsection.

Two-String Format (i.e. REPLACE)
Unique among other subcommands, REPLACE may accept two strings, or text entries. The two text entries must be enclosed in their own respective pair of quotation marks (“), and have no space between them. They should simply be together. They should look like this:

REPLACEACTIVE”searchString””replaceString”

Single-String Format (i.e. OUTPUTSUBDIR)
Other subcommands only accept one string, like OUTPUTSUBDIR. However, just like REPLACEACTIVE and REPLACEOTHER the text entries must be enclosed in a pair of quotation marks.

OUTPUTSUBDIR"fog"

ON-OFF Format (i.e. RTSHADOW)
Some subcommands only accept an “OFF” or “ON” parameter. The word “OFF” or “ON” (whatever case you want to use) must precede these commands without any space between them:

rtShadowON
rtShadowOFF

Extended-Single-String Format (i.e. ENV, VOL, PIX, IMG)
Some subcommands like ENV, VOL, PIX, and IMG have extended parameters that will no doubt cause confusion at the beginning. They must be followed strictly or the subcommand will be ignored. Because ENV, VOL, PIX, and IMG are unique in this sense I will take time to explain them, with ENV serving as our example subcommand. ENV must be followed by either “ON” or “OFF” signifying the user's initial intention. If no other parameter is inputted, PE assumes that all Environmental plugins are to be turned on or off.

ENVON

But if you specify a string or text containing the plugin's name, or part of the plugin's name, then plugins of that name will be turned on or off.

ENVON”ImageWorld”

However, what if you want to simply turn on or off the plugin except the one you specified. If you wish to exclude your specified plugin name, you must input “EX” just before you input the plugin's name:

ENVONEX”ImageWorld”

Furthermore, Janus gives more specific control over this. Although unlikely, suppose you had two instances of ImageWorld. You can turn one off and the other one on by specifying an instance number. If you wanted to turn the second ImageWorld plugin off you specify the plugin's name, follow it with a period (.) and the number of the instance:

ENVOFF”ImageWorld.2”

Note that the number '2' does not mean the second slot in the list of the plugins. It means the second instance of that particular plugin's name. On the other hand, you can also specify a slot number for enabling or disabling instead of using a name:

ENVOFF”.3”

The subcommand above will disable the plugin on the third slot. Note that a period must go before the number. This is the syntax rule. As of this moment, ENV, VOL, PIX, and IMG may only appear once each in one command line. If ENV appears twice in the command, only the right-most subcommand will be recognised.

Integer Format (i.e. MOTBLUR, AA)
Some subcommands accept a single number like MOTBLUR or AA. These numbers (integers) are index numbers from a existing list of values. This list can be accessed in the main interface. If you use the popdown menu in the interface you will find a number beside the setting. Use this as a reference to input subcommand parameters manually.

FRAMESIZE2 (SVGA (800x600))

In this example the index number 2 refers to SVGA (800x600) (you are looking at the list of camera resolutions).

Integer-Math Format (i.e. PATCH)
Certain subcommands accept parameters that perform basic math operations. Most notable of them is PATCH. This subcommand will accept an integer at face value: PATCHACTIVE3 will dial up an active group's subpatch level to 3. But they can also be inputted with four basic math operators to modify, instead of simply replacing the old values. PATCHACTIVE/2 will take each object individually, look at its current subpatch level and then divide it by two. In the same manner PATCHACTIVE+3 will add three levels of subpatch divisions to the active group. Remember that they are applied on the GROUP but on a per-object basis. One limitation is that you must always use integers. Janus will not grok a subcommand like:

PATCHACTIVE*.5 <- invalid parameters due to period (.) Use PATCHACTIVE/2 for the same effect.

Another limitation is that multiple operators are not supported:

PATCHACTIVE*2/3+1 <- invalid parameters - only one operator allowed

Color Format (i.e. BGCOLOR)
Subcommands like BGCOLOR and AMBCOLOR accept color parameters referring to the RGB channels. These values are floating-point, though they can also be indexed (e.g. 0-255). If using floating-point, the values must be enclosed in quotation marks. Values must be separated by a comma (,) and must be joined with the subcommand (e.g. no whitespace in between). It is recommended to use the floating-point values instead of the integer one.

AMBCOLOR".1,.5,.2"

BGCOLOR125,50,255

Float Format (i.e. SHUTTERREF)
Subcommands that use floating-point numbers must be enclosed in quotation marks.

SHUTTEREFF".34"

 

SPECIAL SUBCOMMANDS

Special subcommands are those used internally by Janus, and not to be used by the user directly. It is only documented here for reference.

REGION<H|V><int> (for internal Janus use only. Not to be used by user directly)
Specifies how many slices to break the frame into and what orientation they should take.

REGIONH10 (breaks the frame into 10 equal regions horizontally)
REGIONV3 (break the frame into 3 equal regions vertically)

Note that this subcommand is only listed here as a reference. It was not meant to be executed by the user directly; Janus internally uses this subcommand and coordinates other functions with it, so using it directly will not always yield proper results.

 

SUBCOMMAND HELPER (+/- BUTTONS)

The best way to familiarise yourself with subcommands and their syntax is to use the + button beside each parameter in the main UI.

When you press these buttons they will append the command line their respective subcommands and insert the value you happen to have in their partnered value field or listboxes. If you click on the button again, it will, if applicable to the subcommand, cycle through the Both, Other, and Active keywords for every key press, and then finally removes the subcommand.

 

CONSTANT VARIABLES

For advanced users, Janus sports constant variables that can be used to reference particular data for use with subcommands.

First note that these variables are flanked by a percentage sign (%).

In Janus, constant variables are implemented as a straightforward run-time replacement of the data in question. This is similar to the @define pragma in LScript.

In addition to subcommands, you may use constant variables in the Output Images Directory field (in the Preferences), and in the Breakout Folder Path.

 

USER VARIABLES

Janus has the ability to define and reference user variables. User variables can be defined globall in the Janus_GlobalPreferences.txt file in the Support_Folder, or on a per-project situation in the Janus_ProjectUserVariables.cfg that is located in the user-defined configuration directory. Project user variable file would take precedence over the globally specified one (if there are shared variable names). In the Configure menu there is an option to edit both the Global and Project user variables.


The format to define a variable is simple; first, it must be under the section [USER_VARIABLES]. Then define the variable by typing it, place an equals sign ('=') and then the value to assign. When referencing user variables you must surround it in percentage signs ('%').

Example: declaring a variable in the Janus_GlobalPreferences.txt.

[USER_VARIABLES]
userVarAlpha=C:\contentPath

Then in a render pass you utilise this user variable:

[NOM.BG.outputSubdir"%userVarAlpha%".ObjectA]

Note that just like Constant Variables, User Variables are simply direct string replacements; they are interpretted as strings when read and when written.

SUBCOMMAND VARIABLES

Subcommand variables are not strictly in the same role as constant and user variables. They are dynamically-replaced variables that operate only (currently, that is) within the context of the Notes field. They are meant to give the user immediate feedback about inherited or assigned settings of a particular render pass. For example, if you wanted to find out a render pass's frame range, or frame size, you can query the render pass using the SF, EF, or FRAMESIZE subcommands (respectively). As long as the render pass is either explicitly assigned, or inheriting values from the global settings, the subcommand variable will be able to query the render pass for its subcommand values. The syntax is thus described as inputted 'sc', followed by a colon (:), then the subcommand, then terminated with another colon:

sc:<subcommand>:

See the section on the Notes field for an example.

USER FUNCTIONS

User functions allow the user to change values through the use of scripting. This is possibly one of the most powerful tools in Janus because it leverages the scripting abilities of LightWave directly.

In comparison, subcommand variables retrieve values based on what is inputted through the gui or the render pass; constant/user variables retrieve the final evaluated values; user functions, on the other hand, are processed by a script function, which provides a very flexible and procedural way of manipulating Janus data. One example usage is if you wanted to manipulate filename strings and return a value based on some parsing behaviour that you customise, you can use user functions to process them. You can change the user functions and see the results immediately.

Due to its growing complexity, a section dedicated to user functions can be found here.