Suppose I have some vertex position data, where several vertices have the exact same (x,y) coordinates, but in general have different z coordinates.
It would then be natural to decompose the vertex storage by indexing into two vertex buffers: one for the (x,y) coordinates, and one for the z coordinate.
For example, if I have the vertices [(0,0,1), (0,0,2), (0,0,3), (1,1,0), (1,1,3), (1,1,7)], I could decompose that as x-y-coordinates: [(0,0), (1,1)], z-coordinates: [1,2,3,0,3,7] with the index buffer: [(0,0), (0,1), (0,2), (1,3), (1,4), (1,5)].
So the indices would be tuples of indices. Alternatively one could of course specify it with two index buffers.
My questions are:
(1) Does Direct3D 12 support this? (How, what's the API for it?)
(2) Does any modern rendering API let me decompose my data in this way?
(3) Is it a bad idea?
It would then be natural to decompose the vertex storage by indexing into two vertex buffers: one for the (x,y) coordinates, and one for the z coordinate.
For example, if I have the vertices [(0,0,1), (0,0,2), (0,0,3), (1,1,0), (1,1,3), (1,1,7)], I could decompose that as x-y-coordinates: [(0,0), (1,1)], z-coordinates: [1,2,3,0,3,7] with the index buffer: [(0,0), (0,1), (0,2), (1,3), (1,4), (1,5)].
So the indices would be tuples of indices. Alternatively one could of course specify it with two index buffers.
My questions are:
(1) Does Direct3D 12 support this? (How, what's the API for it?)
(2) Does any modern rendering API let me decompose my data in this way?
(3) Is it a bad idea?