aboutsummaryrefslogtreecommitdiffstats
path: root/src/graphui/classes/com/jogamp/graph/ui/Scene.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/graphui/classes/com/jogamp/graph/ui/Scene.java')
-rw-r--r--src/graphui/classes/com/jogamp/graph/ui/Scene.java25
1 files changed, 23 insertions, 2 deletions
diff --git a/src/graphui/classes/com/jogamp/graph/ui/Scene.java b/src/graphui/classes/com/jogamp/graph/ui/Scene.java
index 1de608d12..1a55b39c7 100644
--- a/src/graphui/classes/com/jogamp/graph/ui/Scene.java
+++ b/src/graphui/classes/com/jogamp/graph/ui/Scene.java
@@ -102,10 +102,22 @@ public final class Scene implements Container, GLEventListener {
public static final float DEFAULT_SCENE_DIST = -1/5f;
/** Default projection angle in radians is PI/4, i.e. 45.0 degrees. */
public static final float DEFAULT_ANGLE = FloatUtil.QUARTER_PI;
- /** Default projection z-near value is 0.1. */
+ /** Default projection z-near value is {@value}. */
public static final float DEFAULT_ZNEAR = 0.1f;
- /** Default projection z-far value is 7000. */
+ /** Default projection z-far value is {@value}. */
public static final float DEFAULT_ZFAR = 7000.0f;
+ /** Default Z precision on 16-bit depth buffer using {@link #DEFAULT_SCENE_DIST} z-position and {@link #DEFAULT_ZNEAR}. Value is {@code 0.0000061033...}*/
+ public static final float DEFAULT_Z16_EPSILON = FloatUtil.getZBufferEpsilon(16 /* zBits */, DEFAULT_SCENE_DIST, DEFAULT_ZNEAR);
+
+ /**
+ * Return Z precision on using {@link PMVMatrixSetup#getSceneDist()} z-position and {@link PMVMatrixSetup#getZNear()}.
+ * @param zBits depth buffer bit-depth, minimum 16-bit
+ * @param setup {@link PMVMatrixSetup} for scene-distance as z-position and zNear
+ * @return the Z precision
+ */
+ public static float getZEpsilon(final int zBits, final PMVMatrixSetup setup) {
+ return FloatUtil.getZBufferEpsilon(zBits, setup.getSceneDist(), setup.getZNear());
+ }
/** Minimum sample count {@value} for Graph Region AA {@link Region#getRenderModes() render-modes}: {@link Region#VBAA_RENDERING_BIT} or {@link Region#MSAA_RENDERING_BIT}. */
public static final int MIN_SAMPLE_COUNT = 1;
@@ -813,6 +825,15 @@ public final class Scene implements Container, GLEventListener {
public AABBox getBounds() { return planeBox; }
/**
+ * Return Z precision on using current {@link #getPMVMatrixSetup()}'s {@link PMVMatrixSetup#getSceneDist()} z-position and {@link PMVMatrixSetup#getZNear()}.
+ * @param zBits depth buffer bit-depth, minimum 16-bit
+ * @return the Z precision
+ */
+ public float getZEpsilon(final int zBits) {
+ return FloatUtil.getZBufferEpsilon(zBits, pmvMatrixSetup.getSceneDist(), pmvMatrixSetup.getZNear());
+ }
+
+ /**
*
* @param pmv
* @param viewport