Class BillboardSetRenderer
java.lang.Object
gaiasky.render.system.AbstractRenderSystem
gaiasky.render.system.ImmediateModeRenderSystem
gaiasky.render.system.InstancedRenderSystem
gaiasky.scene.system.render.draw.BillboardSetRenderer
- All Implemented Interfaces:
com.badlogic.gdx.utils.Disposable, IObserver, IRenderSystem, Comparable<IRenderSystem>
-
Nested Class Summary
Nested classes/interfaces inherited from class InstancedRenderSystem
InstancedRenderSystem.InstancedModelModifier and TypeClassDescriptionstatic classHolds temporary instanced model data.Nested classes/interfaces inherited from class ImmediateModeRenderSystem
ImmediateModeRenderSystem.MeshData, ImmediateModeRenderSystem.OwnUsageModifier and TypeClassDescriptionstatic classprotected static classNested classes/interfaces inherited from class AbstractRenderSystem
AbstractRenderSystem.RenderSystemRunnable -
Field Summary
FieldsFields inherited from class InstancedRenderSystem
aux, models, refSysTransformF, utilsModifier and TypeFieldDescriptionprotected final com.badlogic.gdx.math.Matrix4Auxiliary matrix.protected com.badlogic.gdx.utils.Array<InstancedRenderSystem.InstancedModel> Instanced model list, one per particle group.protected final com.badlogic.gdx.math.Matrix4Auxiliary reference system transform matrix.protected final ParticleUtilsParticle utils instance.Fields inherited from class ImmediateModeRenderSystem
auxMat, curr, inGpu, meshes, meshIdx, tempIndices, tempVertsModifier and TypeFieldDescriptionprotected final com.badlogic.gdx.math.Matrix4protected ImmediateModeRenderSystem.MeshDataprotected Set<IRenderable> protected com.badlogic.gdx.utils.Array<ImmediateModeRenderSystem.MeshData> protected intprotected int[]protected float[]Fields inherited from class AbstractRenderSystem
alphas, aux3f, comp, postRunners, preRunners, programs, rc, sceneRendererModifier and TypeFieldDescriptionprotected final float[]protected final com.badlogic.gdx.math.Vector3protected Comparator<IRenderable> Comparator of renderables, in case of needprotected com.badlogic.gdx.utils.Array<AbstractRenderSystem.RenderSystemRunnable> protected com.badlogic.gdx.utils.Array<AbstractRenderSystem.RenderSystemRunnable> protected final ExtShaderProgram[]protected final SceneRenderer -
Constructor Summary
ConstructorsConstructorDescriptionBillboardSetRenderer(SceneRenderer sceneRenderer, RenderGroup rg, float[] alphas, ExtShaderProgram[] shaders) Creates a billboard set renderer. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddAttributesDivisor1(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.protected voidInitializes metadata or essential uniforms in the shader program.voidEvent notification call.protected voidComputes the offset for each vertex attribute.protected voidComputes the offset for each vertex attribute in the instanced array.voidrenderStud(List<IRenderable> renderables, ICamera camera, double t) Methods inherited from class InstancedRenderSystem
addAttributesDivisor0, addMeshData, addMeshData, buildAttributesDivisor0, buildAttributesDivisor1, computeTextureIndex, generateChannelNoise, getModel, getModel, getModelQuad, getProfileDecay, initVertices, isWireframe, postRenderObjects, postShadingType, preRenderObjects, preShadingType, renderObject, setModel, setRefSysTransformAndDatasetPosUniforms, setShadingTypeUniformsModifier and TypeMethodDescriptionprotected voidaddAttributesDivisor0(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.protected intaddMeshData(InstancedRenderSystem.InstancedModel model, int maxVerts, int maxInstances, int maxIndices, String modelType, int primitive) Adds a new mesh data to the meshes list and increases the mesh data index.protected intaddMeshData(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.protected com.badlogic.gdx.graphics.VertexAttribute[]buildAttributesDivisor0(int posArraySize, boolean useNormals, boolean useTexCoords) Builds the vertex attributes with divisor=0 array and returns it.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.static intcomputeTextureIndex(IParticleRecord pr, Random rand, com.badlogic.gdx.graphics.TextureArray textureArray, String textureAttribute) Computes the texture index for a given particle, for particle and orbital elements sets, given their texture array and texture attribute.protected voidgenerateChannelNoise(long seed, double noise, float[] result) Generates color noise per channel, given a seed and an (n).protected InstancedRenderSystem.InstancedModelgetModel(ParticleSet set, int offset) protected InstancedRenderSystem.InstancedModelgetModel(IntModel modelFile, String modelType, Map<String, Object> modelParams, int primitive, int offset) protected InstancedRenderSystem.InstancedModelgetModelQuad(int primitive, int offset) protected floatgetProfileDecay(int shadingType, float profileDecay) Returns the profile decay for the given shading type.protected voidbooleanisWireframe(int primitive) protected voidpostRenderObjects(ExtShaderProgram shaderProgram, ICamera camera) protected voidRestore regular blending and depth writes.protected voidpreRenderObjects(ExtShaderProgram shaderProgram, ICamera camera) protected intpreShadingType(Highlight hl, ParticleSet.ShadingType shadingType) Apply blending mode and depth mask depending on the highlight component and shading type.protected voidrenderObject(ExtShaderProgram shaderProgram, ICamera camera, IRenderable renderable) protected voidsetModel(int offset, InstancedRenderSystem.InstancedModel model) protected voidsetRefSysTransformAndDatasetPosUniforms(ExtShaderProgram shaderProgram, GraphNode graph, ParticleSet set) protected voidsetShadingTypeUniforms(ExtShaderProgram shaderProgram, ICamera camera, int shadingType, float sphericalPower, float ambient, GraphNode graph) Sets uniforms pertaining to the shading type.Methods inherited from class ImmediateModeRenderSystem
addAffineTransformUniforms, clearMeshData, clearMeshes, color, color, color, color, createMeshData, dispose, ensureTempIndicesSize, ensureTempVertsSize, getCount, getCounts, getOffset, getOffsets, inGpu, setCount, setInGpu, setOffset, vertexModifier and TypeMethodDescriptionprotected voidaddAffineTransformUniforms(ExtShaderProgram program, AffineTransformations affine) voidclearMeshData(int i) Clears the mesh data at the index ivoidvoidcolor(double r, double g, double b, double a) voidcolor(float colorBits) voidcolor(float r, float g, float b, float a) voidcolor(com.badlogic.gdx.graphics.Color color) protected intCreates a new mesh data object and adds it to the first available index in the meshes arrayvoiddispose()protected voidensureTempIndicesSize(int size) This function makes sure that the tempIndices array has at least the given size.protected voidensureTempVertsSize(int size) This function makes sure that the tempVerts array has at least the given size.protected intgetCount(IRenderable renderable) protected com.badlogic.gdx.utils.IntArraygetCounts(IRenderable renderable) protected intgetOffset(IRenderable renderable) protected com.badlogic.gdx.utils.IntArraygetOffsets(IRenderable renderable) protected booleaninGpu(IRenderable renderable) protected voidsetCount(IRenderable renderable, int count) protected voidsetInGpu(IRenderable renderable, boolean state) protected voidsetOffset(IRenderable renderable, int offset) voidvertex(float x, float y, float z) Methods inherited from class AbstractRenderSystem
addCameraUpCubemapMode, addDepthBufferUniforms, addEffectsUniforms, addGravWaveUniforms, addMotionTrailsUniforms, addPostRunnables, addPreRunnables, addRelativisticUniforms, addVRScale, compareTo, getAlpha, getAlpha, getAlpha, getRenderGroup, getShaderProgram, getShaderProgram, render, resize, run, updateBatchSizeModifier and TypeMethodDescriptionprotected voidaddCameraUpCubemapMode(ExtShaderProgram shaderProgram, ICamera camera) Adds the camera up vector (only in non-cubemap mode) to compute the billboard rotation.voidaddDepthBufferUniforms(ExtShaderProgram shaderProgram, ICamera camera) Uniforms needed to compute the logarithmic depth buffer.protected voidaddEffectsUniforms(ExtShaderProgram shaderProgram, ICamera camera) protected voidaddGravWaveUniforms(ExtShaderProgram shaderProgram) protected voidaddMotionTrailsUniforms(ExtShaderProgram shaderProgram, ICamera camera) Uniforms related to the motion trails effect for particle and star groups.voidvoidprotected voidaddRelativisticUniforms(ExtShaderProgram shaderProgram, ICamera camera) protected voidaddVRScale(ExtShaderProgram shaderProgram) intfloatgetAlpha(com.badlogic.ashley.core.Entity entity) floatgetAlpha(IRenderable renderable) Computes the alpha opacity value of a given renderable using its component typesfloatprotected ExtShaderProgramprotected ExtShaderProgramgetShaderProgram(ExtShaderProgram[] programs) voidrender(List<IRenderable> renderables, ICamera camera, double t, RenderingContext rc) Renders the given list of renderable objects.voidresize(int w, int h) Resize the current render target with the given width and height.protected voidrun(com.badlogic.gdx.utils.Array<AbstractRenderSystem.RenderSystemRunnable> runnables, List<IRenderable> renderables, ICamera camera) voidupdateBatchSize(int w, int h) Updates the size of object batches, if any.
-
Field Details
-
logger
-
-
Constructor Details
-
BillboardSetRenderer
public BillboardSetRenderer(SceneRenderer sceneRenderer, RenderGroup rg, float[] alphas, ExtShaderProgram[] shaders) Creates a billboard set renderer.- Parameters:
sceneRenderer- The scene renderer.rg- The render group.alphas- Alphas array.shaders- The shaders.
-
-
Method Details
-
addAttributesDivisor1
protected void addAttributesDivisor1(com.badlogic.gdx.utils.Array<com.badlogic.gdx.graphics.VertexAttribute> attributes, int primitive) Description copied from class:InstancedRenderSystemAdds the required vertex attributes for this renderer to the given list. These attributes are added for every instance (divisor=1)- Specified by:
addAttributesDivisor1in classInstancedRenderSystem- Parameters:
attributes- The list of attributes with divisor=1primitive- The rendering primitive.
-
offsets0
protected void offsets0(ImmediateModeRenderSystem.MeshData curr, InstancedRenderSystem.InstancedModel model) Description copied from class:InstancedRenderSystemComputes the offset for each vertex attribute. The offsets will be used later in the render stage.- Specified by:
offsets0in classInstancedRenderSystem- Parameters:
curr- The current mesh data.model- The instanced model.
-
offsets1
protected void offsets1(ImmediateModeRenderSystem.MeshData curr, InstancedRenderSystem.InstancedModel model) Description copied from class:InstancedRenderSystemComputes the offset for each vertex attribute in the instanced array. The offsets will be used later in the render stage.- Specified by:
offsets1in classInstancedRenderSystem- Parameters:
curr- The current mesh data.model- The instanced model.
-
initShaderProgram
protected void initShaderProgram()Description copied from class:AbstractRenderSystemInitializes metadata or essential uniforms in the shader program.- Overrides:
initShaderProgramin classAbstractRenderSystem
-
renderStud
- Overrides:
renderStudin classInstancedRenderSystem
-
notify
-