Navigation

Ventuz 6 Quick Guide

  • Introduction
  • Getting Started
  • Ventuz Editions
  • Designer Overview
  • Ventuz System Requirements
  • Configuration
  • Video/Audio Configuration
  • Machine Configuration
  • GPI Configuration for Runtime or Director
  • Optimize Rendering Performance
  • Supported Formats
  • Supported Hardware
  • Multisampling / Anti-Aliasing
  • Input Subsystem
  • Ventuz Proprietary Files
  • What's new
  • FAQ
  • Common Mistakes
  • Deployment
  • Migration Guide
  • Ventuz 5 Migration Guide
  • Summary Shortcuts

Ventuz 6 Designer

  • Index
  • Getting Started
  • Designer Options
  • Designer Overview
Projects & Scenes
  • Projects and Scenes
  • Project Browser
  • Project Properties
  • Project Maintenance
  • Project and Scene Data
  • Scene Tree
  • Scene Management
  • Scene Statistics
  • Deployment
Interface
  • Designer Interface
  • Renderer Window
  • Realtime Rendering
  • Optimize Scene Performance
  • Performance Statistics
  • Transformation Gizmo
  • Render to Disk
  • Camera Navigation
  • Isolated Objects
  • Manipulate Objects with Gizmos
  • Layer Editor
  • Common Layer Properties
  • IPP Effects
  • Color Correction FX
  • Distortion FX
  • Filter FX
  • Layer Editor Shortcuts
  • Hierarchy Editor
  • Working with Nodes
  • Containers
  • Find and Replace
  • Shortcuts Hierarchy Editor
  • Content Editor
  • Working with Nodes
  • Containers
  • Content Editor Shortcuts
  • Toolbox
  • Property Editor
  • Project Data and Scene Data
  • Property Groups
  • Shader Editor
  • Text Editor
  • Scene Tree
  • Message View
  • Stage Editor
  • Container Outline
  • Watches Editor
  • Animation Editor
  • Animation and State Engine
  • Templates
  • Template Engine
  • Shortcuts Animation Editor
  • Text Rendering
  • Text Editor
  • Character Sets
  • Geometry Import
  • Input Subsystem
  • Multitouch
  • TUIO Protocol
  • Open Sound Control
  • How to work with Head Mounted Displays
  • Cluster
  • Multi Display Setups and Shaping
  • Warping, Soft Edging and Masking
  • Available Nodes
  • Animation Nodes
  • Material&Color Nodes
  • Data Nodes
  • Geometry Nodes
  • Interaction Nodes
  • IO Nodes
  • Layers
  • Light Nodes
  • Logic Nodes
  • Render Option Nodes
  • Slides Nodes
  • Sound Nodes
  • Text Nodes
  • Texture Nodes
  • VR Nodes
  • World Nodes

Ventuz 6 Node Reference

ANIMATION
  • Mover
  • Alternator
  • Simple Control
  • Timeline Control
  • Anmation Rig
  • Keyframe Animation
  • Animation Group
COLOR/MATERIAL
  • Alpha
  • Fog
  • Ground Fog
  • Sky Box
  • Color to RGBA
  • HSLA to Color
  • RGBA to Color
  • Color Transformer
  • HLSL Shader
  • Color
  • Material
  • Color Picker
  • Substance Material
DATA
  • Database
  • Excel
  • JSON
  • RSS Feed
  • Resource Linker
  • Text File
  • XML
GEOMETRY
  • Rectangle
  • Rounded Rectangle
  • Gradient Rectangle
  • Overlay Rectangle
  • Cube
  • Circle
  • Sphere
  • Cylinder
  • Cone
  • Torus
  • Chart
  • Random Points
  • Mesh Loader
  • Geometry Import (Live)
  • Volume
  • Get Bounding Box
  • Arrow
  • Particle System
  • Path Renderer
  • Geometry Renderer
INTERACTION
  • Interaction Rect
  • Touch Button
  • Touch Excluder
  • Touch Marker
  • Touch Paint
  • Touch Pattern
  • Touch Proxy
  • Touch Ripples
  • Touch Transformations
  • Web Browser
  • Touch Teleport
  • Touch Simulator
INPUT/OUTPUT (I/O)
  • GPI
  • Joystick
  • Keyboard
  • MIDI
  • Mouse
  • Network
  • Open Sound Control
  • Serial
  • Timecode
  • DMX
LAYER
  • 3D Layers
  • 3D Layer Reference
  • 2D Layers
  • PSD Import Layer
  • Others
LIGHT
  • Light Sources
LOGIC
  • Array Processing
  • Convert To Text
  • Cluster Synchronization
  • Counter
  • Date Time
  • Directory
  • Dispatcher
  • Enumeration
  • Expressions
  • Invert
  • Log
  • Loop Breaker
  • Math Effects
  • Matrix Operations
  • Scene Event
  • Script
  • String Operations
  • System ID
  • Text Splitter
  • Timer
  • Toggle
  • URL
  • Value Switch
  • Value Buffer
  • Variables
  • Visual Indexer
