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.
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 0
to 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
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:
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