Class InstancedRenderSystem

All Implemented Interfaces:
com.badlogic.gdx.utils.Disposable, IObserver, IRenderSystem, Comparable<IRenderSystem>
Direct Known Subclasses:
ParticleSetInstancedRenderer, StarSetInstancedRenderer, VariableSetInstancedRenderer

public abstract class InstancedRenderSystem extends ImmediateModeRenderSystem implements IObserver
  • Field Details

  • Constructor Details

  • Method Details

    • initVertices

      protected void initVertices()
      Specified by:
      initVertices in class ImmediateModeRenderSystem
    • isWireframe

      public boolean isWireframe(int primitive)
    • setModel

      protected void setModel(int offset, InstancedRenderSystem.InstancedModel model)
    • getModel

      protected InstancedRenderSystem.InstancedModel getModel(ParticleSet set, int offset)
    • getModel

      protected InstancedRenderSystem.InstancedModel getModel(IntModel modelFile, String modelType, Map<String,Object> modelParams, int primitive, int offset)
    • addAttributesDivisor0

      protected void addAttributesDivisor0(com.badlogic.gdx.utils.Array<com.badlogic.gdx.graphics.VertexAttribute> attributes, int posArraySize, boolean useNormals, boolean useTexCoords)
      Adds the required vertex attributes for this renderer to the given list. These attributes are added only once for all instances (divisor=0)
      Parameters:
      attributes - The list of attributes with divisor=0
      posArraySize - Size of the position array (2 or 3).
      useNormals - Add normal attributes as a vector-3.
      useTexCoords - Add texture coordinates attribute as a vector-2.
    • addAttributesDivisor1

      protected abstract void addAttributesDivisor1(com.badlogic.gdx.utils.Array<com.badlogic.gdx.graphics.VertexAttribute> attributes, int primitive)
      Adds the required vertex attributes for this renderer to the given list. These attributes are added for every instance (divisor=1)
      Parameters:
      attributes - The list of attributes with divisor=1
      primitive - The rendering primitive.
    • buildAttributesDivisor0

      protected com.badlogic.gdx.graphics.VertexAttribute[] buildAttributesDivisor0(int posArraySize, boolean useNormals, boolean useTexCoords)
      Builds the vertex attributes with divisor=0 array and returns it. The content of divisor-0 attributes is updated in each iteration of the vertex shader.
      Parameters:
      posArraySize - Size of the position array (2 or 3).
      useNormals - Add normal attributes as a vector-3.
      useTexCoords - Add texture coordinates attribute as a vector-2.
      Returns:
      The vertex attributes array
    • buildAttributesDivisor1

      protected com.badlogic.gdx.graphics.VertexAttribute[] buildAttributesDivisor1(int primitive)
      Builds the vertex attributes with divisor=1 array and returns it The content of divisor-1 attributes is updated for each instance.
      Parameters:
      primitive - The rendering primitive.
      Returns:
      The vertex attributes array.
    • offsets0

      protected abstract void offsets0(ImmediateModeRenderSystem.MeshData curr, InstancedRenderSystem.InstancedModel model)
      Computes the offset for each vertex attribute. The offsets will be used later in the render stage.
      Parameters:
      curr - The current mesh data.
      model - The instanced model.
    • offsets1

      protected abstract void offsets1(ImmediateModeRenderSystem.MeshData curr, InstancedRenderSystem.InstancedModel model)
      Computes the offset for each vertex attribute in the instanced array. The offsets will be used later in the render stage.
      Parameters:
      curr - The current mesh data.
      model - The instanced model.
    • addMeshData

      protected int addMeshData(InstancedRenderSystem.InstancedModel model, int maxVerts, int maxInstances, int maxIndices, String modelFile, String modelType, int primitive)
      Adds a new mesh data to the meshes list and increases the mesh data index.
      Parameters:
      model - The instanced model instance.
      maxVerts - The max number of vertices the divisor 0 mesh data can hold.
      maxInstances - The max number of vertices the divisor 1 mesh data can hold.
      modelFile - The model file, if any.
      modelType - The model type string.
      primitive - The rendering primitive.
      Returns:
      The index of the new mesh data.
    • preRenderObjects

      protected void preRenderObjects(ExtShaderProgram shaderProgram, ICamera camera)
    • renderObject

      protected void renderObject(ExtShaderProgram shaderProgram, IRenderable renderable)
    • postRenderObjects

      protected void postRenderObjects(ExtShaderProgram shaderProgram, ICamera camera)
    • renderStud

      public void renderStud(List<IRenderable> renderables, ICamera camera, double t)
      Specified by:
      renderStud in class AbstractRenderSystem