|
Aviatrix3D 2.1.0 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.j3d.aviatrix3d.pipeline.graphics.BaseSortStage
org.j3d.aviatrix3d.pipeline.graphics.TransparencyDepthSortStage
public class TransparencyDepthSortStage
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.
Field Summary |
---|
Fields inherited from class org.j3d.aviatrix3d.pipeline.graphics.BaseSortStage |
---|
commandList, errorReporter, instructionMap, lastGlobalId, LIST_START_SIZE, terminate |
Constructor Summary | |
---|---|
TransparencyDepthSortStage()
Create an empty sorting stage that assumes just a single renderable output. |
|
TransparencyDepthSortStage(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. |
|
TransparencyDepthSortStage(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 | |
---|---|
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 |
---|
public TransparencyDepthSortStage()
public TransparencyDepthSortStage(int numSurfaces)
numSurfaces
- The number of surfaces to start the internal lists
sizes at.public TransparencyDepthSortStage(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 |
---|
protected int sortNodes(GraphicsCullOutputDetails[] nodes, int numNodes, GraphicsEnvironmentData data, GraphicsInstructions instr, int instrCount)
sortNodes
in class BaseSortStage
nodes
- The list of nodes to perform sorting onnumNodes
- The number of valid items in the nodes arrayinstr
- Instruction instant to put the details intoinstrCount
- Offset of current number of valid instructionsdata
- The environment data used during sorting
protected int sort2DNodes(GraphicsCullOutputDetails[] nodes, int numNodes, GraphicsEnvironmentData data, GraphicsInstructions instr, int instrCount)
sort2DNodes
in class BaseSortStage
nodes
- The list of nodes to perform sorting onnumNodes
- The number of valid items in the nodes arrayinstr
- Instruction instant to put the details intoinstrCount
- Offset of current number of valid instructionsdata
- The environment data used during sorting
protected int estimateInstructionSize(SceneRenderBucket scene)
estimateInstructionSize
in class BaseSortStage
scene
- The scene bucket to use for the source
protected int estimateInstructionSize(MultipassRenderBucket scene)
estimateInstructionSize
in class BaseSortStage
scene
- The scene bucket to use for the source
|
Aviatrix3D 2.1.0 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |