Aviatrix3D
2.1.0

org.j3d.aviatrix3d.pipeline.graphics
Class SimpleTransparencySortStage

java.lang.Object
  extended by org.j3d.aviatrix3d.pipeline.graphics.BaseSortStage
      extended by org.j3d.aviatrix3d.pipeline.graphics.SimpleTransparencySortStage
All Implemented Interfaces:
GraphicsSortStage

public class SimpleTransparencySortStage
extends BaseSortStage

Implementation of the sort stage that separates out the transparent and non transparent objects, but without depth sorting.

Version:
$Revision: 3.7 $
Author:
Justin Couch

Field Summary
 
Fields inherited from class org.j3d.aviatrix3d.pipeline.graphics.BaseSortStage
commandList, errorReporter, instructionMap, lastGlobalId, LIST_START_SIZE, terminate
 
Constructor Summary
SimpleTransparencySortStage()
          Create an empty sorting stage that assumes just a single renderable output.
SimpleTransparencySortStage(int numSurfaces)
          Create an empty sorting stage that initialises the internal structures to assume that there is a minumum number of surfaces, both on and offscreen.
 
Method Summary
protected  int estimateInstructionSize(MultipassRenderBucket scene)
          Estimate the required size of the instruction list needed for this scene to be processed.
protected  int estimateInstructionSize(SceneRenderBucket scene)
          Estimate the required size of the instruction list needed for this scene to be processed.
protected  int sort2DNodes(GraphicsCullOutputDetails[] nodes, int numNodes, GraphicsEnvironmentData data, GraphicsInstructions instr, int instrCount)
          Sort a single set of nodes into the output details of a single layer of a single viewport and place in the provided GraphicsInstructions instance.
protected  int sortNodes(GraphicsCullOutputDetails[] nodes, int numNodes, GraphicsEnvironmentData data, GraphicsInstructions instr, int instrCount)
          Sort a single set of nodes into the output details of a single layer of a single viewport and place in the provided GraphicsInstructions instance.
 
Methods inherited from class org.j3d.aviatrix3d.pipeline.graphics.BaseSortStage
halt, realloc, setErrorReporter, setSortedGeometryReceiver, sort
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SimpleTransparencySortStage

public SimpleTransparencySortStage()
Create an empty sorting stage that assumes just a single renderable output.


SimpleTransparencySortStage

public SimpleTransparencySortStage(int numSurfaces)
Create an empty sorting stage that initialises the internal structures to assume that there is a minumum number of surfaces, both on and offscreen.

Parameters:
numSurfaces - The number of surfaces to start the internal lists sizes at.
Method Detail

sortNodes

protected int sortNodes(GraphicsCullOutputDetails[] nodes,
                        int numNodes,
                        GraphicsEnvironmentData data,
                        GraphicsInstructions instr,
                        int instrCount)
Sort a single set of nodes into the output details of a single layer of a single viewport and place in the provided GraphicsInstructions instance. The implementation of this method should only concern itself with this set of nodes and not worry about dealing with nested scenes or other viewports.

Specified by:
sortNodes in class BaseSortStage
Parameters:
nodes - The list of nodes to perform sorting on
numNodes - The number of valid items in the nodes array
instr - Instruction instant to put the details into
instrCount - Offset of current number of valid instructions
data - The environment data used during sorting
Returns:
The current instruction count after sorting

sort2DNodes

protected int sort2DNodes(GraphicsCullOutputDetails[] nodes,
                          int numNodes,
                          GraphicsEnvironmentData data,
                          GraphicsInstructions instr,
                          int instrCount)
Sort a single set of nodes into the output details of a single layer of a single viewport and place in the provided GraphicsInstructions instance. The implementation of this method should only concern itself with this set of nodes and not worry about dealing with nested scenes or other viewports.

Specified by:
sort2DNodes in class BaseSortStage
Parameters:
nodes - The list of nodes to perform sorting on
numNodes - The number of valid items in the nodes array
instr - Instruction instant to put the details into
instrCount - Offset of current number of valid instructions
data - The environment data used during sorting
Returns:
The current instruction count after sorting

estimateInstructionSize

protected int estimateInstructionSize(SceneRenderBucket scene)
Estimate the required size of the instruction list needed for this scene to be processed. This is an initial rough estimate that will be used to make sure the arrays are at least big enough to start with. There is no issue if this underestimates, as most sorting will continually check and resize as needed. However, each resize is costly, so the closer this can be to estimating the real size, the better for performance.

Specified by:
estimateInstructionSize in class BaseSortStage
Parameters:
scene - The scene bucket to use for the source
Returns:
A greater than zero value

estimateInstructionSize

protected int estimateInstructionSize(MultipassRenderBucket scene)
Estimate the required size of the instruction list needed for this scene to be processed. This is an initial rough estimate that will be used to make sure the arrays are at least big enough to start with. There is no issue if this underestimates, as most sorting will continually check and resize as needed. However, each resize is costly, so the closer this can be to estimating the real size, the better for performance.

Specified by:
estimateInstructionSize in class BaseSortStage
Parameters:
scene - The scene bucket to use for the source
Returns:
A greater than zero value

Aviatrix3D
2.1.0

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