VIOSOWarpBlend.ini Reference

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 parameterdefault valuecomment

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

[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:

R11R12R130

R21

R22

R23

0

R31

R32

R33

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.

Last updated