Package org.jzy3d.plot3d.rendering.ddp
Class DepthPeelingRenderer3d
java.lang.Object
org.jzy3d.plot3d.rendering.view.Renderer3d
org.jzy3d.plot3d.rendering.view.AWTRenderer3d
org.jzy3d.plot3d.rendering.ddp.DepthPeelingRenderer3d
- All Implemented Interfaces:
com.jogamp.opengl.GLEventListener
,EventListener
Execute depth peeling methods in a Jzy3d
Renderer3d
This feature is based on Order Independent Transparency algorithms published by Louis Bavoil
(NVIDIA Corporation).
The renderer support 4 methods:
- Dual depth peeling (accurate)
- Front to back peeling (accurate)
- Weighted average peeling (fast)
- Weighted sum peeling (fast)
- Author:
- Louis Bavoil - original paper and C++ code, Martin Pernollet - port to Jzy3d
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected IDepthPeelingAlgorithm
protected com.jogamp.opengl.glu.GLU
protected org.apache.logging.log4j.Logger
Fields inherited from class org.jzy3d.plot3d.rendering.view.AWTRenderer3d
bufferedImage, exporter, screenshotMaker
Fields inherited from class org.jzy3d.plot3d.rendering.view.Renderer3d
debugGL, doScreenshotAtNextDisplay, height, image, lastRenderingTimeMs, profileDisplayTimer, traceGL, view, width
-
Constructor Summary
ConstructorsConstructorDescriptionDepthPeelingRenderer3d
(PeelingMethod algorithm, View view, boolean traceGL, boolean debugGL) DepthPeelingRenderer3d
(View view, boolean traceGL, boolean debugGL) -
Method Summary
Modifier and TypeMethodDescriptionvoid
display
(com.jogamp.opengl.GLAutoDrawable drawable) Called when theGLAutoDrawable
requires a rendering.void
dispose
(com.jogamp.opengl.GLAutoDrawable drawable) static IDepthPeelingAlgorithm
static IGLRenderer
void
init
(com.jogamp.opengl.GLAutoDrawable drawable) Called when theGLAutoDrawable
is rendered for the first time.void
reshape
(com.jogamp.opengl.GLAutoDrawable drawable, int x, int y, int width, int height) Rebuild all depth peeling buffers for the new screen size.Methods inherited from class org.jzy3d.plot3d.rendering.view.AWTRenderer3d
exportImageIfRequired, getExporter, getLastScreenshotImage, renderScreenshotIfRequired, setExporter
Methods inherited from class org.jzy3d.plot3d.rendering.view.Renderer3d
getHeight, getLastRenderingTimeMs, getLastScreenshot, getWidth, nextDisplayUpdateScreenshot, updatePainterWithGL
-
Field Details
-
LOGGER
protected org.apache.logging.log4j.Logger LOGGER -
dualPeelingAlgorithm
-
glu
protected com.jogamp.opengl.glu.GLU glu
-
-
Constructor Details
-
DepthPeelingRenderer3d
-
DepthPeelingRenderer3d
-
-
Method Details
-
init
public void init(com.jogamp.opengl.GLAutoDrawable drawable) Description copied from class:Renderer3d
Called when theGLAutoDrawable
is rendered for the first time. When one calls Scene.init() function, this function is called and makes the OpenGL buffers initialization. Note: in this implementation, GL Exceptions are not triggered. To do so, make te following call at the beginning of the init() body:canvas.setGL( new DebugGL(canvas.getGL()) );
- Specified by:
init
in interfacecom.jogamp.opengl.GLEventListener
- Overrides:
init
in classRenderer3d
-
display
public void display(com.jogamp.opengl.GLAutoDrawable drawable) Description copied from class:Renderer3d
Called when theGLAutoDrawable
requires a rendering. All call to rendering methods should appear here.- Specified by:
display
in interfacecom.jogamp.opengl.GLEventListener
- Overrides:
display
in classRenderer3d
-
getDepthPeelingContentRenderer
-
reshape
public void reshape(com.jogamp.opengl.GLAutoDrawable drawable, int x, int y, int width, int height) Rebuild all depth peeling buffers for the new screen size.- Specified by:
reshape
in interfacecom.jogamp.opengl.GLEventListener
- Overrides:
reshape
in classRenderer3d
-
dispose
public void dispose(com.jogamp.opengl.GLAutoDrawable drawable) - Specified by:
dispose
in interfacecom.jogamp.opengl.GLEventListener
- Overrides:
dispose
in classRenderer3d
-
getDepthPeelingAlgorithm
-