I have a problem with rendering 3D models in OpenGL - The problem is that I can't implement rendering by single index buffers
(I mean rendering: vertex by vertex indices, normals by normal indices, texcoord by texcoord indices)
Because of this, at the moment my program does not use index rendering since glDrawElements - implies that for all VertexBufferObject in VertexArrayObject, one ElementBufferObject is used for rendering (in fact, an index buffer is created, but it is always equal to 0,1,2,3,4,...)
Although this method works, it spends a lot of video card memory compared to if it used several index buffers
I have attached a picture with the desired result and a picture of what the problem is
Question - how can I make sure that different indexes are used when drawing the model ?
I tried a lot of things but didn't get the desired result


You have 3 options.
Within the shader, you can then index those arrays directly. (It's been a while since I uses glsl, so this is more a general hint than workable code).
I have used this approach before, but can't what/if the performance impacts are (I imagine option2 is the most performant tbh)