Google cardBoard Android API (六):DistortionRenderer

来源:互联网 发布:fullscreen软件 编辑:程序博客网 时间:2024/06/08 18:38
public class DistortionRenderer

Encapsulates the rendering operations to correct lens distortion.

This class is not thread-safe. For performance reasons, exposed public methods in this class are assumed to run in mutual exclusion (e.g. in the same or non-overlapping threads).

Public Constructors

DistortionRenderer()

Public Methods

void
afterDrawFrame()
void
beforeDrawFrame()
boolean
haveViewportsChanged()
void
onFovChanged(HeadMountedDisplay hmd, FieldOfView leftFov, FieldOfView rightFov, float virtualEyeToScreenDistance)
void
setRestoreGLStateEnabled(boolean enabled)
void
setVignetteEnabled(boolean enabled)
void
undistortTexture(int textureId)
void
updateViewports(Viewport leftViewport, Viewport rightViewport)

Inherited Methods

Public Constructors

public DistortionRenderer ()

Public Methods

public void afterDrawFrame ()

Performs distortion correction.

Must be called after drawing a frame to correct its distortion. Note that this method is only allowed to modify the parts of the OpenGL state machine which are backed up and restored using a GLStateBackup object.

public void beforeDrawFrame ()

Performs the required setup to correct distortion.

Must be called before drawing a frame that should be undistorted.

public boolean haveViewportsChanged ()

Checks if the distortion-corrected dimensions of the viewports have changed since the last call to updateViewports.

Returns
  • true if the dimensions have changed, false otherwise.

public void onFovChanged (HeadMountedDisplay hmd, FieldOfView leftFov,FieldOfView rightFov, float virtualEyeToScreenDistance)

To be called when a change in the field of view of any eye happens.

Must be called at least once prior to beforeDrawFrame(). Calling this method betweenbeforeDrawFrame() and afterDrawFrame() calls will raise an IllegalStateException.

This method might recompute the mesh used for distortion correction, but no changes involving GL calls will take place until beforeDrawFrame() is called.

Parameters
hmdThe head mounted display.leftFovThe field of view of the left eye.rightFovThe field of view of the right eye.virtualEyeToScreenDistanceThe virtual-eye-to-screen distance in meters.

public void setRestoreGLStateEnabled (boolean enabled)

Enables or disables restoration of the application's GL state after postprocessing.

If this flag is enabled, the framework ensures that the GL state at the beginning of the next frame is equivalent to the GL state at the end of the last frame.

Enabled by default.

Parameters
enabledtrue to enable GL state restoration, false to disable.

public void setVignetteEnabled (boolean enabled)

Enables or disables vignetting around frame edge.

If this flag is enabled, the distortion shader applies a darkening effect to the edges of the visible viewport, simulating vignetting.

Enabled by default.

Parameters
enabledtrue to enable vignette effect, false to disable.

public void undistortTexture (int textureId)

Undistorts the provided texture by rendering into the current output target.

This method should not be directly called when using the beforeDrawFrame() andafterDrawFrame() methods.

Parameters
textureIdTexture to undistort.

public void updateViewports (Viewport leftViewport, Viewport rightViewport)

Updates the eye viewports to their effective dimensions after distortion correction.

Parameters
leftViewportObject updated with the viewport for the left eye.rightViewportObject updated with the viewport for the right eye.
0 0
原创粉丝点击