|
Aviatrix3D 1.0 | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.j3d.aviatrix3d.pipeline.DepthSortedTransparencyStage
Implementation of the sort stage that separates out the transparent and non transparent objects, and then arranges them using depth sorting.
The depth sorting algorithm used is to first assemble all the transparen objects into a list. Calculate their distance from the screen using the center of the bounds as the world space position. Normalise the depth to an integer between 0 and 32K (16bit depth buffer equivalent) where 0 is the near clipping plane and 32K is the far clipping plane. With the distance values, perform a counting-sort operation to sort the objects into the correct order with deepest first.
Constructor Summary | |
DepthSortedTransparencyStage()
Create an empty sorting stage that assumes just a single renderable output. |
|
DepthSortedTransparencyStage(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. |
|
DepthSortedTransparencyStage(int numSurfaces,
int depthBits)
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 | |
void |
halt()
Force a halt of the current processing. |
void |
setSortedGeometryReceiver(SortedGeometryReceiver sgr)
Register a reciever for the output of the sorter. |
void |
sort(RenderEnvironmentData[] data,
CullOutputDetails[][] nodes,
int[] numNodes,
SceneGraphObject[][] sceneParents,
int numScenes,
int buffer)
Sort the listing of nodes in the given array. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public DepthSortedTransparencyStage()
public DepthSortedTransparencyStage(int numSurfaces)
numSurfaces
- The number of surfaces to start the internal lists
sizes at.public DepthSortedTransparencyStage(int numSurfaces, int depthBits)
numSurfaces
- The number of surfaces to start the internal lists
sizes at.depthBits
- The number of bits of depth precision to quantize the
depth sorting to
java.lang.IllegalArgumentException
- Depth bits is zero or negativeMethod Detail |
public void sort(RenderEnvironmentData[] data, CullOutputDetails[][] nodes, int[] numNodes, SceneGraphObject[][] sceneParents, int numScenes, int buffer)
sort
in interface SortStage
data
- External rendering environment informationnodes
- List of processed nodes based on the scene they came fromnumNodes
- Number of nodes in each scenesceneParents
- Parent nodes that hold the subscene in the main scene graphnumScenes
- The number of valid scenes to processbuffer
- The buffer ID to use to output the data to when
multi-threadedpublic void setSortedGeometryReceiver(SortedGeometryReceiver sgr)
setSortedGeometryReceiver
in interface SortStage
sgr
- The receiver instance to add or nullpublic void halt()
halt
in interface SortStage
|
Aviatrix3D 1.0 | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |