Whats New - Version 6.0.0

26 March 2010

return to main index

RenderMan - prman & 3delight

To support users who develop shaders for both prman and 3delight a couple of features have been added to Cutter to enable a renderer or a compiler to be switched easily. Right mouse clicking on a rib or a rsl document will raise a popup menu. The popup menu now has a "Switch Renderer" and "Switch Compiler" options - figures 1 and 2. Currently, only prman and 3delight are available from the popup.

Figure 1

Figure 2

Rib - prman & 3delight

Users who render with prman and 3delight are aware of the incompatibilies between the two renderers. Typically, a user will duplicate a rib file so that one can be "tuned" for prman while the other is "tuned" for 3delight. An alternative approach is for prman and 3delight to renderer a rib file that uses conditional evaulation (IfBegin/IfEnd block). For example, specifying the appropriate display driver might be done as follows,

Listing 1 - conditional evaluation

    Option "user" "string renderer" ["prman"]
    IfBegin "$user:renderer == 'prman'"
        Display "untitled" "it" "rgba"
        Display "untitled" "idisplay" "rgba"

To avoid the necessity of manually changing the value of the user:renderer option when the renderer is changed from, say, prman to 3delight, Cutter can be set to automatically edit the Option statement. The Options->Env tab of the Rman tool has a "Auto Settings" panel - figure 3.

Figure 3

Selecting the change "user:renderer" button will ensure the value of,

    Option "user" "string renderer" ["prman"]

is automatically updated to match the currently selected renderer, either prman or 3deight, when a rib file is rendered. Alternatively, selecting the change renderer button forces Cutter to automatically select an "appropriate" renderer based on the parameters of the Display statement that it finds in a rib file. For example, this statement will cause Cutter to switch to using prman,

    Display "untitled" "it" "rgba"

Alternatively, if the Display statement specifies "idisplay" Cutter will switch to 3delight.

Rib - Generate Beauty Pass

When selecting Beauty Pass (figure 4) with either the shift, alt or control key pressed Cutter will generate a beauty pass rib containing the conditional code show above in listing 1.

Figure 4

RenderMan - Deep Shadows

Cutter can now generate a shadow pass rib file that will render a standard or a deep shadow map. For example, in the code snippet shown in figure 5 the text for spot2.tex has been selected by clicking on the right mouse button. The popup allows a standard or deep shadow to be rendered. Cutter will generate a shadow rib file, structured appropriately for prman or 3delight, render it and save the shadow map in the users textures directory - figure 6. The shadow pass rib files automatically generated and rendered by Cutter have "deepShd" or "shd" appended to their name.

It should be noted, however, that only the shadowspot (prman) and shadowspot_prman (3delight) lightsource shaders are supported by Cutter.

Figure 5

Figure 6

Aternatively, the user can place the text cursor in the name of a shadowspot texture map and choose to generate a shadow pass rib file using the Rman Tool - figure 7.

Figure 7

The shadow pass ribs generated by Cutter contain the following statements.

      Option "user" "string pass_class" ["DeepShadow"]
      Option "user" "string pass_class" ["Shadow"]

      Attribute "user" "float ShadowMapRendering" [1]

Selecting Blocks of Code

Previous versions of Cutter could select a block of code only if it was bounded by '{' and '}' characters ie. 'C' language code block. This version now recognizes blocks bounded by '(' and ')' characters. HTML docs are now considered to consist of blocks delimited by,
    <P and </P>
    <TD and </TD>
    <TR and </TR>
    <TABLE and </TABLE>
    <HEAD and </HEAD> and
    <BODY and </BODY>
RIB docs are also treated differently in that their "blocks" are delimited by,
    WorldBegin and WorldEnd,
    AttributeBegin and AttributeEnd, and
    TransformBegin and TransformEnd.
However, python style (indented) blocks are not yet recognized by Cutter.

Miscellaneous Bugs

1. A bug that caused a period (".") to replace the final forward slash ("/") in a file path has been corrected.
2. Executing scripts displayed in the History window now works correctly.
3. A copy of a block of text consisting only of white space can now be pasted correctly.
4. A bug that prevented the last line of text being mailed via SMTP has been corrected.
5. A callapsed Process Monitor window will now open and reposition itself within Cutter's desktop when an error message needs attention by the user.

© 2002- Malcolm Kesson. All rights reserved.