summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2014-07-10 15:03:52 +0200
committerSven Gothel <[email protected]>2014-07-10 15:03:52 +0200
commit94f850ba9fdbec76b6c74eea5d4322352d3021a6 (patch)
tree55694d908b53af9189d99428d36f965c396a4351
parent9d7a7e55c95fcf29ce1ed0804fd7791c1c1147de (diff)
StereoDeviceRenderer/ClientRenderer: Add note about 'Correct Asymmetric FOV Rendering', using FovHVHalves - incl. references
-rw-r--r--src/jogl/classes/com/jogamp/opengl/util/stereo/StereoClientRenderer.java3
-rw-r--r--src/jogl/classes/com/jogamp/opengl/util/stereo/StereoDeviceRenderer.java15
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 {
/**