diff options
author | Sven Göthel <[email protected]> | 2024-01-22 06:35:25 +0100 |
---|---|---|
committer | Sven Göthel <[email protected]> | 2024-01-22 06:35:25 +0100 |
commit | 5f9fb7159fa33bc979e5050d384b6939658049bd (patch) | |
tree | 09bdadf5c05ad007435a6f97a6153fa22702cfc6 /src/test/com/jogamp | |
parent | bf096870c73898963558bef5c9d75760f9f76290 (diff) |
Bug 1489 - GraphUI Group: Resolve Performance Regression in Scene.pickShape(): Drop invisible and clipped shapes
After implementing Bug 1487 (Frustum Clipping/Culling) and using thousands of shapes within one Group mostly culled (outside of frustum),
overall mouse Scene.pickShape() caused tremendous lagging.
This is caused by Scene.pickShape() traversing through _all_ shapes,
rendered ones, invisible ones and culled ones.
+++
Solution is to have Scene and Group provide a pre-sorted list
of actually rendered shapes, i.e. isVisible() and not culled.
Scene.pickShape() can now use this reduced and pre-sorted list
reducing the load considerably.
+++
Further
- cleanup TreeTool
- rename Container methods:
-- setFrustumCullingEnabled() -> setPMvCullingEnabled()
-- isFrustumCullingEnabled() -> isPMvCullingEnabled()
- supply Container with
-- isCullingEnabled()
-- List<Shape> getRenderedShapes()
-- isOutside()
-- isOutside2()
-- forAllRendered()
Diffstat (limited to 'src/test/com/jogamp')
-rw-r--r-- | src/test/com/jogamp/opengl/test/junit/graph/FontViewListener01.java | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/test/com/jogamp/opengl/test/junit/graph/FontViewListener01.java b/src/test/com/jogamp/opengl/test/junit/graph/FontViewListener01.java index aa172743e..3a2255a33 100644 --- a/src/test/com/jogamp/opengl/test/junit/graph/FontViewListener01.java +++ b/src/test/com/jogamp/opengl/test/junit/graph/FontViewListener01.java @@ -65,7 +65,7 @@ public class FontViewListener01 implements GLEventListener { scene = new Scene(graphSampleCount); scene.setClearParams(new float[] { 1f, 1f, 1f, 1f}, GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); - scene.setFrustumCullingEnabled(true); + scene.setPMvCullingEnabled(true); scene.setAAQuality(graphAAQuality); } |