Package gaiasky.util.gdx.g3d.decals
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 Summary
ConstructorDescriptionCameraGroupStrategy
(com.badlogic.gdx.graphics.Camera camera) CameraGroupStrategy
(com.badlogic.gdx.graphics.Camera camera, Comparator<com.badlogic.gdx.graphics.g3d.decals.Decal> sorter) -
Method Summary
Modifier and TypeMethodDescriptionvoid
afterGroup
(int group) void
void
beforeGroup
(int group, com.badlogic.gdx.utils.Array<com.badlogic.gdx.graphics.g3d.decals.Decal> contents) void
int
decideGroup
(com.badlogic.gdx.graphics.g3d.decals.Decal decal) void
dispose()
com.badlogic.gdx.graphics.Camera
com.badlogic.gdx.graphics.glutils.ShaderProgram
getGroupShader
(int group) void
setCamera
(com.badlogic.gdx.graphics.Camera camera)
-
Constructor Details
-
CameraGroupStrategy
public CameraGroupStrategy(com.badlogic.gdx.graphics.Camera camera) -
CameraGroupStrategy
public CameraGroupStrategy(com.badlogic.gdx.graphics.Camera camera, Comparator<com.badlogic.gdx.graphics.g3d.decals.Decal> sorter)
-
-
Method Details
-
setCamera
public void setCamera(com.badlogic.gdx.graphics.Camera camera) -
getCamera
public com.badlogic.gdx.graphics.Camera getCamera() -
decideGroup
public int decideGroup(com.badlogic.gdx.graphics.g3d.decals.Decal decal) - Specified by:
decideGroup
in interfacecom.badlogic.gdx.graphics.g3d.decals.GroupStrategy
-
beforeGroup
public void beforeGroup(int group, com.badlogic.gdx.utils.Array<com.badlogic.gdx.graphics.g3d.decals.Decal> contents) - Specified by:
beforeGroup
in interfacecom.badlogic.gdx.graphics.g3d.decals.GroupStrategy
-
afterGroup
public void afterGroup(int group) - Specified by:
afterGroup
in interfacecom.badlogic.gdx.graphics.g3d.decals.GroupStrategy
-
beforeGroups
public void beforeGroups()- Specified by:
beforeGroups
in interfacecom.badlogic.gdx.graphics.g3d.decals.GroupStrategy
-
afterGroups
public void afterGroups()- Specified by:
afterGroups
in interfacecom.badlogic.gdx.graphics.g3d.decals.GroupStrategy
-
getGroupShader
public com.badlogic.gdx.graphics.glutils.ShaderProgram getGroupShader(int group) - Specified by:
getGroupShader
in interfacecom.badlogic.gdx.graphics.g3d.decals.GroupStrategy
-
dispose
public void dispose()- Specified by:
dispose
in interfacecom.badlogic.gdx.utils.Disposable
-