我试图绘制一个glTF模型,其中所有的几何都是索引的,例如:
"meshes": [
{
"name": "Plane.010",
"primitives": [
{
"attributes": {
"POSITION": 0,
"NORMAL": 1,
"COLOR_0": 2
},
"indices": 3, <-- here
"material": 0
}
]
},
但是只定义了一个缓冲区,没有缓冲区视图指定目标:
"buffers": [
{
"uri": "data.bin",
"byteLength": 4518576
}
]
因此,我使用对glBufferData
的单个调用将二进制数据发送到GPU,并绑定了VertexArray。现在,我需要以某种方式使用glDrawElements
绘制原语。是否有一种方法可以创建ELEMENT_ARRAY_BUFFER
并将其指向已经加载的缓冲区的一部分?
发布于 2020-05-22 15:35:23
是否有一种方法来创建一个
ELEMENT_ARRAY_BUFFER
并将其指向已经加载的缓冲区的一部分?
没有必要这样做,因为根本没有输入OpenGL缓冲区对象。您可以同时将相同的缓冲区绑定到不同的绑定目标,而不会出现任何问题,因此您可以简单地绑定与ARRAY_BUFFER
和ELEMENT_ARRAY_BUFFER
相同的缓冲区。您只需要在glDrawElements
调用中使用特定的字节偏移量。
https://stackoverflow.com/questions/61958534
复制相似问题