November 6, 2019 update:
  • There's a new open source Cardboard SDK for iOS and Android NDK that offers a streamlined API, improved device compatibility, and built-in viewer profile QR code scanning. A corresponding Unity package (SDK) is planned for a future release. We recommend that all developers actively building for Google Cardboard migrate (iOS, Android NDK) to the new Cardboard SDK.
October 15, 2019 update:
  • The Daydream View VR headset is no longer available for purchase. However, you can continue to use the existing Google VR SDK to update and distribute your apps to the Google Play Store, and make them available to users in the Daydream app.

Eye

public class Eye

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.Type constants.

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.