glDrawArraysInstancedBaseInstance

glDrawArraysInstancedBaseInstance: man4/glDrawArraysInstancedBaseInstance.xml

glDrawArraysInstancedBaseInstance behaves identically to glDrawArrays except that primcount instances of the range of elements are executed and the value of the internal counter instanceID advances for each iteration. instanceID is an internal 32-bit integer counter that may be read by a vertex shader as gl_InstanceID. glDrawArraysInstancedBaseInstance has the same effect as:

if ( mode or count is invalid )
    generate appropriate error
else {
    for (int i = 0; i < primcount ; i++) {
        instanceID = i;
        glDrawArrays(mode, first, count);
    }
    instanceID = 0;
}

Specific vertex attributes may be classified as through the use of glVertexAttribDivisor. Instanced vertex attributes supply per-instance vertex data to the vertex shader. The index of the vertex fetched from the enabled instanced vertex attribute arrays is calculated as: gl _ InstanceID divisor + baseInstance. Note that baseinstance does not affect the shader-visible value of gl_InstanceID.

@OpenGL_Version(OGLIntroducedIn.V4P2)
@OpenGL_Extension("GL_ARB_base_instance")
fn_glDrawArraysInstancedBaseInstance glDrawArraysInstancedBaseInstance;

See Also

glDrawArrays, glDrawElementsInstanced

Meta