• Home
  • Knowledge Base
    • Licensing
    • Operation
    • Quality Improvement
    • References
  • Documentation
    • VIOSO Core 5
    • VIOSO Anyblend 5
    • VIOSO Anyblend VR&SIM 5
    • VIOSO Integrate 5
    • VIOSO Player 2
  • FAQ
    • Error and other feedback
    • Licensing
    • System & Requirements
  • Videos
  • Home
  • Knowledge Base
    • Licensing
    • Operation
    • Quality Improvement
    • References
  • Documentation
    • VIOSO Core 5
    • VIOSO Anyblend 5
    • VIOSO Anyblend VR&SIM 5
    • VIOSO Integrate 5
    • VIOSO Player 2
  • FAQ
    • Error and other feedback
    • Licensing
    • System & Requirements
  • Videos

VIOSO Integrate 5

home/Documentation/VIOSO Integrate 5
Expand All Collapse All
  • VIOSO Integrate Overview
  • VIOSO Integrate VS Integrate Plus
  • Media Playback Solutions
    • AV Stumpfl Pixera
      • Running Pixera Autocal standalone
      • UV-Mapping and 3D calibration
      • Multi-client setups
    • Vertex VIOSO & IOVERSAL Vertex
      • AutoCal Single Camera: Getting started
      • Modifying, Optimizing and Recalibration
      • Using Autocal Standalone
  • Dome- and Planetarium Solutions
  • 3D Engines
    • Unity Plugin
    • Unreal Engine Integration
      • Examples: UE4.24-.26
      • Examples: UE4.27 & UE5
    • MiddleVR Integration
    • Techviz
  • Simulators
    • SILAB
    • Quantum 3D: Mantis
    • AVSimulation: SCANeR Studio
    • rFpro
    • Prepar3D
    • X-Plane 11
  • Projector Integration
    • Barco Pulse Export
    • Norxe Export
  • VIOSO WarpBlend API
    • API usage on Windows
    • API usage on Linux
    • Implementation Remarks
    • VIOSOWarpBlend.ini Reference
    • API Examples
      • Example 1 - Simulator with moving platform
      • Example 2 - Another simulator with moving platform
      • Example 3 – Cave
      • Example 4 – Video player

VIOSOWarpBlend.ini Reference

1211 views 1

Emanuel
October 6, 2020

When using the VIOSOWarpBlend.dll, the behaviour of the calibration processing is configured by configuration file VIOSOWarpBlend.ini. This file must be placed in the same folder as the DLL.

Every parameter is first read from the section with the channelname, provided at initialization, then if not found from default. A section is defined by putting a name into square brackets at the beginning of a line: [channel1]

The configuration parameters are outlined here with values for a typical off-the-shelf installation. Default values are used if the configuration parameter is missing or invalid.

configuration parameter default value comment
logLevel=1 0 log level:
0 – only fatal errors,
1 – only errors and important info,#
2 – normal log, but guaranteed no info logging in render and frustum methods,
3 – verbose debug log,
logFile=VIOSOWarpBlend.log VIOSOWarpBlend.log some other log file;relative paths are relative to VIOSOWarpBlend.dll, not the main module!
bLogClear=0 0 if 1, clear the logfile on start
near=1.0 the near plane
far=20000.0 the far plane
trans=[1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1] this is the transformation matrix transforming a vioso coordinate to an IG coordinate. Units should match the units of 3d modell. Last raw defines the pivot of a moving platform, column major format
base=[1,0,0,0;0,1,0,0;0,0,-1,0;0,0,0,1] same as above, row major format DirectX conform, as DX uses left-handed coordinate system, z has to be inverted!
bTurnWithView=1 0 set to 1 if view turns and moves with eye, i.e view is obtained from a vehicle position on a moving platform
bBicubic=0 set to 1 to enable bicubic content texture filter
bDoNotBlend=0 set to 1 to disable blending
bDoNoBlack=0 0 set to 1 to disable software black level correction
splice=0 bitfield:
  • 0x00000001 change sign of pitch
  • 0x00000002 use input yaw as pitch, 0x00000004 use input roll as pitch
  • 0x00000010 change sign of yaw
  • 0x00000020 use input pitch as yaw, 0x00000040 use input roll as yaw
  • 0x00000100 change sign of roll
  • 0x00000200 use input pitch as roll
  • 0x00000400 use input yaw as roll
  • 0x00010000 change sign of x movement
  • 0x00020000 use input y as x
  • 0x00040000 use input z as x
  • 0x00100000 change sign of y movement
  • 0x00200000 use input x as y
  • 0x00400000 use input z as y
  • 0x01000000 change sign of z movement
  • 0x02000000 use input x as z
  • 0x04000000 use input y as z
mode 0 DEPRECATED

mode=0: same as splice=0
mode=1: same as splice=290;
mode=2: same as splice=307;

bAutoView=0 0 set to 1 to enable automatic view calculation

When enabled, it will override dir=[], fov=[] and screen to use calculated values

autoViewC=1 1 moving range coefficient. Set a range in x,y,z from platform origin to be mapped; x+- autoViewC * screen / 2
gamma=1.0 1 set a gamma value. This is multiplied by the gamma already set while calibrating!, If calibrators blend looks different than in your application, adjust this value!
port=942 0 set to a TCP IPv4 port, use 0to disable network. defaults to 0, standard port is 942
addr=0.0.0.0 0.0.0.0 set to IPv4 address, to listen to specific adapter, set to 0.0.0.0 to listen on every adapter
heartBeat=3 0 set to a time interval in ms a UDP broadcast is sent to port, defaults to 0, which means no heartbeat is sent; only avaliable if “port” is set to enable network functions
bUseGL110=0 0 set to 1, to use shader version 1.1 with fixed pipeline
bPartialInput 0 set to 1, to input texture act as optimal rect part
eye=[x,y, z] [0,0,0] this is the eye position relative to pivot
dir=[x,y, z] [0,0,0] his is the view direction, rotation angles around axis’ [x,y,z]. The rotation order is yaw (y), pitch (x), roll (z); positive yaw turns right, positive pitch turns up and positive roll turns clockwise
fov=[x,y,z,w] [30,20,30,20] this is the fields of view, x – left, y – top, z – right, w – bottom
screen=3.650000000 1 the distance of the render plane from eye point. Watch the used units!
calibFile=..\Res\Calib.vwf path to warp blend file(s), if relative, it is relative to the VIOSOWarpBlend.dll, not the main module! To load more than .vwf/.bmp, separate with comma.
calibIndex=0 index, in case there are more than one display calibrated; if index is omitted you can specify the display ordinal
calibAdapterOrdinal=1 0 display ordinal the number in i.e. “D4 UHDPROJ (VVM 398)” matches 4. In case no index is found index is set to 0
calibSplit=[x,y,z,w] [0,0,0,0]

x: number of columns, y: number of rows, z: column index, w: row index

If you want to split a map into 2 side-by side parts set to [2,1,0,0] for the left side and [2,1,1,0] for the right part

eyePointProvider=[EyePointProvider] eye point provider dll name; the name is passed to LoadLibrary, so a full qualified path is possible, use quotes if white spaces
eyePointProviderParam=[] string used to initialize provider, this depends on the implmementation
mouseMode=0 bitfield, set 1 to render current mouse cursor on top of warped buffer

Example .ini file

Example .ini file

[default]
logLevel=2
bLogClear=1
near=1.0
far=20000.0
base=[1,0,0,0;0,1,0,0;0,0,-1,0;0,0,0,1] ; row major format DirectX conform, as left-handed coordinate system, z has to be inverted, no scaling
bTurnWithView=1
bAutoView=1
autoViewC=1
calibFile=Calib_150930.vwf

[channel 1]
;here go special values for a warper called “channel 1”
calibIndex=0

[channel 2]
;next channel, if you are using this .ini for more than one channel
calibIndex=2

About the base-matrix and eye-vector

This matrix is needed, if you use 3D maps, suitable for variable eye point. It describes the transformation from your 3D world to the VIOSO 3D world. It needs to be THE SAME for ALL IG channels. So define this in [default] section.

The VIOSO coordinate system is set by the model you use. In case you use a simple model generated by VIOSO Core or Integrate, the world is denoted like this:

  • Flat Screen
    • World origin is horizontally centered on lower edge
    • Axes: +X right, +Y up, +Z back
    • Unit: Millimeters
  • Cylindric Screen
    • World origin is mid-point of base (lower) circle
    • Axes: +X right, +Y up, +Z back
    • Unit: Millimeters
  • Panadome
    • World origin is mid-point of sphere
    • Axes: +X right, +Y up, +Z back
    • Unit: Millimeters
  • Dome
    • World origin is mid-point of sphere
    • Axes: +X to -90°=270°=WEST, +Y to 0°=NORTH, -Z up to zenith
    • Unit: Millimeters

The base matrix is a homogenous transformation shaped like this:

R 0
0
0
tx ty tz 1

R is a 3×3 rotation/scaling matrix to convert axes directions and unit scale.

t is a translation vector. It points from (VIOSO)model origin to IG origin in model coordinates. This vector is added to each IG coordinate.

The eye-vector is added after rotation around the pivot. This needs to be same on all IG channels, serving same eye. So define this in either [default] section for non-stereoscopic displays or put it to the [channel] making sure all right-eye channels are same respectively all left-eye channels. It is needed, if the rotation center is not the eye itself. I.e. a cockpit is mounted on top of a frame, and the center of the frame is rotated or IPD. So the actual eye must be rotated with the actions of the platform relative to the rotation center.

Was this helpful?

1 Yes  1 No
Related Articles
  • Barco Pulse Export
  • Examples: UE4.24-.26
  • SILAB
  • Quantum 3D: Mantis
  • VIOSO Integrate Overview
  • Norxe Export

Didn't find your answer? Contact Us

Previous
Implementation Remarks
Next
API Examples
  • Ticket System
  • VIOSO Home
  • Imprint
  • © 2020-now VIOSO GmbH. All Rights Reserved.

We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept”, you consent to the use of ALL the cookies.
Do not sell my personal information.
Cookie settingsACCEPT
Manage consent

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
SAVE & ACCEPT