Login  Register

Re: how to use glDraw*Instanced()

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


signature.asc (828 bytes) Download Attachment