Skip to content

Latest commit

 

History

History
676 lines (534 loc) · 48.6 KB

rv-reference-manual-chapter-sixteen.md

File metadata and controls

676 lines (534 loc) · 48.6 KB

Chapter 16 - Node Reference

This chapter has a section for each type of node in RV's image processing graph. The properties and descriptions listed here are the default properties. Any top level node that can be seen in the session manager can have the “name” property of the “ui” component set in order to control how the node is listed.

RVCache

The RVCache node has no external properties.

RVCacheLUT and RVLookLUT

The RVCacheLUT is applied in software before the image is cached and before any software resolution and bit depth changes. The RVLookLUT is applied just before the display LUT but is per-source.

Property Type Size Description
lut.lut float div 3 Contains either a 3D or a channel look LUT
lut.prelut float div 3 Contains a channel pre-LUT
lut.inMatrix float 16 Input color matrix
lut.outMatrix float 16 Output color matrix
lut.scale float 1 LUT output scale factor
lut.offset float 1 LUT output offset
lut.file string 1 Path of LUT file to read when RV session is loaded
lut.size int 1 or 3 With 1 size value, the look LUT is a channel LUT of the specified size, if there are 3 values the look LUT is a 3D LUT with the dimensions indicated
lut.active int 1 If non-0 the LUT is active
lut:output.size int 1 or 3 The resampled LUT output size
lut:output.lut float or half div 3 The resampled output LUT
lut:output.prelut float or half div 3 The resampled output pre-LUT

RVCDL

This node can be used to load CDL properties from CCC, CC, and CDL files on disk.

Property Type Size Description
node.active int 1 If non-0 the CDL is active. A value of 0 turns off the node.
node.colorspace string 1 Can be "rec709", "aces", or "aceslog" and the default is "rec709".
node.file string 1 Path of CCC, CC, or CDL file from which to read properties.
node.slope float[3] 1 Color Decision List per-channel slope control
node.offset float[3] 1 Color Decision List per-channel offset control
node.power float[3] 1 Color Decision List per-channel power control
node.saturation float 1 Color Decision List saturation control
node.noClamp int 1 Set to 1 to remove clamping from CDL equations

RVChannelMap

This node can be used to remap channels that may have been labeled incorrectly.

Property Type Size Description
format.channels string >= 0 An array of channel names. If the property is empty the image will pass though the node unchanged. Otherwise, only those channels appearing in the property array will be output. The channel order will be the same as the order in the property.

RVColor

The color node has a large number of color controls. This node is usually evaluated on the GPU, except when normalize is 1. The CDL is applied after linearization and linear color changes.

Property Type Size Description
color.normalize int 1 Non-0 means to normalize the incoming pixels to [0,1]
color.invert int 1 If non-0, invert the image color using the inversion matrix (See User's Manual)
color.gamma float[3] 1 Apply a gamma. The default is [1.0, 1.0, 1.0]. The three values are applied to R G and B channels independently.
color.offset float[3] 1 Color bias added to incoming color channels. Default = 0 (not bias). Each component is applied to R G B independently.
color.scale float[3] 1 Scales each channel by the respective float value.
color.exposure float[3] 1 Relative exposure in stops. Default = [0, 0, 0], See user's manual for more information on this. Each component is applied to R G and B independently.
color.contrast float[3] 1 Contrast applied per channel (see User's Manual)
color.saturation float 1 Relative saturation (see User's Manual)
color.hue float 1 Hue rotation in radians (see User's Manual)
color.active int 1 If 0, do not apply any color transforms. Turns off the node.
CDL.slope float[3] 1 Color Decision List per-channel slope control
CDL.offset float[3] 1 Color Decision List per-channel offset control
CDL.power float[3] 1 Color Decision List per-channel power control
CDL.saturation float 1 Color Decision List saturation control
CDL.noClamp int 1 Set to 1 to remove clamping from CDL equations
luminanceLUT.lut float div 3 Luminance LUT to be applied to incoming image. Contains R G B triples one after another. The LUT resolution
luminanceLUT.max float 1 A scale on the output of the Luminance LUT
luminanceLUT.active int 1 If non-0, luminance LUT should be applied
luminanceLUT:output.size int 1 Output Luminance lut size
luminanceLUT:output.lut float div 3 Output resampled luminance LUT

RVDispTransform2D

This node is used to do any scaling or translating of the corresponding view group.

Property Type Size Description
transform.translate float[2] 1 Viewing translation
transform.scale float[2] 1 Viewing scale

RVDisplayColor

This node is used by default by any display group as part of its color management pipeline.

Property Type Size Description
color.channelOrder string 1 A four character string containing any of the characters [RGBA10]. The order allows permutation of the normal R G B and A channels as well as filling any channel with 1 or 0.
color.channelFlood int 1 If 0 pass the channels through as they are. When the value is 1, 2, 3, or 4, the R G B or A channels are used to flood the R G and B channels. When the value is 5, the luminance of each pixel is computed and displayed as a gray scale image.
color.gamma float 1 A single gamma value applied to all channels, default = 1.0
color.sRGB int 1 If non-0 a linear to sRGB space transform occurs
color.Rec709 int 1 If non-0 the Rec709 transfer function is applied
color.brightness float 1 In relative stops, the final pixel values are brightened or dimmed according to this value. Occurs after all color space transforms.
color.outOfRange int 1 If non-0 pass pixels through an out of range filter. Channel values in the (0,1] are set to 0.5, channel values [-inf,0] are set to 0 and channel values (1,inf] are set to 1.0.
color.active int 1 If 0 deactivate the display node
lut.lut float div 3 Contains either a 3D or a channel display LUT
lut.prelut float div 3 Contains a channel pre-LUT
lut.scale float 1 LUT output scale factor
lut.offset float 1 LUT output offset
lut.inMatrix float 16 Input color matrix
lut.outMatrix float 16 Output color matrix
lut.file string 1 Path of LUT file to read when RV session is loaded
lut.size int 1 or 3 With 1 size value, the display LUT is a channel LUT of the specified size, if there are 3 values the display LUT is a 3D LUT with the dimensions indicated
lut.active int 1 If non-0 the display LUT is active
lut:output.size int 1 or 3 The resampled LUT output size
lut:output.lut float or half div 3 The resampled output LUT
lut:output.prelut float or half div 3 The resampled output pre-LUT

RVDisplayGroup and RVOutputGroup

The display group provides per device display conditioning. The output group is the analogous node group for RVIO. The display groups are never saved in the session, but there is only one output group and it is saved for RVIO. There are no user external properties at this time.

RVDisplayStereo

This node governs how to handle stereo playback including controlling the placement of stereo sources.

Property Type Size Description
rightTransform.flip int 1 Flip the right eye top to bottom.
rightTransform.flop int 1 Flop the right eye left to right.
rightTransform.rotate float 1 Rotation of right eye in degrees.
rightTransform.translate float[2] 1 Translation offset in X and Y for the right eye.
stereo.relativeOffset float 1 Relative stereo offset for both eyes.
stereo.rightOffset float 1 Stereo offset for right eye only.
stereo.swap int 1 If set to 1 treat left eye as right and right eye as left.
stereo.type string 1 Stereo mode in use. For example: left, right, pair, mirror, scanline, anaglyph, checker... (default is off)

RVFileSource

The source node controls file I/O and organize the source media into layers (in the RV sense). It has basic controls needed to mix the layers together.

Name Type Size Description
media.movie string > 1 The movie, image, audio files and image sequence names. Each name is a layer in the source.There is typically at least one value in this property
group.fps float 1 Overrides the fps found in any movie or image file or if none is found overrides the default fps of 24.
group.volume float 1 Relative volume. This can be any positive number or 0.
group.audioOffset float 1 Audio offset in seconds. All audio layers will be offset.
group.rangeOffset int 1 Shifts the start and end frame numbers of all image media in the source.
group.rangeStart int 1 Resets the start frame of all image media to given value. This is an optional property. It must be created to be set and removed to unset.
group.balance float 1 Range of [-1,1]. A value of 0 means the audio volume is the same for both the left and right channels.
group.noMovieAudio int 1 Do not use audio tracks in movies files
cut.in int 1 The preferred start frame of the sequence/movie file
cut.out int 1 The preferred end frame of the sequence/movie file
request.readAllChannels int 1 If the value is 1 and the image format can read multiple channels, it is requested to read all channels in the current image layer and view.
request.imageComponent string 2, 3, or 4 This array is of the form: type, view, [layer[, channel]]. The type describes what is defined in the remainder of the array. The type may be one of ”view”, ”layer”, or ”channel”. The 2nd element of the array must be defined and is the value of the view. If there are 3 elements defined then the 3rd is the layer name. If there are 4 elements defined then the 4th is the channel name.
request.stereoViews string 0 or 2 If there are values in this property, they will be passed to the image reader when in stereo viewing mode as requested view names for the left and right eyes.
attributes.key string, int, or float 1 This optional container of properties will get automatically included in the metadata associated with the source. The key can be any string and will be displayed as the metadata item name when displayed in the Image Info. The value of the property will be displayed as the value of the metadata.

RVFolderGroup

The folder group contains either a SwitchGroup or LayoutGroup which determines how it is displayed.

Name Type Size Description
ui.name string 1 This is a user specified name which appears in the user interface.
mode.viewType string 1 Either “switch” or “layout”. Determines how the folder is displayed.

RVFormat

This node is used to alter geometry or color depth of an image source. It is part of an RVSourceGroup.

Property Type Size Description
geometry.xfit int 1 Forces the resolution to a specific width
geometry.yfit int 1 Forces the resolution to a specific height
geometry.xresize int 1 Forces the resolution to a specific width
geometry.yresize int 1 Forces the resolution to a specific height
geometry.scale float 1 Multiplier on incoming resolution. E.g., 0.5 when applied to 2048x1556 results in a 1024x768 image.
geometry.resampleMethod string 1 Method to use when resampling. The possible values are area, cubic, and linear,
crop.active int 1 If non-0 cropping is active
crop.xmin int 1 Minimum X value of crop in pixel space
crop.ymin int 1 Minimum Y value of crop in pixel space
crop.xmax int 1 Maximum X value of crop in pixel space
crop.ymax int 1 Maximum Y value of crop in pixel space
uncrop.active int 1 In non-0 uncrop region is used
uncrop.x int 1 X offset of input image into uncropped image space
uncrop.y int 1 Y offset of input image into uncropped image space
uncrop.width int 1 Width of uncropped image space
uncrop.height int 1 Height of uncropped image space
color.maxBitDepth int 1 One of 8, 16, or 32 indicating the maximum allowed bit depth (for either float or integer pixels)
color.allowFloatingPoint int 1 If non-0 floating point images will be allowed on the GPU otherwise, the image will be converted to integer of the same bit depth (or the maximum bit depth).

RVImageSource

The RV image source is subset of what RV can handle from an external file (basically just EXR). Image sources can have multiple views each of which have multiple layers. However, all views must have the same layers. Image sources cannot have layers within layers, orphaned channels, empty views, missing views, or other weirdnesses that EXR can have.

Name Type Size Description
media.movie string > 1 The movie, image, audio files and image sequence names. Each name is a layer in the source.There is typically at least one value in this property.
media.name string 1 The name for this image.
cut.in int 1 The preferred start frame of the sequence/movie file.
cut.out int 1 The preferred end frame of the sequence/movie file.
image.channels string 1 String representing the channels in the image.
image.layers string > 1 List of strings representing the layers in the image.
image.views string > 1 List of strings representing the views in the image.
image.defaultLayer string 1 String representing the layer from image.layers that should be treated as default layer.
image.defaultView string 1 String representing the view from image.views that should be treated as default view.
image.start int 1 First frame of the source.
image.end int 1 Last frame of the source.
image.inc int 1 Number of frames to step by.
image.fps float 1 Frame rate of source in float ratio of frames per second.
image.pixelAspect float 1 Image aspect ratio as a float of width over height.
image.uncropHeight int 1 Height of uncropped image space.
image.uncropWidth int 1 Width of uncropped image space.
image.uncropX int 1 X offset of image into uncropped image space.
image.uncropY int 1 Y offset of image into uncropped image space.
image.width int 1 Image width in integer pixels.
image.height int 1 Image height in integer pixels.
request.imageChannelSelection string Any Any values are considered image channel names. These are passed to the image readers with the request that only these layers be read from the image pixels.
request.imageComponent string 2, 3, or 4 This array is of the form: type, view, [layer[, channel]]. The type describes what is defined in the remainder of the array. The type may be one of ”view”, ”layer”, or ”channel”. The 2nd element of the array must be defined and is the value of the view. If there are 3 elements defined then the 3rd is the layer name. If there are 4 elements defined then the 4th is the channel name.
request.stereoViews string 0 or 2 If there are values in this property, they will be passed to the image reader when in stereo viewing mode as requested view names for the left and right eyes.
attributes.key string, int, or float 1 This optional container of properties will get automatically included in the metadata associated with the source. The key can be any string and will be displayed as the metadata item name when displayed in the Image Info. The value of the property will be displayed as the value of the metadata.

RVLayoutGroup

The source group contains a single chain of nodes the leaf of which is an RVFileSource or RVImageSource. It has a single property.

Name Type Size Description
ui.name string 1 This is a user specified name which appears in the user interface.
layout.mode string 1 The string mode that dictates the way items are layed out. Possible values are: packed, packed2, row, column, and grid (default is packed).
layout.spacing float 1 Scale the items in the layout. Legal values are between 0.0 and 1.0.
layout.gridColumns int 1 When in grid mode constrain grid to this many columns. If this set to 0, then the number of columns will be determined by gridRows. If both are 0, then both will be automatically calculated.
layout.gridRows int 1 When in grid mode constrain grid to this many rows. If this is set to 0, then the number of rows will be determined by gridColumns. This value is ignored when gridColumns is non-zero.
timing.retimeInputs int 1 Retime all inputs to the output fps if 1 otherwise play back their frames one at a time at the output fps.

RVLensWarp

This node handles the pixel aspect ratio of a source group. The lens warp node can also be used to perform radial and/or tangential distortion on a frame. It implements the Brown's distortion model (similar to that adopted by OpenCV or Adobe Lens Camera Profile model) and 3DE4's Anamorphic Degree6 model. This node can be used to perform operations like lens distortion or artistic lens warp effects.

Name Type Size Description
warp.pixelAspectRatio float 1 If non-0 set the pixel aspect ratio. Otherwise use the pixel aspect ratio reported by the incoming image. (default 0, ignored)
warp.model string Lens model: choices are “brown”, “opencv”, “pfbarrel”, “adobe”, “3de4_anamorphic_degree_6, “rv4.0.10”.
warp.k1 float 1 Radial coefficient for r^2 (default 0.0)Applicable to “brown”, “opencv”, “pfbarrel”, “adobe”.
warp.k2 float 1 Radial coefficient for r^4 (default 0.0)Applicable to “brown”, “opencv”, “pfbarrel”, “adobe”.
warp.k3 float 1 Radial coefficient for r^6 (default 0.0)Applicable to “brown”, “opencv”, “adobe”.
warp.p1 float 1 First tangential coefficient (default 0.0)Applicable to “brown”, “opencv”, “adobe”.
warp.p2 float 1 Second tangential coefficient (default 0.0)Applicable to “brown”, “opencv”, “adobe”.
warp.cx02 float 1 Applicable to “3de4_anamorphic_degree_6”. (default 0.0)
warp.cy02 float 1 Applicable to “3de4_anamorphic_degree_6”. (default 0.0)
warp.cx22 float 1 Applicable to “3de4_anamorphic_degree_6”. (default 0.0)
warp.cy22 float 1 Applicable to “3de4_anamorphic_degree_6”. (default 0.0)
warp.cx04 float 1 Applicable to “3de4_anamorphic_degree_6”. (default 0.0)
warp.cy04 float 1 Applicable to “3de4_anamorphic_degree_6”. (default 0.0)
warp.cx24 float 1 Applicable to “3de4_anamorphic_degree_6”. (default 0.0)
warp.cy24 float 1 Applicable to “3de4_anamorphic_degree_6”. (default 0.0)
warp.cx44 float 1 Applicable to “3de4_anamorphic_degree_6”. (default 0.0)
warp.cy44 float 1 Applicable to “3de4_anamorphic_degree_6”. (default 0.0)
warp.cx06 float 1 Applicable to “3de4_anamorphic_degree_6”. (default 0.0)
warp.cy06 float 1 Applicable to “3de4_anamorphic_degree_6”. (default 0.0)
warp.cx26 float 1 Applicable to “3de4_anamorphic_degree_6”. (default 0.0)
warp.cy26 float 1 Applicable to “3de4_anamorphic_degree_6”. (default 0.0)
warp.cx46 float 1 Applicable to “3de4_anamorphic_degree_6”. (default 0.0)
warp.cy46 float 1 Applicable to “3de4_anamorphic_degree_6”. (default 0.0)
warp.cx66 float 1 Applicable to “3de4_anamorphic_degree_6”. (default 0.0)
warp.cy66 float 1 Applicable to “3de4_anamorphic_degree_6”. (default 0.0)
warp.center float[2] 1 Position of distortion center in normalized values [0...1] (default [0.5 0.5]. Applicable to all models.
warp.offset float[2] 1 Offset from distortion center in normalized values [0...1.0] (default [0.0 0.0]). Applicable to all models.
warp.fx float 1 Normalized FocalLength in X (default 1.0).Applicable to “brown”, “opencv”, “adobe”, “3de4_anamorphic_degree_6”.
warp.fy float 1 Normalized FocalLength in Y (default 1.0).Applicable to “brown”, “opencv”, “adobe”, “3de4_anamorphic_degree_6”.
warp.cropRatioX float 1 Crop ratio of fovX (default 1.0). Applicable to all models.
warp.cropRatioY float 1 Crop ratio of fovY (default 1.0). Applicable to all models.
node.active int 1 If 0, do not apply any warp/pixel aspect ratio transform. Turns off the node. (default 1)

Example use case: Using OpenCV to determine lens distort parameters for RVLensWarp node based on GoPro footage. First capture some footage of a checkboard with your GoPro. Then you can use OpenCV camera calibration approach on this footage to solve for k1,k2,k3,p1 and p2. In OpenCV these numbers are reported back as follows. For example our 1920x1440 Hero3 Black GoPro solve returned:

    fx=829.122253 0.000000 cx=969.551819
    0.000000 fy=829.122253 cy=687.480774
    0.000000 0.000000 1.000000
    k1=-0.198361 k2=0.028252 p1=0.000092 p2=-0.000073 

The OpenCV camera calibration solve output numbers are then translated/normalized to the RVLensWarpode property values as follows:

    warp.model = "opencv"
    warp.k1 = k1
    warp.k2 = k2
    warp.p1 = p1
    warp.p2 = p2
    warp.center = [cx/1920 cy/1440]
    warp.fx = fx/1920
    warp.fy = fy/1920 

e.g. mu code:

    set("#RVLensWarp.warp.model", "opencv");
    set("#RVLensWarp.warp.k1", -0.198361);
    set("#RVLensWarp.warp.k2", 0.028252);
    set("#RVLensWarp.warp.p1", 0.00092);
    set("#RVLensWarp.warp.p2", -0.00073);
    setFloatProperty("#RVLensWarp.warp.offset", float[]{0.505, 0.4774}, true);
    set("#RVLensWarp.warp.fx", 0.43185);
    set("#RVLensWarp.warp.fy", 0.43185); 

Example use case: Using Adobe LCP (Lens Camera Profile) distort parameters for RVLensWarp node. Adobe LCP files can be located in '/Library/Application Support/Adobe/CameraRaw/LensProfiles/1.0' under OSX. Adobe LCP file parameters maps to the RVLensWarp node properties as follows:

    warp.model = "adobe"
    warp.k1 = stCamera:RadialDistortParam1
    warp.k2 = stCamera:RadialDistortParam2
    warp.k3 = stCamera:RadialDistortParam3
    warp.p1 = stCamera:TangentialDistortParam1
    warp.p2 = stCamera:TangentialDistortParam2
    warp.center = [stCamera:ImageXCenter stCamera:ImageYCenter]
    warp.fx = stCamera:FocalLengthX
    warp.fy = stCamera:FocalLengthY 

RVLinearize

The linearize node has a large number of color controls. The CDL is applied before linearization occurs.

Property Type Size Description
color.alphaType int 1 By default (0), uses the alpha type reported by the incoming image. Otherwise, 1 means the alpha is premultiplied, 0 means the incoming alpha is unpremultiplied.
color.YUV int 1 If the value is non-0, convert the incoming pixels from YUV space to linear space.
color.logtype int 1 The default (0), means no log to linear transform, 1 uses the cineon transform (see cineon.whiteCodeValue and cineon.blackCodeValue below), 2 means use the Viper camera log to linear transform, and 3 means use LogC log to linear transform.
color.sRGB2linear int 1 If the value is non-0, convert the incoming pixels from sRGB space to linear space.
color.Rec709ToLinear int 1 If the value is non-0, convert the incoming pixels using the inverse of the Rec709 transfer function.
color.fileGamma float 1 Apply a gamma to linearize the incoming image. The default is 1.0.
color.active int 1 If 0, do not apply any color transforms. Turns off the node.
color.ignoreChromaticities int 1 If non-0, ignore any non-Rec 709 chromaticities reported by the incoming image.
CDL.slope float[3] 1 Color Decision List per-channel slope control.
CDL.offset float[3] 1 Color Decision List per-channel offset control.
CDL.power float[3] 1 Color Decision List per-channel power control.
CDL.saturation float 1 Color Decision List saturation control.
CDL.noClamp int 1 Set to 1 to remove clamping from CDL equations.
CDL.active int 1 If non-0 the CDL is active.
lut.lut float div 3 Contains either a 3D or a channel file LUT.
lut.prelut float div 3 Contains a channel pre-LUT.
lut.inMatrix float 16 Input color matrix.
lut.outMatrix float 16 Output color matrix.
lut.scale float 1 LUT output scale factor.
lut.offset float 1 LUT output offset.
lut.file string 1 Path of LUT file to read when RV session is loaded.
lut.size int 1 or 3 With 1 size value, the file LUT is a channel LUT of the specified size, if there are 3 values the file LUT is a 3D LUT with the dimensions indicated.
lut.active int 1 If non-0 the file LUT is active.
lut:output.size int 1 or 3 The resampled LUT output size.
lut:output.lut float or half div 3 The resampled output LUT.

OCIO (OpenColorIO), OCIOFile, OCIOLook, and OCIODisplay

OpenColorIO nodes can be used in place of existing RV LUT pipelines. Properties in RVColorPipelineGroup, RVLinearizePipelineGroup, RVLookPipelineGroup, and RVDisplayPipelineGroup determine whether or not the OCIO nodes are used. All OCIO nodes have the same properties and function, but their location in the color pipeline is determined by their type. The exception is the generic OCIO node which can be created by the user and used in any context.

For more information, see Chapter 11 - OpenColorIO

Property Type Size Description
ocio.lut float div 3 Contains a 3D LUT, size determined by ocio.lut3DSize
lut.prelut float div 3 Currently unused
ocio.active int 1 Non-0 means node is active
ocio.lut3DSize int 1 3D LUT size of all dimensions (default is 32)
ocio.inSpace string 1 Name of OCIO input colorspace
ocio_context. name string 1 Name/Value pairs for OCIO context

RVOverlay

Overlay nodes can be used with any source. They can be used to draw arbitrary rectangles and text over the source but beneath any annotations. Overlay nodes can hold any number of 3 types of components: rect components describe a rectangle to be rendered, text components describe a string (or an array of strings, one per frame) to be rendered, and window components describe a matted region to be indicated either by coloring the region outside the window, or by outlining it. The coordiates of the corners of the window may be animated by specifying one number per frame.In the below the “ id ” in the component name can be any string, but must be different for each component of the same type.

Property Type Size Description
overlay.nextRectId int 1 (unused)
overlay.nextTextId int 1 (unused)
overlay.show int 1 If 1 display any rectangles/text/window entries. If 0 do not.
matte.show int 1 If 1 display the source specific matte, not the global
matte.aspect float 1 Aspect ratio of the source's matte
matte.opacity float 1 Opacity of the source's matte
matte.heightVisible float 1 Fraction of the source height that is still visible from the matte.
matte.centerPoint float[2] 1 The center of the matte stored as X, Y in normalized coordinates.
rect: id .color float[4] 1 The color of the rectangle
rect: id .width float 1 The width of the rectangle in the normalized coordinate system
rect: id .height float 1 The height of the rectangle in the normalized coordinate system
rect: id .position float[2] 1 Location of the rectangle in the normalized coordinate system
rect: id .active int 1 If 0, rect will not be rendered
rect: id .eye int 1 If absent, or set to 2, the rectangle will be rendered in both stereo eyes. If set to 0 or 1, only in the corresponding eye.
text: id .pixelScale float[2] 1 X and Y scaling factors for position, IE expected source resolution, if present and non-zero, position is expected in “pixels”.
text: id .position float[2] 1 Location of the text (coordinate are normalized unless pixelScale is set, in which case they are in “pixels”)
text: id .color float[4] 1 The color of the text
text: id .spacing float 1 The spacing of the text
text: id .size float 1 The size of the text
text: id .scale float 1 The scale of the text
text: id .rotation float 1 (unused)
text: id .font string 1 The path to the .ttf (TrueType) font to use (Default is Luxi Serif)
text: id .text string N Text to be rendered, if multi-valued there should be one string per frame in the expected range.
text: id .origin string 1 The origin of the text box. The position property will store the location of the origin, but the origin can be on any corner of the text box or centered in between. The valid possible values for origin are top-left, top-center, top-right, center-left, center-center, center-right, bottom-left, bottom-center, bottom-right, and the empty string (which is the default for backwards compatibility).
text: id .eye int 1 If absent, or set to 2, the rectangle will be rendered in both stereo eyes. If set to 0 or 1, only in the corresponding eye.
text: id .active int 1 If active is 0, the text item will not be rendered
text: id .firstFrame int 1 If the “text” property is multi-valued, this property indicates the frame number corresponding to the first text value.
text: id .debug int 1 (unused)
window: id .eye int 1 If absent, or set to 2, the rectangle will be rendered in both stereo eyes. If set to 0 or 1, only in the corresponding eye.
window: id .antialias int 1 If 1, outline/window edge drawing will be antialiased. Default 0.
window: id .windowActive int 1 If windowActive is 0, the window “matting” will not be rendered
window: id .outlineActive int 1 If outlineActive is 0, the window outline will not be rendered
window: id .outlineWidth float 1 Assuming antialias = 1, nominal width in image-space pixels of the outline (and the degree of blurriness of the matte edge). Default 3.0
window: id .outlineBrush string 1 Assuming antialias = 1, brush used to stroke the outline (choices are "gauss" or "solid"). Default is gauss.
window: id .windowColor float[4] 1 The color of the window “matting”.
window: id .outlineColor float[4] 1 The color of the window outline.
window: id .imageAspect float 1 The expected imageAspect of the media. If imageAspect is present and non-zero, normalized window coordinates are expected.
window: id .pixelScale float[2] 1 X and Y scaling factors for window coordinates, IE expected source resolution. Used to normalize window coords in “pixels”. For pixelScale to take effect, imageAspect must be missing or 0.
window: id .firstFrame int 1 If any of the window coord properties is multi-valued, this property indicates the frame number corresponding to the first coord value.
window: id.windowULx float N Upper left window corner (x coord).
window: id.windowULy float N Upper left window corner (y coord).
window: id.windowLLx float N Lower left window corner (x coord).
window: id.windowLLy float N Lower left window corner (y coord).
window: id.windowURx float N Upper right window corner (x coord).
window: id.windowURy float N Upper right window corner (y coord).
window: id.windowLRx float N Lower right window corner (x coord).
window: id.windowLRy float N Lower right window corner (y coord).

RVPaint

Paint nodes are used primarily to store per frame annotations. Below id is the value of nextID at the time the paint command property was created, frame is the frame on which the annotation will appear, user is the username of the user who created the property.

Property Type Size Description
paint.nextId int 1 A counter used by the annotation mode to uniquely tag annotation pen strokes and text.
paint.nextAnnotationId int 1 (unused)
paint.show int 1 If 1 display any paint strokes and text entries. If 0 do not.
paint.exclude string N (unused)
paint.include string N (unused)
pen: id : frame : user .color float[4] 1 The color of the pen stroke
pen: id : frame : user .width float 1 The width of the pen stroke
pen: id : frame : user .brush string 1 Brush style of “gauss” or “circle” for soft or hard lines respectively
pen: id : frame : user .points float[2] N Points of the stroke in the normalized coordinate system
pen: id : frame : user .debug int 1 If 1 show multicolored bounding lines around the stroke.
pen: id : frame : user .join int 1 The joining style of the stroke:NoJoin = 0; BevelJoin = 1; MiterJoin = 2; RoundJoin = 3;
pen: id : frame : user .cap int 1 The cap style of the stroke:NoCap = 0; SquareCap = 1; RoundCap = 2;
pen: id : frame : user .splat int 1
pen: id : frame : user .mode int 1 Drawing mode of the stroke (Default if missing is 0):RenderOverMode = 0; RenderEraseMode = 1;
text: id : frame : user .position float[2] 1 Location of the text in the normalized coordinate system
text: id : frame : user .color float[4] 1 The color of the text
text: id : frame : user .spacing float 1 The spacing of the text
text: id : frame : user .size float 1 The size of the text
text: id : frame : user .scale float 1 The scale of the text
text: id : frame : user .rotation float 1 (unused)
text: id : frame : user .font string 1 The path to the .ttf (TrueType) font to use (Default is Luxi Serif)
text: id : frame : user .text string 1 Content of the text
text: id : frame : user .origin string 1 The origin of the text box. The position property will store the location of the origin, but the origin can be on any corner of the text box or centered in between. The valid possible values for origin are top-left, top-center, top-right, center-left, center-center, center-right, bottom-left, bottom-center, bottom-right, and the empty string (which is the default for backwards compatibility).
text: id : frame : user .debug int 1 (unused)

RVPrimaryConvert

The primary convert node can be used to perform primary colorspace conversion with illuminant adaptation on a frame that has been linearized. The input and output colorspace primaries are specified in terms of input and output chromaticities for red, green, blue and white points. Illuminant adaptation is implemented using the Bradford transform where the input and output illuminant are specified in terms of their white points. Illuminant adaptation is optional. Default values are set for D65 Rec709.

Property Type Size Description
node.active int 1 If non-zero node is active. (default 0)
illuminantAdaptation.useBradfordTransform int 1 If non-zero illuminant adaptation is enabled using Bradford transform. (default 1)
illuminantAdaptaton.inIlluminantWhite float 1 Input illuminant white point. (default [0.3127 0.3290])
illuminantAdaptation.outIlluminantWhite float 1 Output illuminant white point. (default [0.3127 0.3290])
inChromaticities.red float[2] 1 Input chromaticities red point. (default [0.6400 0.3300])
inChromaticities.green float[2] 1 Input chromaticities green point. (default [0.3000 0.6000])
inChromaticities.blue float[2] 1 Input chromaticities blue point. (default [0.1500 0.0600])
inChromaticities.white float[2] 1 Input chromaticities white point. (default [0.3127 0.3290])
outChromaticities.red float[2] 1 Output chromaticities red point. (default [0.6400 0.3300])
outChromaticities.green float[2] 1 Output chromaticities green point. (default [0.3000 0.6000])
outChromaticities.blue float[2] 1 Output chromaticities blue point. (default [0.1500 0.0600])
outChromaticities.white float[2] 1 Output chromaticities white point. (default [0.3127 0.3290])

PipelineGroup, RVDisplayPipelineGroup, RVColorPipelineGroup, RVLinearizePipelineGroup, RVLookPipelineGroup and RVViewPipelineGroup

The PipelineGroup node and the RV specific pipeline nodes are group nodes that manages a pipeline of single input nodes. There is a single property on the node which determines the structure of the pipeline. The only difference between the various pipeline node types is the default value of the property.

Property Type Size Description
pipeline.nodes string 1 or more The type names of the nodes in the managed pipeline from input to output order.
Node Type Default Pipeline
PipelineGroup No Default Pipeline
RVLinearizePipelineGroup RVLinearize
RVColorPipelineGroup RVColor
RVLookPipelineGroup RVLookLUT
RVViewPipelineGroup No Default Pipeline
RVDisplayPipelineGroup RVDisplayColor

RVRetime

Retime nodes are in many of the group nodes to handle any necessary time changes to match playback between sources and views with different native frame rates. You can also use them for “artistic retiming” of two varieties.The properties in the “warp” component (see below) implement a key-framed “speed warping” variety of retiming, where the keys describe the speed (as a multiplicative factor of the target frame rate - so 1.0 implies no difference, 0.5 implies half-speed, and 2.0 implies double-speed) at a given input frame. Or you can provide an explicit map of output frames from input frames with the properties in the “explicit” component (see below). Note that the warping will still make use of what it can of the “standard” retiming properties (in particular the output fps and the visual scale), but if you use explicit retiming, none of the standard properties will have any effect. The “precedence” of the retiming types depends on the active flags: if “explicit.active” is non-zero, the other properties will have no effect., and if there is no explicit retiming, warping will be active if “warp.active” is true. Please note that neither speed warping nor explicit mapping does any retiming of the input audio.

Property Type Size Description
visual.scale float 1 If extending the length scale is greater than 1.0. If decreasing the length scale is less than 1.0.
visual.offset float 1 Number of frames to shift output.
audio.scale float 1 If extending the length scale is greater than 1.0. If decreasing the length scale is less than 1.0.
audio.offset float 1 Number of seconds to shift output.
output.fps float 1 Output frame rate in frames per second.
warp.active int 1 1 if warping should be active.
warp.keyFrames int N Input frame numbers at which target speed should change.
warp.keyRates float N Target speed multipliers for each input frame number above (1.0 means no speed change).
explicit.active int 1 1 if an explicit mapping is provided and should be used.
explicit.firstOutputFrame int 1 The output frame range provided by the Retime node will start with this frame. The last frame provided will be determined by the length of the array in the “inputFrames” property.
explicit.inputFrames int N Each element in this array corresponds to an output frame, and the value of each element is the input frame number that will be used to provide the corresponding output frame.

RVRetimeGroup

The RetimeGroup is mostly just a holder for a Retime node. It has a single property.

Name Type Size Description
ui.name string 1 This is a user specified name which appears in the user interface.

RVSequence

Information about how to create a working EDL can be found in the User's Manual. All of the properties in the edl component should be the same size.

Property Type Size Description
edl.frame int N The global frame number which starts each cut
edl.source int N The source input number of each cut
edl.in int N The source relative in frame for each cut
edl.out int N The source relative out frame for each cut
output.fps float 1 Output FPS for the sequence. Input nodes may be retimed to this FPS.
output.size int[2] 1 The virtual output size of the sequence. This may not match the input sizes.
output.interactiveSize int 1 If 1 then adjust the virtual output size automatically to the window size for framing.
output.autoSize int 1 Figure out a good size automatically from the input sizes if 1. Otherwise use output.size.
mode.useCutInfo int 1 Use cut information on the inputs to determine EDL timing.
mode.autoEDL int 1 If non-0, automatically concatenate new sources to the existing EDL, otherwise do not modify the EDL

RVSequenceGroup

The sequence group contains a chain of nodes for each of its inputs. The input chains are connected to a single RVSequence node which controls timing and switching between the inputs.

Name Type Size Description
ui.name string 1 This is a user specified name which appears in the user interface.
timing.retimeInputs int 1 Retime all inputs to the output fps if 1 otherwise play back their frames one at a time at the output fps.

RVSession

The session node is a great place to store centrally located information to easily access from any other node or location. Almost like a global grab bag.

Name Type Size Description
matte.aspect float 1 Centralized setting for the aspect ratio of the matte used in all sources. Float ratio of width divided by height.
matte.centerPoint float[2] 1 Centralized setting for the center of the matte used in all sources. Value stored as X, Y in normalized coordinates.
matte.heightVisible float 1 Centralized setting for the fraction of the source height that is still visible from the matte used in all sources.
matte.opacity float 1 Centralized setting for the opacity of the matte used in all sources. 0 == clear 1 == opaque.
matte.show int 1 Centralized setting to turn on or off the matte used in all sources. 0 == OFF 1 == ON.

RVSoundTrack

Used to construct the audio waveform textures.

Property Type Size Description
audio.volume float 1 Global audio volume
audio.balance float 1 [-1,1] left/right channel balance
audio.offset float 1 Globl audio offset in seconds
audio.mute int 1 If non-0 audio is muted

RVSourceGroup

The source group contains a single chain of nodes the leaf of which is an RVFileSource or RVImageSource. It has a single property.

Name Type Size Description
ui.name string 1 This is a user specified name which appears in the user interface.

RVSourceStereo

The source stereo nodes are used to control independent eye transformations.

Property Type Size Description
stereo.swap int 1 If non-0 swap the left and right eyes
stereo.relativeOffset float 1 Offset distance between eyes, default = 0. Both eyes are offset.
stereo.rightOffset float 1 Offset distance between eyes, default = 0. Only right eye is offset.
rightTransform.flip int 1 If non-0 flip the right eye
rightTransform.flop int 1 If non-0 flop the right eye
rightTransform.rotate float 1 Right eye rotation in degrees
rightTransform.translate float[2] 1 independent 2D translation applied only to right eye (on top of offsets)

RVStack

The stack node is part of a stack group and handles control for settings like compositing each layer as well as output playback timing.

Property Type Size Description
output.fps float 1 Output FPS for the stack. Input nodes may be retimed to this FPS.
output.size int[2] 1 The virtual output size of the stack. This may not match the input sizes.
output.autoSize int 1 Figure out a good size automatically from the input sizes if 1. Otherwise use output.size.
output.chosenAudioInput string 1 Name of input which becomes the audio output of the stack. If the value is .all. then all inputs are mixed. If the value is .first. then the first input is used.
composite.type string 1 The compositing operation to perform on the inputs. Valid values are: over, add, difference, -difference, and replace
mode.useCutInfo int 1 Use cut information on the inputs to determine EDL timing.
mode.strictFrameRanges int 1 If 1 match the timeline frames to the source frames instead of retiming to frame 1.
mode.alignStartFrames int 1 If 1 offset all inputs so they start at same frame as the first input.

RVStackGroup

The stack group contains a chain of nodes for each of its inputs. The input chains are connected to a single RVStack node which controls compositing of the inputs as well as basic timing offsets.

Name Type Size Description
ui.name string 1 This is a user specified name which appears in the user interface.
timing.retimeInputs int 1 Retime all inputs to the output fps if 1 otherwise play back their frames one at a time at the output fps.

RVSwitch

The switch node is part of a switch group and handles control for output playback timing.

Property Type Size Description
output.fps float 1 Output FPS for the switch. This is normally determined by the active input.
output.size int[2] 1 The virtual output size of the stack. This is normally determined by the active input.
output.autoSize int 1 Figure out a good size automatically from the input sizes if 1. Otherwise use output.size.
output.input string 1 Name of the active input node.
mode.useCutInfo int 1 Use cut information on the inputs to determine EDL timing.
mode.alignStartFrames int 1 If 1 offset all inputs so they start at same frame as the first input.

RVSwitchGroup

The switch group changes it behavior depending on which of its inputs is “active”. It contains a single Switch node to which all of its inputs are connected.

Name Type Size Description
ui.name string 1 This is a user specified name which appears in the user interface.

RVTransform2D

The 2D transform node controls the image transformations. This node is usually evaluated on the GPU.

Property Type Size Description
transform.flip int 1 non-0 means flip the image (vertically)
transform.flop int 1 non-0 means flop the image (horizontally)
transform.rotate float 1 Rotate the image in degrees about its center.
pixel.aspectRatio float 1 If non-0 set the pixel aspect ratio. Otherwise use the pixel aspect ratio reported by the incoming image.
transform.translate float[2] 1 Translation in 2D in NDC space
transform.scale float[2] 1 Scale in X and Y dimensions in NDC space
stencil.visibleBox float 4 Four floats indicating the left, right, top, and bottom in NDC space of a stencil box.

RVViewGroup

The RVViewGroup node has no external properties.