Navigation

Ventuz Introduction

  • Introduction
  • Getting Started
  • Ventuz Editions
  • Ventuz Products
  • Realtime Rendering
  • Frequently Asked Questions
  • Common Mistakes
  • Deploying a Ventuz Presentation
  • Scene Performance and Tweaks

Quick Guides

  • Quick Guide Index
  • Business Logic
  • 3D Art
  • 2D Art
  • Programming
  • System Engineer

General

  • Index
  • What's New
  • Ventuz System Requirements
  • Communication Protocol Overview
  • Configuration Editor
  • Audio / Video Configuration
  • Machine Configuration
  • Web Configuration Editor and License Manager
  • GPI Configuration for Runtime or Director
  • Supported Formats
  • Supported Hardware
  • Multisampling / Anti-Aliasing
  • Input Subsystem
  • Ventuz Proprietary Files
  • Migrating Content to Ventuz 6
  • Migrating Content to Ventuz 5
  • Summary Shortcuts
  • Terminology
  • Manual Index

Ventuz Designer

  • Designer Indices
Introduction
  • Designer Introduction Index
  • Designer Overview
  • Realtime Rendering
  • Project Browser
  • Designer Interface
  • Designer Options
  • Working with Nodes
  • Hierarchy and Content Editors
  • 2D Workflow
  • 3D Workflow
  • Animation Workflow
  • Best Practices
  • Reading Data in Ventuz
  • Display Images and Movies
  • Scene Performance and Tweaks
  • Deploying a Ventuz Presentation
  • Render to Disk
User Interface
  • Designer User Interface Index
  • Designer Interface
  • Renderer Window
  • Layer Editor
  • Property Editor
  • Property Groups
  • Hierarchy Editor
  • Content Editor
  • Find and Replace
  • Toolbox
  • Animation Editor
  • Shader Editor
  • Text Editor
  • Message View
  • Scene Tree
  • Stage Editor
  • Container Outline
  • Watches Editor
  • Performance Statistics
2D Workflow
  • 2D Workflow Index
  • 2D Workflow
  • Layer Editor
  • Common Layer Properties
  • IPP Effects
  • Color Correction FX
  • Distortion FX
  • Filter FX
  • Hierarchy and Content Editors
  • Display Images and Movies
3D Workflow
  • 3D Workflow Index
  • 3D Workflow
  • Hierarchy and Content Editors
  • Renderer Window
  • Camera Navigation
  • Manipulate Objects with Gizmos
  • Layer Editor
  • Property Editor
  • Hierarchy Editor
  • Working with Nodes
  • Isolated Objects
  • Containers
  • Text Rendering
  • Character Sets
  • Geometry Import
  • Display Images and Movies
  • Particle System
  • Creating Realistic Reflections
  • Unreal Integration
  • Notch Integration
  • E2E Node Overview
Logic Workflow
  • Logic Workflow Index
  • Hierarchy and Content Editors
  • Content Editor
  • Hierarchy Editor
  • Working with Nodes
  • Property Editor
  • Containers
  • Project and Scene Data
  • Reading Data in Ventuz
  • Display Images and Movies
  • Input Subsystem
  • Multitouch
  • TUIO Protocol
  • Open Sound Control
  • Unreal Integration
  • Notch Integration
  • E2E Node Overview
Animation Workflow
  • Animation Workflow Index
  • Animation Workflow
  • Animation Editor
  • Content Editor
  • Hierarchy Editor
  • Property Editor
  • Animation and State Engine
  • Templates
  • Template Engine
  • Unreal Integration
  • Notch Integration
Project Structure
  • Project Structure Index
  • Annotations
  • Projects and Scenes
  • Project Properties
  • Project Maintenance
  • Project and Scene Data
  • Scene Management
  • Scene Statistics
  • Scene Tree
  • Performance Statistics
How Tos
  • Designer How to Index
  • How to Run Ventuz
  • How to Work with Designer
  • Ventuz Designer Drag&Drop Workflow
  • How to work with Shadows
  • How to Build Content for Multiple Screens
  • How to Use Emoijs
  • How to Build a Template
  • How to Use the Color Difference Keyer
  • How To Use the HDR Engine
  • How Create Lens Flares and Bloom
  • How to Create Visuals Loader Node
  • How to Remote Control with a Phone
  • How to use Head Mounted Displays
  • 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 use the Substance Integration
  • How To Integrate Unreal
  • How To Integrate Notch
  • How To use the Vertex Integration
  • How To Control and Customize Ventuz
Reference
  • Available Nodes
  • Animation Nodes
  • Material&Color Nodes
  • Data Nodes
  • E2E 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
  • Summary Shortcuts
  • Layer Editor Shortcuts
  • Hierarchy Editor Shortcuts
  • Content Editor Shortcuts
  • Animation Editor Shortcuts
  • Director Shortcuts

Ventuz Director

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

Ventuz Runtime & Configuration

  • Runtime Index
  • Configuration Configuration Editor
  • Machine Configuration
  • Video/Audio Configuration
  • Web Configuration Editor and License Manager
  • Render Setup Editor
  • Warping and Soft-Edging Editor
  • Machine Clustering
  • Supported Hardware
  • Director Mode
  • Runtime How Tos Index
  • How to Configure Audio
  • How to Use Live Options
  • How To Play Out On Multiple Screens
  • How To Render on a Machine Cluster
  • How to Use Head Mounted Displays
  • How to Setup Spout with Ventuz
  • How to Use Newtek NDI
  • How to Use a Mixed Frame Rate Cluster
  • How to Use Tracking

How To

Designer
  • Designer How to Index
  • How to Run Ventuz
  • How to Work with Designer
  • Ventuz Designer Drag&Drop Workflow
  • How to work with Shadows
  • How to Build Content for Multiple Screens
  • How to Use Emoijs
  • How to Build a Template
  • How to Use the Color Difference Keyer
  • How To Use the HDR Engine
  • How Create Lens Flares and Bloom
  • How to Create Visuals Loader Node
  • How to Remote Control with a Phone
  • How to use Head Mounted Displays
  • 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 use the Substance Integration
  • How To Integrate Unreal
  • How To Integrate Notch
  • How To build and playback Ventuz Content in Vertex
Runtime & Configuration
  • Runtime How Tos Index
  • How to Configure Audio
  • How to Use Live Options
  • How To Play Out On Multiple Screens
  • How To Render on a Machine Cluster
  • How to use Head Mounted Displays
  • How to setup Spout with Ventuz
  • How to use Newtek NDI
  • How to use a Mixed Frame Rate Cluster
  • How to use Tracking
  • How To Integrate Unreal
  • How To Integrate Notch
  • How To build and playback Ventuz Content in Vertex
Director
  • How To Control Multiple Graphics Independently From Each Other
  • How to use the Companion with Director

Ventuz 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
E2E
  • E2E Axis
  • E2E Data
  • E2E Control
  • E2E Layer
  • E2E Provider
  • E2E Node Overview
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
  • HTTP
  • RamDiskWriter
LAYER
  • 3D Layers
  • 3D Layer Reference
  • 2D Layers
  • PSD Import Layer
  • E2E 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
  • QR Code
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

Advanced and Development

  • Advanced and Development Index
  • Command Line Options
  • Ventuz IP Ports
  • Ventuz Machine Service
  • TUIO
  • .NET Scripting
  • HLSL Shader Programming
  • Ventuz API and SDK
  • Ventuz Extension API
  • Ventuz VIO API
  • Ventuz File Format (VFF)
  • Ventuz Stream Out API
  • Lens Calibration File for FreeD
  • E2E Node Overview
  • Unreal Integration
  • Notch Integration
Remoting
  • Remoting Index
  • Remoting Overview
  • How To Control and Customize Ventuz
  • Remoting 4
  • Remoting 4 via Websockets
  • Remoting 4 via HTTP
  • Director Remoting
  • Deprecated Remoting
  • Remoting Machine Signature

Misc

  • Presets
« Previous:
» Index «
Next: »

Interaction Rectangle

Table of Contents

  1. Node Usage
  2. Inputs
  3. Outputs
  4. Message Format

Interaction Rectangle Rectangular geometry collecting and sending interaction events via UDP or ANC channel

The Interaction Rectangle node renders a rectangle geometry, collects all interaction (mouse, touch, keyboard) and sends this data in an Open Sound Control based protocol via UDP or the VIO ANC channel for further processing by the Live Video texture provider.

Node Usage

This node was basically introduced to provide the possibility of interaction with a Live Video texture source. Possible scenarios could be:

  • A VIO implementation in a game engine providing the render output and giving the possibility to interact with the game engine scene
  • Another VIO application could be the interaction with a Virtual Machine like ​Virtual Box (Remote Desktop from within Ventuz)
  • A simpler 'Virtual Machine' application could be accomplished by using a Video Input card to grab the content of another computer; this computer would require a service which receives the interaction data via UDP and injects mouse, keyboard and touch commands

All these applications of course require software development and custom modifications on side of the 'video texture provider'.

Inputs

The Interaction Rectangle provides some input properties to control the behavior of the node.

  • Interaction Receiver: You define if the interaction data should be sent via UDP or the ANCillary Channel of the Live Video Input
  • Receiver ID: Specifys the receiver of the interaction messages. In ANC mode the ReceiverID must match the Ordinal (index) of the Live Video input.
  • IP and Port: Define where to send via UDP
  • Screen Aligned: Toggles the geometry size between 1x1 and full layer.
  • Interaction: Defines which types of interaction events (Keyboard, Mouse, Touch) should be sent. If you disable the node via the Enabled property, it does not react to any interaction and does not send any data
  • Touch Group Filter: property which all Interaction nodes have in common is described here
  • Interaction: Mouse and touch events are only sent if they were generated inside the boundaries of the Interaction Rectangle geometry. The position is always mapped to 0-1, 0-1. Keyboard events are always sent if the renderer window has the focus and Keyboard is enabled in the Interaction property

The Mouse and Multi-Touch events can only be interpreted correctly if the Interaction Rectangle is not rotated at all!

The node is only sending if the Cluster Networking is configured to Single or Master!

Tracking Mode:

  • All: Tracks all mouse and touch events in the 'air space' of the node even if other interaction nodes are covering parts of it and all keyboard events even if mouse or touch are outside the 'air space'.

  • NonCaptured: Tracks all interaction events that are not registered elsewhere by any other interaction nodes (covering the Interaction Rectangle). For remoting other applications or using scripts, it can be interesting to just track touches that are not used by any of Ventuz's interaction nodes.

  • NonCapturedWithAllKeys: Like the NonCaptured mode but with the exception that all keyboard events are tracked.

Outputs

Via the Custom Verbs of the Property Editor it is possible to add output property sets which provide information about active Mouse and Multi-Touch events. A description of the fixed output properties and events, that all Interaction nodes have in common, can be found here.

Message Format

The interaction events collected by the node are formatted as OSC bundles. For details about the OSC format see the Remoting 4 Protocol Specification. The message format may look complicated. The reason for this is that it is based on our internal Input Subsystem format that is used for input synchronisation in a multi-machine Cluster.

The message structure looks like follows:

OscBundle Address Arguments Array
OscElement /ventuz/<i_ReceiverID>/InputTimecode <d_Timecode>
OscElement[n] /ventuz/<i_ReceiverID>/<s_DeviceType>/<i_DeviceID>/<s_ID>/<i_TouchGroup> <i_TouchType>, <s_TouchID>, <f_X>, <f_Y>, <f_Z>, <f_Pressure>, <f_Angle>
-
<i_Value>
<f_X>, <f_Y>, <f_Z>

The OscBundle contains at least two OscElements. The first OscElement carries the timecode message. Its address is /ventuz/<i_ReceiverID>/InputTimecode where <i_ReceiverID> is an integer number representing the receiver ID. The argument carried by this OscElement is a double value representing the timecode of the frame in which the interaction data was recorded. All subsequent OscElements carry interaction data; the address is always /ventuz/<i_ReceiverID>/<s_DeviceType>/<i_DeviceID>/<s_ID>/<i_TouchGroup>.

The address parameters have following meaning and content:

Address Parameter Meaning Possible Values
<i_ReceiverID> identifies the receiver of the OscElement integer >= 0
<s_DeviceType> string specifying the type of the interaction data MultiTouch, Mouse, Keyboard
<i_DeviceID> ID of the interaction device this information was created by any integer
<s_ID> string ID representing the type of input information ID_TouchAdd, ID_TouchUpdate, ID_TouchRemove, ID_MouseButtonDown, ID_MousePosition, ID_MouseButtonUp, ID_MouseWheel, ID_MouseHover, ID_MouseDoubleClick, ID_MouseDoubleClick2
<i_TouchGroup> integer value representing a bitmask for four different touch groups integer 0-31

The different argument types and values are explained here:

Argument Parameter Meaning Possible Values
<d_Timecode> timecode of the interaction data double >= 0.0
<i_TouchType> type of touch 0 = Cursor, 1 = Marker, 2 = VR
<s_TouchID> string representing numeric ID of the touch (e.g. finger) integer >= 0
<f_X> X position of touch or mouse float in range [0.0; 1.0]
<f_Y> Y position of touch or mouse float in range [0.0; 1.0]
<f_Z> Z position of touch or mouse float in range [0.0; 1.0]
<f_Pressure> pressure value of the touch float in range [-1.0; 1.0]
<f_Angle> rotation angle of a touch marker float in range [0.0; 360.0]
<i_Value> mouse button or key code integer

You can use the Ventuz OSC library to receive the interaction data via UDP.

To receive the interaction events in the VIO API use the vAncFromVentuz() method with ITAC as FourCC code.

See also:
  • Multi Touch
  • Ventuz Input Subsystem
  • Open Sound Control
  • VIO API
  • Remoting 4 Protocol

« Previous:
» Index «
Next: »
Copyright 2022 Ventuz Technology