Page Summary
-
The
Eyeclass describes the stereoscopic rendering details of an eye, including field of view, viewport, and perspective. -
It provides methods to obtain the transformation matrix from the camera to the eye, considering head tracking and interpupillary distance.
-
Developers can retrieve the field of view and generate the perspective projection matrix for each eye.
-
The
Eyeclass helps manage projection changes and provides access to the eye type and viewport information. -
It uses the
Eye.Typenested class to define constants identifying the current eye type (e.g., left or right).
Describes the stereoscopic rendering details of an eye.
Nested Classes
| class | Eye.Type | Defines the constants identifying the current eye type. | |
Public Constructors
|
Eye(int type)
Creates a new set of eye parameters.
|
Public Methods
| float[] |
getEyeView()
Returns a matrix that transforms from the camera to the current eye.
|
| FieldOfView |
getFov()
Returns the field of view for this eye.
|
| float[] |
getPerspective(float zNear, float zFar)
Convenience method that returns the perspective projection matrix for this eye.
|
| boolean |
getProjectionChanged()
Whether the projection matrix is stale and should be recomputed.
|
| int |
getType()
Returns the eye type this object refers to.
|
| Viewport |
getViewport()
Returns the viewport for this eye.
|
| void |
setProjectionChanged()
Forces to clean up any cached projection matrices.
|
Inherited Methods
Public Constructors
public Eye (int type)
Creates a new set of eye parameters.
Parameters
| type | One of the Eye.Type constants describing the eye this object
refers to. Behavior is undefined if an invalid eye constant is provided.
|
|---|
Public Methods
public float[] getEyeView ()
Returns a matrix that transforms from the camera to the current eye.
This matrix should premultiply the camera matrix.
Assumes a scale of 1 world unit = 1 meter when applying the interpupillary distance.
If this not your case, make sure to call android.opengl.Matrix.scaleM on this matrix
to correct it.
The transformation includes head tracking rotation, position shift and interpupillary distance shift. Use this if you just want to get an eye view from your normal view.
Returns
- A 4x4 column-major representing the transformation from the camera to this eye.
public FieldOfView getFov ()
Returns the field of view for this eye.
Use the getFov().toPerspectiveMatrix method to
generate the appropriate perspective projection matrix to use.
Returns
- The field of view for this eye.
public float[] getPerspective (float zNear, float zFar)
Convenience method that returns the perspective projection matrix for this eye.
Calls getFov().toPerspectiveMatrix to generate the
perspective matrix to use.
Parameters
| zNear | Near Z plane to use in the projection. |
|---|---|
| zFar | Far Z plane to use in the projection. |
Returns
- A 4x4 column-major matrix representing the perspective projection for this eye.
public boolean getProjectionChanged ()
Whether the projection matrix is stale and should be recomputed.
Returns
- true if projection matrix is stale, false otherwise
public int getType ()
Returns the eye type this object refers to.
Returns
- The current eye as one of the
Eye.Typeconstants.
public Viewport getViewport ()
Returns the viewport for this eye.
Returns
- Viewport to use when rendering this eye.
public void setProjectionChanged ()
Forces to clean up any cached projection matrices.
Called by the framework when projection parameters change between frames.
Should be called if the eye's field of view object returned by getFov() is changed.