Class CameraGroupStrategy

java.lang.Object
gaiasky.util.gdx.g3d.decals.CameraGroupStrategy
All Implemented Interfaces:
com.badlogic.gdx.graphics.g3d.decals.GroupStrategy, com.badlogic.gdx.utils.Disposable

public class CameraGroupStrategy extends Object implements com.badlogic.gdx.graphics.g3d.decals.GroupStrategy, com.badlogic.gdx.utils.Disposable

Minimalistic grouping strategy that splits decals into opaque and transparent ones enabling and disabling blending as needed. Opaque decals are rendered first (decal color is ignored in opacity check).
Use this strategy only if the vast majority of your decals are opaque and the few transparent ones are unlikely to overlap.

Can produce invisible artifacts when transparent decals overlap each other.

Needs to be explicitly disposed as it might allocate a ShaderProgram when GLSL 2.0 is used.

States (* = any, EV = entry value - same as value before flush):

expects exits on
glDepthMask true EV
GL_DEPTH_TEST enabled EV
glDepthFunc GL_LESS | GL_LEQUAL EV
GL_BLEND disabled EV | disabled
glBlendFunc * *
GL_TEXTURE_2D * disabled

  • Constructor Details Link icon

    • CameraGroupStrategy Link icon

      public CameraGroupStrategy(com.badlogic.gdx.graphics.Camera camera)
    • CameraGroupStrategy Link icon

      public CameraGroupStrategy(com.badlogic.gdx.graphics.Camera camera, Comparator<com.badlogic.gdx.graphics.g3d.decals.Decal> sorter)
  • Method Details Link icon

    • getCamera Link icon

      public com.badlogic.gdx.graphics.Camera getCamera()
    • setCamera Link icon

      public void setCamera(com.badlogic.gdx.graphics.Camera camera)
    • decideGroup Link icon

      public int decideGroup(com.badlogic.gdx.graphics.g3d.decals.Decal decal)
      Specified by:
      decideGroup in interface com.badlogic.gdx.graphics.g3d.decals.GroupStrategy
    • beforeGroup Link icon

      public void beforeGroup(int group, com.badlogic.gdx.utils.Array<com.badlogic.gdx.graphics.g3d.decals.Decal> contents)
      Specified by:
      beforeGroup in interface com.badlogic.gdx.graphics.g3d.decals.GroupStrategy
    • afterGroup Link icon

      public void afterGroup(int group)
      Specified by:
      afterGroup in interface com.badlogic.gdx.graphics.g3d.decals.GroupStrategy
    • beforeGroups Link icon

      public void beforeGroups()
      Specified by:
      beforeGroups in interface com.badlogic.gdx.graphics.g3d.decals.GroupStrategy
    • afterGroups Link icon

      public void afterGroups()
      Specified by:
      afterGroups in interface com.badlogic.gdx.graphics.g3d.decals.GroupStrategy
    • getGroupShader Link icon

      public com.badlogic.gdx.graphics.glutils.ShaderProgram getGroupShader(int group)
      Specified by:
      getGroupShader in interface com.badlogic.gdx.graphics.g3d.decals.GroupStrategy
    • dispose Link icon

      public void dispose()
      Specified by:
      dispose in interface com.badlogic.gdx.utils.Disposable