Click or drag to resize
SoStereoCameraabsoluteAdjustments Property

Specifies if stereo adjustments are absolute.

Namespace: OIV.Inventor.Nodes
Assembly: OIV.Inventor (in OIV.Inventor.dll) Version: 2023.1.3.0 (2023.1.3)
Syntax
public SoSFBool absoluteAdjustments { get; }

Property Value

Type: SoSFBool
Remarks

false by default.

The default non-absolute mode allows the stereo settings to be valid over a range of different view volume settings. If you chose absolute mode, you are responsible for modifying the stereo settings (if necessary) when the view volume changes.

When absolute mode is true, stereo offset and balance are used as shown in the following pseudo-code for the right eye view:

StereoCameraOffset = offset.getValue();
FrustumAsymmetry   = balance.getValue();

glTranslated (-StereoCameraOffset, 0, 0);
glFrustum (FrustumLeft + FrustumAsymmetry, FrustumRight + FrustumAsymmetry,
          FrustumBottom, FrustumTop, NearClipDistance, FarClipDistance);
The left eye view is symmetric.

When absolute mode is false, stereo offset and balance are used as shown in the following pseudo-code for the right eye view:

Xrange is right minus left (i.e., first two arguments of glFrustum) and multiply that difference by the ratio of the distance to the desired plane of zero parallax to the near clipping plane distance.

StereoCameraOffset   = Xrange * 0.035 * offset.getValue();
FrustumAsymmetry     = -StereoCameraOffset * balance.getValue();
ZeroParallaxDistance = (NearClipDistance + FarClipDistance)/0.5;

FrustumAsymmetry *= NearClipDistance / ZeroParallaxDistance;

glTranslated (-StereoCameraOffset, 0, 0);
glFrustum (FrustumLeft + FrustumAsymmetry, FrustumRight + FrustumAsymmetry,
          FrustumBottom, FrustumTop, NearClipDistance, FarClipDistance);
The left eye view is symmetric.

See Also