RemoteRendering

MLModule
genre Remote
author MeVis Medical Solutions AG
package MeVisLab/Standard
dll MLRemoteRendering
definition MLRemoteRendering.def
see also RemoteRenderingClient

Purpose

The module RemoteRendering is intended for the use in remote modules (it will also work locally, though) and allows to interact with and display Open Inventor scenes in remote modules. It does so by sending updated images to a client and receiving input events from this client

Usage

Attach your Open Inventor scene to the input of this module.

Attaching a RemoteRenderingClient to the output will render the scene to an internal buffer, which will be displayed by the panel of the RemoteRenderingClient. (You can also use a RemoteRendering control directly).

Normally one would use this by using the RemoteRendering module inside of a macro module that is turned into a remote module.

Details

This module renders the scene more or less the same way as the OffscreenRender module.

Tips

You can use a SoCameraInteraction module in your scene if you want basic camera interaction (and lighting) for a 3D scene.

Windows

Default Panel

../../../Modules/ML/MLRemoteRendering/mhelp/Images/Screenshots/RemoteRendering._default.png

Input Fields

sceneGraph

name: sceneGraph, type: SoNode

Connect your Open Inventor scene to this input.

Output Fields

output

name: output, type: RemoteRendering(MLBase)

Connect a RemoteRenderingClient module to this output. Or apply a RemoteRendering control directly on this field.

For accessing this object via scripting see the Scripting Reference: MLRemoteRenderingWrapper.

Parameter Fields

Visible Fields

Enable Multi Sampling

name: enableMultiSampling, type: Bool, default: FALSE

Enable multi sample anti-aliasing (MSAA). This only works if framebuffer objects are supported.

Multi Sampling

name: multiSampling, type: Integer, default: 16

Sets the number of multi sampling samples that are used. If the hardware supports less samples, the module uses the maximum supported number of samples.

Store Transparency

name: storeTransparency, type: Bool, default: FALSE

If enabled, the alpha channel of the framebuffer is enabled and the resulting alpha is sent with the rendered image. This forces the usage of PNG, since JPG does not support transparency.

Intercept double-clicks

name: interceptDoubleClicks, type: Bool, default: FALSE

If set, the RemoteRendering module will intercept and remove double clicks (including the first click of a double click). This is done by delaying mouse clicks until the double click is received or the double click threshold (time or distance) is exceeded.

Be aware that using this feature can disturb the usual ordering between input events and other messages received from the remote connection.

<Double-click intercepted>

name: doubleClickIntercepted, type: Trigger

This is triggered when a double click was intercepted by the module.

Enable

name: overrideStreamingQuality, type: Bool, default: FALSE

Allows to override the image type and quality for image streaming.

NOTE: Typically the client can select the desired type and quality by sending the streaming settings, e.g. from JavaScript or the HTTP url. If overrideStreamingQuality is enabled, the quality is set by the server/this module and can not be set from the client any more.

Interactive Image Type

name: interactiveImageType, type: Enum, default: JPG

Type of the interactive image.

Values:

Title Name
Jpg JPG
Png PNG
Bmp BMP
Webp Lossy WEBP_LOSSY
Webp Lossless WEBP_LOSSLESS
Jpg Alpha JPG_ALPHA

High Quality Image Type

name: highQualityImageType, type: Enum, default: PNG

Type of the final HQ image.

Values:

Title Name
Jpg JPG
Png PNG
Bmp BMP
Webp Lossy WEBP_LOSSY
Webp Lossless WEBP_LOSSLESS
Jpg Alpha JPG_ALPHA

Interactive Jpg Quality

name: interactiveJpgQuality, type: Integer, default: 70, minimum: 0, maximum: 100

Interactive JPG quality (0-100).

High Quality Jpg Quality

name: highQualityJpgQuality, type: Integer, default: 100, minimum: 0, maximum: 100

HQ JPG quality (0-100).

Supported

name: supported, type: Bool, persistent: no

Shows whether offscreen rendering is available with your current graphics card and driver.

Use stencil buffer

name: stencilBuffer, type: Bool, default: FALSE

If checked, the stencil buffer support is activated.

Suppress render updates

name: suppressUpdates, type: Bool, default: FALSE

While enabled, no scene update notifications are sent to any client. Only when disabled again, a notification is sent (if necessary).

This is not a 100% protection against unwanted render updates: If a client requests a render update, e.g. because the scene was changed immediately before the suppression was activated, the scene is still rendered and the image sent to the client.

Transparency Type

name: transparencyType, type: Enum, default: BLEND

Defines the transparency type as it is also available in the SoRenderArea and SoExaminerViewer modules.

Values:

Title Name
Screen Door SCREEN_DOOR
Add ADD
Delayed Add DELAYED_ADD
Sorted Object Add SORTED_OBJECT_ADD
Blend BLEND
Delayed Blend DELAYED_BLEND
Sorted Object Blend SORTED_OBJECT_BLEND

Background Color

name: bgColor, type: Color, default: 0 0 0

Sets the default background color of the rendering.

Default is, of course, black.

Hidden Fields

imageRendered

name: imageRendered, type: Trigger

imageCacheId

name: imageCacheId, type: String

clearImageCacheOnClient

name: clearImageCacheOnClient, type: Trigger

inputDevicesList

name: inputDevicesList, type: String

miSelectedPointingAction

name: miSelectedPointingAction, type: String, persistent: no

The name of the pointing action currently selected by the Managed Interaction framework. If this pointing action is not currently active (see miSelectedPointingActionActive) it is at least used for highlighting and for selecting the cursor shape.

miSelectedPointingActionProvider

name: miSelectedPointingActionProvider, type: String, persistent: no

The name of the interaction provider node that provides the currently selected pointing action (see miSelectedPointingAction).

miSelectedPointingActionActive

name: miSelectedPointingActionActive, type: Bool, persistent: no

This is true if the currently selected pointing action (see miSelectedPointingAction) is used for clicking or dragging.