Class: LayerRTI

LayerRTI

LayerRTI implements Reflectance Transformation Imaging (RTI) visualization.

RTI is an imaging technique that captures surface reflectance data to enable interactive relighting of an object from different directions. The layer handles the 'relight' data format, which consists of:

  • info.json: Contains RTI parameters and configuration
  • plane_*.jpg: Series of coefficient images
  • normals.jpg: Optional normal map (when using normals=true)

Features:

  • Interactive relighting
  • Multiple layout support
  • Normal map integration
  • Light direction control
  • Animation support
  • World rotation handling

Technical Details:

  • Uses coefficient-based relighting
  • Supports multiple image planes
  • Handles various tiling schemes
  • Manages WebGL resources
  • Coordinates light transformations

Data Format Support:

  • Relight JSON configuration
  • Multiple layout systems
  • JPEG coefficient planes
  • Optional normal maps
  • IIP image protocol

new LayerRTI(options)

Creates a new LayerRTI instance

Parameters:
Name Type Description
options LayerRTIOptions

Configuration options

Source:
See:
Throws:
  • If rasters options is not empty

    Type
    Error
  • If url is not provided

    Type
    Error
Example
```javascript
// Create RTI layer with deepzoom layout
const rtiLayer = new OpenLIME.Layer({
  type: 'rti',
  url: 'path/to/info.json',
  layout: 'deepzoom',
  normals: true
});

// Add to viewer
viewer.addLayer('rti', rtiLayer);

// Change light direction with animation
rtiLayer.setLight([0.5, 0.5], 1000);
```

Extends

Methods


addControl(name, value)

Adds a shader parameter control

Parameters:
Name Type Description
name string

Control identifier

value *

Initial value

Inherited From:
Overrides:
Source:
Throws:

If control already exists

Type
Error

addShaderFilter(filter)

Adds a filter to the current shader

Parameters:
Name Type Description
filter Object

Filter specification

Inherited From:
Overrides:
Source:
Throws:

If no shader is set

Type
Error

boundingBox()

Gets layer bounding box in scene coordinates

Inherited From:
Overrides:
Source:
Returns:

Bounding box

Type
BoundingBox

clearShaderFilters(name)

Removes all filters from the current shader

Parameters:
Name Type Description
name Object

Filter name

Inherited From:
Overrides:
Source:
Throws:

If no shader is set

Type
Error

getControl(name)

Gets the shader parameter control corresponding to name

Parameters:
Name Type Description
name *

The name of the control. return {*} The control

Inherited From:
Overrides:
Source:

getMode()

Gets the current shader visualization mode

Inherited From:
Overrides:
Source:
Returns:

Current mode or null if no shader

Type
string | null

getModes()

Gets available shader modes

Inherited From:
Overrides:
Source:
Returns:

Array of available modes

Type
Array.<string>

getState( [stateMask])

Gets the current layer state

Parameters:
Name Type Argument Default Description
stateMask Object <optional>
null

Optional mask to filter returned state properties

Inherited From:
Overrides:
Source:
Returns:

Current state object

Type
Object

pixelSizePerMM()

Gets pixel size in millimeters

Inherited From:
Overrides:
Source:
Returns:

Size of one pixel in mm

Type
number

removeShaderFilter(name)

Removes a filter from the current shader

Parameters:
Name Type Description
name Object

Filter name

Inherited From:
Overrides:
Source:
Throws:

If no shader is set

Type
Error

scale()

Gets layer scale

Inherited From:
Overrides:
Source:
Returns:

Current scale value

Type
number

setControl(name, value [, dt] [, easing])

Sets a shader control value with optional animation

Parameters:
Name Type Argument Default Description
name string

Control identifier

value *

New value

dt number <optional>

Animation duration in ms

easing string <optional>
'linear'

Easing function

Inherited From:
Overrides:
Source:
Fires:

setLight(light [, dt])

Sets the light direction with optional animation

Parameters:
Name Type Argument Description
light Array.<number>

Light direction vector [x, y]

dt number <optional>

Animation duration in milliseconds

Source:

setMode(mode)

Sets shader visualization mode

Parameters:
Name Type Description
mode string

Mode to set

Inherited From:
Overrides:
Source:
Fires:

setShader(id)

Sets the active shader

Parameters:
Name Type Description
id string

Shader identifier from registered shaders

Inherited From:
Overrides:
Source:
Fires:
Throws:

If shader ID is not found

Type
Error

setState(state [, dt] [, easing])

Sets the layer state with optional animation

Parameters:
Name Type Argument Default Description
state Object

State object with controls and mode

dt number <optional>

Animation duration in ms

easing string <optional>
'linear'

Easing function ('linear'|'ease-out'|'ease-in-out')

Inherited From:
Overrides:
Source:

setTransform(tx)

Sets the layer's transform

Parameters:
Name Type Description
tx Transform

New transform

Inherited From:
Overrides:
Source:
Fires:
  • Layer#event:updateSize

setViewport(view)

Sets the layer's viewport

Parameters:
Name Type Description
view Object

Viewport specification

Properties
Name Type Description
x number

X position

y number

Y position

dx number

Width

dy number

Height

Inherited From:
Overrides:
Source:
Fires:

setVisible(visible)

Sets layer visibility

Parameters:
Name Type Description
visible boolean

Whether layer should be visible

Inherited From:
Overrides:
Source:
Fires:

setZindex(zindex)

Sets layer rendering order

Parameters:
Name Type Description
zindex number

Stack order value

Inherited From:
Overrides:
Source:
Fires:

Events


ready

The event is fired when a layer is initialized.

Inherited From:
Overrides:
Source:

update

The event is fired if a redraw is needed.

Inherited From:
Overrides:
Source: