This is about virtual cameras, like IG views and models that match your screen or other projection surface.
Creating and editing poses
- Create a view port in Extras->Custom content spaces, name it, and use the projector’s resolution as pixel space.
- Define all viewports from ONE eye-point. This is to be done in the real world. For example, use the real position of the driver’s eye. We call this the “sweet spot”.
- Define a default orientation. This is the combination of “forward” direction and the natural “up”. This also gives us the sideways direction. The IG operates relative to that.
- Find that pose in our model’s coordinate space and create a pose.
-
For every projector, do:
- Create a new pose.
- Pinpoint the projection center and set it as look-at point.
- Keep “up” as close to the natural up as possible.
- Measure the size horizontally and vertically of the projection area.
- Measure the distance between projector and screen.
- Size/distance gives the view size, alas the field of view. It must cover the whole projection area. Make it a little bigger to compensate for possible projector movement.
- Most IG’s use angles to define a viewport, so switch to angles view and round the angle to make it easier to enter into the IG’s settings.
Export view ports
By clicking “IG views…” on the bottom of the Custom content spaces dialog, you can export poses for your IG. You have to define a straight forward direction in model coordinates, which indicates the main moving direction of your simulator. Usually something like a vector from eye to the centre of the screen.
Enter or browse a destination file.
Optionally you can use a template file to generate an individual settings file for your IG
Sample template for exporting view parameters:
#this is a comment #macros are in ${} #macros are case sensitive, no white spaces allowed #first comes the settings section, nothing is written to file ${!rotationOrder,YXZ} #rotationOrder,param=[XYZ,XZY,YXZ,YZX,ZXY,ZYX] ${!angles,degree} #angles,param=[degree,radian] ${!header} #start of file header, following is written first to the file #Export VIOSO Calibrator views ${date,%Y%m%d%H%M%S}. #date,format=seestrftime ${!channel} #!channel starts the channels section, this is written for every channel [${name}] #name the channel name yaw=${aY,0.5} #aY,format=[digits.precision] rotation around Y axis, if format is omitted it's set to "0.5" pitch=${aX,0.5} roll=${aZ,0.5} FoVLeft=${fovL,0.5} #fovL,format field of view to the left FoVRight=${fovR,0.5} #right,format FoVTop=${fovT,0.5} #top,format FoVBottom=${fovB,0.5} #bottom,format FoVHorizontal=${fovH} #fovH,format entire horizontal field of view FoVVertical=${fovV} #fovV,format entire vertical field of view FoVCenterH=${fovHC} #fovHC,format horizontal center angle, 0 if symmetric FoVCenterV=${fovVC} #fovVC,format vertical center angle, 0 if symmetric dirX=${dirX} #dirX,format x-coordinate of view vector dirY=${dirY} #dirY,format y-coordinate of view vector dirZ=${dirZ} #dirZ,format z-coordinate of view vector upX=${upX} #upX,format x-coordinate of up vector upY=${upY} #upY,format y-coordinate of up vector upZ=${upZ} #upZ,format z-coordinate of up vector sizeH=${sizeH} #sizeH,format horizontal view size sizeV=${sizeV} #sizeV,format vertical view size centerH=${centerH} #centerH,format vertical view center, 0.5 is symmetric, 0is entitrly left, 1 entirely right centerV=${centerV} #centerV,format vertical view center offsetH=${offsetH} #horizontal view offset 0 is symmetric, 1 is entirely left, -1 entirely right offsetV=${offsetV} #vertical view offset 0 is symmetric, 1 is entirely left, -1 entirely right aspect=${aspect} #view aspect ratio, sizeH/sizeV ${!footer} #starts the footer, this is written at the end of the file, once all channels are written
Define a screen model
If we know the camera’s position to the real screen, we can match every camera image coordinate to a 3D coordinate on a virtual screen model. Use your favorite CAD (i.e. SketchUp® ) and create a model of your screen. Be careful with the metrics. If you want to use Content space transformations, put on a texture map (ONE texture for the whole model, unique uniform coordinates for the whole surface!). Export to a VIOSO readable format (.obj, .dae or .3ds are best).
Now go to Extras->Custom content spaces and create a new model. Use camera resolution.
- Set a prepared model file.
- Check invert “v-coordinates”.
- If necessary, adjust settings. Finally, save.