diff options
Diffstat (limited to 'src/jogl/classes/com/jogamp/opengl/util')
-rw-r--r-- | src/jogl/classes/com/jogamp/opengl/util/stereo/StereoClientRenderer.java | 3 | ||||
-rw-r--r-- | src/jogl/classes/com/jogamp/opengl/util/stereo/StereoDeviceRenderer.java | 15 |
2 files changed, 18 insertions, 0 deletions
diff --git a/src/jogl/classes/com/jogamp/opengl/util/stereo/StereoClientRenderer.java b/src/jogl/classes/com/jogamp/opengl/util/stereo/StereoClientRenderer.java index dfb676456..30aa2ef6d 100644 --- a/src/jogl/classes/com/jogamp/opengl/util/stereo/StereoClientRenderer.java +++ b/src/jogl/classes/com/jogamp/opengl/util/stereo/StereoClientRenderer.java @@ -41,12 +41,15 @@ import com.jogamp.opengl.FBObject; import com.jogamp.opengl.FBObject.Attachment; import com.jogamp.opengl.FBObject.TextureAttachment; import com.jogamp.opengl.FBObject.Attachment.Type; +import com.jogamp.opengl.math.FovHVHalves; import com.jogamp.opengl.util.CustomGLEventListener; /** * {@link StereoClientRenderer} utilizing {@link StereoDeviceRenderer} * implementing {@link GLEventListener} for convenience. * <p> + * See {@link StereoDeviceRenderer} notes about <b>Correct {@link FovHVHalves Asymmetric FOV} Rendering</b>. + * <p> * Implementation renders {@link StereoGLEventListener} * using one or more {@link FBObject} according to {@link StereoDeviceRenderer#getTextureCount()}. * </p> diff --git a/src/jogl/classes/com/jogamp/opengl/util/stereo/StereoDeviceRenderer.java b/src/jogl/classes/com/jogamp/opengl/util/stereo/StereoDeviceRenderer.java index 1805b71bc..ab9ba99a1 100644 --- a/src/jogl/classes/com/jogamp/opengl/util/stereo/StereoDeviceRenderer.java +++ b/src/jogl/classes/com/jogamp/opengl/util/stereo/StereoDeviceRenderer.java @@ -31,6 +31,8 @@ import javax.media.nativewindow.util.DimensionImmutable; import javax.media.nativewindow.util.RectangleImmutable; import javax.media.opengl.GL; +import com.jogamp.opengl.math.FovHVHalves; + /** * Stereoscopic device rendering interface. * <p> @@ -54,7 +56,20 @@ import javax.media.opengl.GL; * <li>device.{@link #ppEnd(GL)}</li> * </ul></li> * <li>device.{@link #endFrame(GL)}</li> + * </ul> + * </p> + * <a name="asymFOVRendering"><h5>Correct {@link FovHVHalves Asymmetric FOV} Rendering</h5></a> + * <p> + * The {@link StereoClientRenderer} shall render both images for each eye correctly <i>Off-axis</i> + * utilizing an asymmetric camera frustum, i.e. by using {@link StereoDevice StereoDevice}'s {@link StereoDevice#getDefaultFOV() default} {@link FovHVHalves}.<br> + * + * Some references: * <ul> + * <li><a href="https://en.wikipedia.org/wiki/Binocular_vision">Wiki: Binocular Vision</a></li> + * <li><a href="http://paulbourke.net/stereographics/stereorender/">Paul Burke: Stereo Graphics - Stereo Renderer</a></li> + * <li><a href="https://en.wikipedia.org/wiki/Distortion_%28optics%29">Wiki: Distortion (Optics)</a></li> + * </ul> + * </p> */ public interface StereoDeviceRenderer { /** |