OpenGL 3.2 Sprite Batching?
Posted: 13 Mar 2018, 10:03
Jeg er i gang med at optimere spritebatcheren til mit open source spiludviklings bibliotek, libpp. https://github.com/PolyplexEngine/libpp
Hvad er den mest optimale måde at lave sprite batching på til det?, jeg vil stadig beholde den basiske shader layout som jeg har nuværende.
Kan det være et stort problem at jeg har garbage collection til? (kan bruge @nogc til at slå garbage collector fra for klasser og funktioner)
Vertex Shader:
Fragment Shader:
Nuværende fylder jeg et VBO buffer op hver frame, med Vertex positioner, RGBA farver (som floats) og UV koordinater. Men ville instancing af vertex positioner hjælpe overhoved, vil et IBO buffer også hjælpe? Er ikke sikker, lidt ny til OpenGL.
Hvad er den mest optimale måde at lave sprite batching på til det?, jeg vil stadig beholde den basiske shader layout som jeg har nuværende.
Kan det være et stort problem at jeg har garbage collection til? (kan bruge @nogc til at slå garbage collector fra for klasser og funktioner)
Vertex Shader:
Code: Select all
#version 130
in vec3 ppPosition;
in vec2 ppTexcoord;
in vec4 ppColor;
uniform mat4 ppProjection;
out vec4 exColor;
out vec2 exTexcoord;
void main(void) {
gl_Position = ppProjection * vec4(ppPosition.xy, 0.0, 1.0);
exTexcoord = ppTexcoord;
exColor = ppColor;
}
Code: Select all
#version 130
precision highp float;
uniform sampler2D ppTexture;
in vec4 exColor;
in vec2 exTexcoord;
out vec4 outColor;
void main(void) {
vec4 tex_col = texture2D(ppTexture, exTexcoord);
outColor = exColor * tex_col;
}
Nuværende fylder jeg et VBO buffer op hver frame, med Vertex positioner, RGBA farver (som floats) og UV koordinater. Men ville instancing af vertex positioner hjælpe overhoved, vil et IBO buffer også hjælpe? Er ikke sikker, lidt ny til OpenGL.