Aviatrix3D
2.1.0

org.j3d.aviatrix3d.pipeline.graphics
Class SimpleFrustumCullStage

java.lang.Object
  extended by org.j3d.aviatrix3d.pipeline.graphics.BaseCullStage
      extended by org.j3d.aviatrix3d.pipeline.graphics.SimpleFrustumCullStage
All Implemented Interfaces:
CullStage, GraphicsCullStage

public class SimpleFrustumCullStage
extends BaseCullStage

Implementation of view frustum culling but does not handle nodes that have custom culling requests.

The culling phase generates a list of nodes to render which can then be passed to later stages for further optimisation, such as state sorting.

By default, the implementation will walk into shape3Ds looking for any offscreen textures to be rendered. If you know that you do not have any in the scene, then you can set an internal flag to not look for them, thus achieving a simple performance boost.

Version:
$Revision: 3.19 $
Author:
Alan Hudson

Field Summary
 
Fields inherited from class org.j3d.aviatrix3d.pipeline.graphics.BaseCullStage
activeParent, appearanceStack, checkOffscreens, clipList, clipTxList, currentViewpointPath, errorReporter, eyePoint, fogStack, lastAppearanceStack, lastClip, lastFogStack, lastLight, lastOutputLayer, lastOutputList, lastSubscene, lastTxStack, layersTmp, LIGHT_INCREMENT, LIGHT_START_SIZE, lightList, lightTxList, LIST_INCREMENT, LIST_START_LENGTH, matrixUtils, orientationMatrix, outputLayerCounts, outputLayers, outputSceneParents, pendingParents, pendingSubscenes, processedPBufferTextures, screenOrientation, SHARED_VP_MSG, terminate, transformStack, useEyePoint, useOrientation, validSceneParents, viewMatrix1, viewMatrix2, workCullList, workLayerCounts, workLayers
 
Constructor Summary
SimpleFrustumCullStage()
          Create a basic instance of this class with the list assuming there are no off-screen buffers in use for the initial internal setup.
SimpleFrustumCullStage(int numSurfaces)
          Create a basic instance of this class with the list initial internal setup for the given number of renderable surfaces.
 
Method Summary
protected  void cullRenderPass(RenderPassCullable pass, int passNumber, int subsceneId, int layerId, int viewIndex, int layerIndex)
          Update and cull the a single pass from a multipass rendering.
protected  void cullScene(RenderPassCullable scene, int subsceneId, int layerId, int viewIndex, int layerIndex)
          Update and cull the scenegraph.
protected  void cullScene2D(RenderPassCullable scene, int subsceneId, int layerId, int viewIndex, int layerIndex)
          Update and cull a 2D scenegraph.
 
Methods inherited from class org.j3d.aviatrix3d.pipeline.graphics.BaseCullStage
checkForOffscreens, cleanupOldRefs, cull, cullMultipassViewportLayer, cullSingleViewportLayer, cullViewport, fill2DEnvData, fillMultipassEnvData, fillRenderPassEnvData, fillSingleEnvData, halt, isOffscreenCheckEnabled, processLayer, resizeAppearanceStack, resizeClipList, resizeCullList, resizeFogStack, resizeLightList, resizeOffscreenList, resizeOutputLists, resizeStack, setCulledGeometryReceiver, setErrorReporter, setEyePointOffset, setOffscreenCheckEnabled, setScreenOrientation
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SimpleFrustumCullStage

public SimpleFrustumCullStage()
Create a basic instance of this class with the list assuming there are no off-screen buffers in use for the initial internal setup.


SimpleFrustumCullStage

public SimpleFrustumCullStage(int numSurfaces)
Create a basic instance of this class with the list initial internal setup for the given number of renderable surfaces. The size is just an initial esstimate, and is used for optimisation purposes to prevent frequent array reallocations internally. As such, the number does not have to be perfect, just good enough.

Parameters:
numSurfaces - Total number of surfaces to prepare rendering for
Method Detail

cullScene

protected void cullScene(RenderPassCullable scene,
                         int subsceneId,
                         int layerId,
                         int viewIndex,
                         int layerIndex)
Update and cull the scenegraph. This generates an ordered list of nodes to render. It will not return until the culling is complete.

Specified by:
cullScene in class BaseCullStage
Parameters:
scene - The scene instance to cull
subsceneId - The index of the subscene in the viewport output
layerId - The index of the layer in the output
viewIndex - The index of the viewport in the parent ViewportCollection
layerIndex - The index of the layer within the viewport

cullScene2D

protected void cullScene2D(RenderPassCullable scene,
                           int subsceneId,
                           int layerId,
                           int viewIndex,
                           int layerIndex)
Update and cull a 2D scenegraph. This generates an ordered list of nodes to render. It will not return until the culling is complete.

Specified by:
cullScene2D in class BaseCullStage
Parameters:
scene - The scene instance to cull
subsceneId - The index of the subscene in the viewport output
layerId - The index of the layer in the output
viewIndex - The index of the viewport in the parent ViewportCollection
layerIndex - The index of the layer within the viewport

cullRenderPass

protected void cullRenderPass(RenderPassCullable pass,
                              int passNumber,
                              int subsceneId,
                              int layerId,
                              int viewIndex,
                              int layerIndex)
Update and cull the a single pass from a multipass rendering. This generates an ordered list of nodes to render in the same was as a normal scene, but with fewer items updated, such as only a single background for all passes. It will not return until the culling is complete.

Specified by:
cullRenderPass in class BaseCullStage
Parameters:
pass - The rendering pass instance to cull
subsceneId - The index of the subscene in the viewport output
layerId - The index of the layer in the output
viewIndex - The index of the viewport in the parent ViewportCollection
layerIndex - The index of the layer within the viewport

Aviatrix3D
2.1.0

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