RENDER OPTIONS
  • Alpha Blending
  • Color Write
  • Alpha Testing
  • Clip Plane
  • Filter
  • Mask
  • Mirror
  • Effect
  • Render Cube Map
  • Draw Modes
  • Stencil
  • ZTesting
SOUND
  • Audio Clip
  • Sound
  • Volume Control
  • Audio Analysis
SLIDES
  • Slide Manager
  • Slide
  • Slide Port
  • Pivot
TEXT
  • Text Effects
  • Text Layouts
  • Text Rendering
TEXTURE
  • Background
  • Hatch
  • Image
  • Texture
  • SVG Loader
  • Gradient Texture
  • Live Video
  • Movie Stream
  • Movie Frame
  • Movie Clip
  • Texture Loader
  • Snapshot
  • Snapshot Framebuffer
  • Texture Saver
  • Video Source Selector
  • VIO Input
  • Spout Receiver
  • NDI Receiver
  • Substance Loader
VR/AR
  • Tracked Devices
  • Draw Tracked Devices
WORLD
  • Axis
  • Billboard
  • GetWorld
  • SetWorld
  • Arrange
  • Ticker
  • Layout
  • Group
  • World Z Sort
  • YesNo
  • Switch
  • Spread
  • Filter Pass
  • Set Pass
  • Hierarchy Container
  • Scene Port
  • Content Container
  • Template Port
  • Container Info
  • Camera
  • Paths

Ventuz 6 Configuration Editor

  • Configuration
  • Machine Configuration
  • Video/Audio Configuration
  • Web Configuration Editor and License Manager
  • Render Setup Editor
  • Warping and Soft-Edging Editor
  • Supported Hardware
  • How to Setup a Cluster Render

Ventuz 6 Director

  • Application Settings
  • Assets
  • Channels
  • Command Line Options
  • Content References
  • Designing Templates
  • Environment
  • Glossary
  • Index
  • Introduction
  • Pages
  • Playlist
  • Plug-Ins
  • Project Data
  • Property Editor
  • Shortcuts
  • GPI Configuration
  • Shot Box
  • Show
  • Taking Action
  • Timeline
  • Topology
  • User Interface
  • Director Mode
  • Macros

How To

  • How to Run Ventuz
  • How to Work with Designer
  • Ventuz Designer Drag&Drop workflow
  • How to use Head Mounted Displays
  • How to work with Shadows
  • How to use Emoijs
  • How to Build a Template
  • How to use Newtek NDI
  • How to Create Visuals Loader Node
  • How to Remote Control with a Phone
  • How to Setup a Cluster Render
  • How to use a Mixed Frame Rate Cluster
  • How to use Tracking
  • How to work with 3D Reference Layers
  • How to create a Firework Particle System
  • How to use DDS with new Block Compression modes
  • How to setup Spout with Ventuz
  • How to use the Substance Integration

Keyboard Shortcuts

  • Summary Shortcuts
  • Layer Editor Shortcuts
  • Hierarchy Editor Shortcuts
  • Content Editor Shortcuts
  • Animation Editor Shortcuts
  • Director Shortcuts

Advanced and Development

  • Command Line Options
  • Remoting Overview
  • Remoting 4
  • Remoting 4 via Websockets
  • Deprecated Remoting
  • Ventuz IP Ports
  • Ventuz Machine Service
  • Remoting Machine Signature
  • TUIO
  • .NET Scripting
  • HLSL Shader Programming
  • Ventuz API and SDK
  • Ventuz VIO API
  • Ventuz File Format (VFF)
  • Ventuz Stream Out API

General Reference

  • Terminology
  • Manual Index

Miscellaneous

  • Presets
« Previous Article
» Index «
Next Article »

Cluster Synchronization

Cluster Task Waits for all Cluster Machines to trigger the Input Method and only then fires its Event.
Cluster Data Sends values or events from the Cluster's master machine to all clients. These will be applied/fired in the same frame.

General

Note that the Cluster nodes only work in Ventuz Runtime in multi-machine setups if all machines have the Cluster Feature License installed!

If working with Ventuz Designer the Cluster nodes will operate in a 'stand-alone' mode if the RenderSetup mode is set to Cluster or Design Preview. In these modes the nodes will always function to simulate a correctly working multi-machine Cluster. If switched to Production Preview the nodes operate like in Ventuz Runtime and are dependent on the communication with the other machines in the Cluster.

The communication between the Cluster nodes works only if all machines in a Cluster have loaded the same scene! Sender and receiver nodes find each other via an internal node ID. This means that replacing a Cluster node in a scene only on one machine by a new node would break the communication because the new node has a different ID.

Cluster Task

The Cluster Task node is meant to synchronize events within a multi-machine Cluster. This is especially useful if you work with tasks that need different time to finish per machine. The synchronization of events can be parametrized by two properties: the Timeout property specifies the time-frame (in seconds) in which the LocalFinished method on all associated Cluster Task nodes in the Cluster has to be triggered. If the timeout is observed the ClusterFinished event is fired synchronously on all machines. Accordingly the ClusterTimeout event is fired if one or more machines did not trigger the LocalFinished method within the timeout duration. The Delay specifies the number of frame that are available to fire the ClusterFinished or ClusterTimeout event after the determination of success or fail.

On the basis of the following diagram the internal mechanisms of the Cluster Task node will be explained:

The diagram represents a Ventuz Cluster of 4 machines. The Timing and Input master (specified in the Ventuz Config) is represented by Master. All machines have loaded the same scene with at least one Cluster Task node in it. The properties of the nodes are set to 0.25 seconds for Timeout (represents 15 frames in a 60 Hz rendering) and 5 frames for Delay. Let's assume that a certain node logic triggers the LocalFinished method on each machine in a different frame. The first method is triggered on Client1 in frame 1001 and a request message to fire ClusterFinished is send to the master machine. The same happens on the Master and Client3 machines in frame 1002 and on Client2 in frame 1004. The first request message starts the master timeout countdown. This means that all request messages must arrive at the master machine until frame 1016. If we assume that a message takes up to two frames to arrive at a target machine, the last request message arrives in frame 1006 at master machine. Hence all messages arrived within the timeout time-frame. In this case the master will send a positive response to all machines in the Cluster in frame 1007. As the Delay is set to 5 frames the response message defines that the ClusterFinished event has to be fired in frame 1012 on all machines. If at least one machine does not send any request message or the message arrives too late, the master sends a timeout response to all machines; the delay mechanism applies here, too!

The Cluster Task node will always fire a ClusterTimeout event if a machine or Ventuz Runtime, which is considered part of the Cluster, is not running!

If the response message takes more frames to arrive than specified in Delay or the target frame is not rendered on a machine (render stalls), the ClusterFinished or ClusterTimeout event will be fired in the next possible frame!

A good example for the necessity of the Cluster Task is the asynchronous loading and presenting of images on a video-wall driven by a Ventuz Cluster. To load images without stalling the rendering you have to use the Texture Loader in Async mode. But the load duration for the same image on different machines will always be slightly different and the image would be most likely presented in different frames per machines. To prevent this asynchronous image presentation one can use the Cluster Task node to synchronize the Loaded event of the Texture Loader node: only when all machines have successfully loaded the image it should be presented in a specific frame.

The scene logic could look like follows:

The Mover (which is synchronized via Cluster Clock) triggers the load of a new image and starts the fade out of the image currently displayed. The Loaded event of the async. Texture Loader is bound to the LocalFinished method of the Cluster Task node. If all Texture Loader have fired the Loaded event within the Timeout duration specified on the Cluster Task node, the node fires the ClusterFinished event on all machines in the same frame. If not all LocalFinished methods have been triggered within the timeout, the ClusterTimeout event is fired.

Cluster Data

The Cluster Data node was build to send values of type float, integer, boolean and string to all machines in a Ventuz Cluster and provide them in the same specific frame on all machines. Additionally an arbitrary number of events can by fired synchronously in the Cluster. Via the Custom Model Dialog (at the bottom of the Property Editor) pairs of Input and Output properties and pairs of Methods and Events can be added to the node. These pairs define which values and events should be send from the master to the client machines. Basically the node provides the SendOnChange property which specifies whether values should be automatically send when they have changed or manually on triggering the Send method. The Delay property specifies how many frames in the future the values should be applied after sending them. Note that triggering Send will only transfer the custom property values but not the events; these have to be triggered separately. If a Cluster Data node has received and applied values the Received event is fired.

In contrast to the Cluster Task node the Cluster Data only requires a unidirectional communication:

The Master just commands values and events and the clients have to apply them in the specified frame. In the example above the master sends values in frame 1001. Due to the Delay of 5 frames the values have to be applied in frame 1006.

An use case for the Cluster Data node would be the propagation of values from a Script node which can only run on a single machine (e.g. due hardware limitation). In a single machine setup the Script node would be directly bound to the Axis node. But in a multi-machine Cluster these values must be available on all machines in the same frame. On a master machine (machine with the lowest ID) the Cluster Date node acts as sender and receiver. On all client machines the node only acts as receiver.

See also:
  • Cluster
  • How To Cluster Rendering
  • OSC Nodes

« Previous Article
» Index «
Next Article »
Copyright 2020 Ventuz Technology