j3d.org Aviatrix3D

org.j3d.aviatrix3d.pipeline
Class DefaultRenderPipeline

java.lang.Object
  extended byorg.j3d.aviatrix3d.pipeline.DefaultRenderPipeline
All Implemented Interfaces:
RenderPipeline

public class DefaultRenderPipeline
extends java.lang.Object
implements RenderPipeline

The default implementation of the rendering pipeline usable by most applications.

This implementation is targeted towards single threaded architectures. After setting the stages, the render command will not return until everything is complete.

Note:

Layers are not implemented yet.

Version:
$Revision: 1.9 $
Author:
Justin Couch

Constructor Summary
DefaultRenderPipeline()
          Create an instance of the pipeline with nothing registered.
DefaultRenderPipeline(CullStage cs, SortStage ss)
          Construct a pipeline with the sort and cull stages provided.
 
Method Summary
 void displayOnly()
          Cause the surface to redraw the next frame only, with no processing of the pipeline.
 DrawableSurface getDrawableSurface()
          Get the currently registered drawable surface instance.
 void render()
          Start the pipeline functioning now.
 void setCuller(CullStage cs)
          Set the cull instance to be used.
 void setDrawableSurface(DrawableSurface surface)
          Register a drawing surface that this pipeline will send its output to.
 void setEyePointOffset(float x, float y, float z)
          Set the eyepoint offset from the centre position.
 void setRenderableLayers(Layer[] layers, int numLayers)
          Set the set of layers to be used by this pipeline.
 void setRenderableScene(Scene scene)
          Set the root of the scene graph to be used by this pipeline.
 void setScreenOrientation(float x, float y, float z, float a)
          Set the orientation of this screen relative to the user's normal view direction.
 void setSorter(SortStage ss)
          Set the sorter instance to be used.
 void swapBuffers()
          Instruct the drawable at the end of this pipeline to swap the buffers now.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultRenderPipeline

public DefaultRenderPipeline()
Create an instance of the pipeline with nothing registered.


DefaultRenderPipeline

public DefaultRenderPipeline(CullStage cs,
                             SortStage ss)
Construct a pipeline with the sort and cull stages provided.

Parameters:
ss - The sort stage instance to use
cs - The cull stage instance to use
Method Detail

setDrawableSurface

public void setDrawableSurface(DrawableSurface surface)
Register a drawing surface that this pipeline will send its output to. Setting a null value will remove the current drawable surface.

Specified by:
setDrawableSurface in interface RenderPipeline
Parameters:
surface - The surface instance to use or replace

getDrawableSurface

public DrawableSurface getDrawableSurface()
Get the currently registered drawable surface instance. If none is set, return null.

Specified by:
getDrawableSurface in interface RenderPipeline
Returns:
The currently set surface instance or null

render

public void render()
Start the pipeline functioning now. All steps will be called and this method will not return until all are completed and the surface has swapped.

Specified by:
render in interface RenderPipeline

displayOnly

public void displayOnly()
Cause the surface to redraw the next frame only, with no processing of the pipeline. This is typically an optimisation step when nothing has changed in user land, so there's no processing that needs to be done. Skip the processing and tell the drawable surface to render again what it already has set from the previous frame.

Specified by:
displayOnly in interface RenderPipeline

swapBuffers

public void swapBuffers()
Instruct the drawable at the end of this pipeline to swap the buffers now.

Specified by:
swapBuffers in interface RenderPipeline

setRenderableScene

public void setRenderableScene(Scene scene)
Set the root of the scene graph to be used by this pipeline. A value of null will remove the scene from being rendered, causing the pipeline to function as a no-op when rendered.

Specified by:
setRenderableScene in interface RenderPipeline
Parameters:
scene - The scene to be rendered

setRenderableLayers

public void setRenderableLayers(Layer[] layers,
                                int numLayers)
Set the set of layers to be used by this pipeline. Providing an argument of a zero number of layers remove the layers from being rendered, causing the pipeline to function as a no-op when rendered.

If a scene is currently set, and a non-zero number of layers is provided, this will remove the scene and use the layers instead.

Specified by:
setRenderableLayers in interface RenderPipeline
Parameters:
layers - The collection of layers, in order, to render
numLayers - The number of valid layers to use

setEyePointOffset

public void setEyePointOffset(float x,
                              float y,
                              float z)
Set the eyepoint offset from the centre position. This is used to model offset view frustums, such as multiple displays or a powerwall. This method will be called with the appropriate values from the RenderPipeline that this culler is inserted into.

Specified by:
setEyePointOffset in interface RenderPipeline
Parameters:
x - The x axis offset
y - The y axis offset
z - The z axis offset

setScreenOrientation

public void setScreenOrientation(float x,
                                 float y,
                                 float z,
                                 float a)
                          throws java.lang.IllegalArgumentException
Set the orientation of this screen relative to the user's normal view direction. The normal orientation of the screen is along the negative Z axis. This method provides and axis-angle reorientation of that direction to one that is facing the screen. Typically this will just involve a rotation around the Y axis of some amount (45 and 90 deg being the most common used in walls and caves). This method will be called with the appropriate values from the RenderPipeline that this culler is inserted into.

Specified by:
setScreenOrientation in interface RenderPipeline
Parameters:
x - The x axis component
y - The y axis component
z - The z axis component
a - The angle to rotate around the axis in radians
Throws:
java.lang.IllegalArgumentException - The length of the axis is zero

setSorter

public void setSorter(SortStage ss)
Set the sorter instance to be used. If the instance is null, the current sorter is removed.

Parameters:
ss - The sorter instance to use or null

setCuller

public void setCuller(CullStage cs)
Set the cull instance to be used. If the instance is null, the current culler is removed.

Parameters:
cs - The cull instance to use or null

j3d.org Aviatrix3D

Latest Info from http://aviatrix3d.j3d.org/
Copyright © 2003 - j3d.org