Vertex Buffers and render/texture Buffers

Why are vertex buffers and render buffers separate entities? It seems short-sighted to separate them. It’s taken a long time for Render-texture to make it into the spec in a natural way, I can’t imagine it will be long before it’s common for hardware to be able to render to a buffer, then use it as a vertex buffer. It would be best if that didn’t need to be hacked in later. Lead the hardware.

Additionally, why not support interleaved vbuffers? They are at least possible with 1.x vertex arrays, I don’t see how to do them at all with the new vertex buffer proposal.

regards,

j

[This message has been edited by schelter (edited 02-03-2002).]

What do you understand under a vertex buffer?

Why would you ever want to “render” into a vertex array? I don’t understand how this could ever be useful. Rendering produces a 2D array of data. Vertex arrays are 1D. Not to mention, what would you do with that ability?

As for interleved arrays, you can still have them. You just have to manually specify strides, offsets, and so forth.

Originally posted by heXAriTH:
What do you understand under a vertex buffer?

Everything that falls under the vertex buffer object OBJECT_TYPE in the proposal. Vertex attribute buffers and index buffers.

j

Append:
of course as has been pointed out to me elsewhere, I’ve been replacing array with buffer somewhere between my eyes and my brain. I was referring to that the docs clearly call Vertex Array Objects. sorry for the confusion.

[This message has been edited by schelter (edited 02-04-2002).]

Originally posted by Korval:
As for interleved arrays, you can still have them. You just have to manually specify strides, offsets, and so forth.

You can still do that with vertex arrays, but with vertex buffer objects? I don’t see where stride and offset get set.
From the objects whitepaper…
<<To create a vertex array object, call:
handle CreateVertexArrayObject(enum vertexArrayType,
int size,
enum type,
sizei elements)
The parameter vertexArrayType specifies the type of vertex array object to be created. It can be
one of EDGE_FLAG_ARRAY, TEXTURE_COORD_ARRAY, COLOR_ARRAY,
INDEX_ARRAY, NORMAL_ARRAY, VERTEX_ARRAY,
USER_ATTRIBUTE_ARRAY0…n, VERTEX_INDEX_ARRAY, COLOR_INDEX_ARRAY,
NORMAL_INDEX_ARRAY, TEXTURE_COORD_INDEX_ARRAY,
USER_ATTRIBUTE_INDEX_ARRAY0…n or ALL_INDEX_ARRAY. size specifies the
number of components per vertex array element and type specifies the fundamental data type of
each component. elements is the number of elements that will be loaded into the array.>>

No stride, no offset, and I don’t see any way to allocate an object that holds more than one type of element. Of course you can still use Vertex Arrays, but why would you?

Am I misunderstanding something here?

[This message has been edited by schelter (edited 02-03-2002).]