Posted by
Sven Gothel on
Oct 10, 2014; 1:58am
URL: https://forum.jogamp.org/how-to-use-glDraw-Instanced-tp4033277p4033300.html
On 10/09/2014 04:30 PM, toruwest [via jogamp] wrote:
>
> Next step, I tried to modify it to use ShaderState, GLUniformData, and
> GLArrayDataServer.
> (Please See
>
https://github.com/toruwest/jogl-instanced-many-triangles/tree/master/jogl-instanced-many-triangles/src/demos/triangles/ManyTriangleVAOInstancedExperiment1.java )
+++
int NO_OF_INSTANCE = 30
interleavedVBO = GLArrayDataServer.createGLSLInterleaved(3 + 4, GL.GL_FLOAT, false,
3 * NO_OF_INSTANCE, GL.GL_STATIC_DRAW);
interleavedVBO.addGLSLSubArray("VertexPosition", 3, GL.GL_ARRAY_BUFFER);
interleavedVBO.addGLSLSubArray("VertexColor", 4, GL.GL_ARRAY_BUFFER);
FloatBuffer ib = (FloatBuffer)interleavedVBO.getBuffer();
for(int i = 0; i < 3; i++) {
ib.put(vertices, i*3, 3);
ib.put(colors, i*4, 4);
}
^^^
compsPerElement = 3 + 4;
your initialElementCount = 3 * 30,
but you only push 3 * 2 elements.
to have this working, you would need to push
all 3 * 30 elements .. I guess.
See jogamp.opengl.util.glsl.GLSLTextureRaster
~Sven