Why doesn't OpenGL support multiple index buffering?

Why doesn't OpenGL support multiple index buffers for vertex attributes (for now)?

I think this is very useful as you can reuse attributes and you will have much more control over the rendering of your geometry.

Is there a reason why all attribute arrays should have the same index, or can this function be available in the near future?

+4
source share
1 answer

OpenGL (and D3D, as well as Metal, And Mantle and Vulkan) do not support this because the hardware does not support this. The hardware does not support this, because for the vast majority of grid data this will not help. This is primarily useful for grids that are not predominantly smooth (vertices share positions, but not normals, etc.). And most nets are smooth.

In addition, it will often be a compromise between memory and performance. Access to your vertex data is likely to be slower. The graphics processor must be retrieved from two different places in memory, compared with the case of one alternating sample. Although caching helps, the coherence of caching with multiple indexes is much more complicated than for single-index accesses.

. , . , / SSBOs, , . , , .

, , . . , . 64 ( ), 4 .

​​ 4 , GL_INT_2_10_10_10_REV . 4 , . 4 . , ( , ), , .

+5

Source: https://habr.com/ru/post/1677456/


All Articles