Opengl es 是否将索引数据附着到VAO(顶点数组对象)?
我知道使用VAOs可以提供所有属性数据,例如顶点法线、顶点位置、顶点颜色、纹理坐标等。但是在使用Opengl es 是否将索引数据附着到VAO(顶点数组对象)?,opengl-es,webgl2,Opengl Es,Webgl2,我知道使用VAOs可以提供所有属性数据,例如顶点法线、顶点位置、顶点颜色、纹理坐标等。但是在使用抽屉元素而不是绘图数组绘制的情况下,索引数据如何呢 到目前为止,我创建了一个VAO并提供了上面的数据,但不确定如何将索引缓冲区数据附加到VAO(如果建议或可能)顶点数组对象中未存储任何缓冲区的数据。顶点数组对象只是收集如何“使用”不同缓冲区的数据的信息。 它知道数据格式、类型、跨步偏移和缓冲区的名称,但它不“镜像”存储在缓冲区对象中的数据 命名元素缓冲区对象的名称是顶点数组对象状态向量的状态 这意味着
抽屉元素而不是绘图数组绘制的情况下,索引数据如何呢
到目前为止,我创建了一个VAO并提供了上面的数据,但不确定如何将索引缓冲区数据附加到VAO(如果建议或可能)顶点数组对象中未存储任何缓冲区的数据。顶点数组对象只是收集如何“使用”不同缓冲区的数据的信息。
它知道数据格式、类型、跨步偏移和缓冲区的名称,但它不“镜像”存储在缓冲区对象中的数据
命名元素缓冲区对象的名称是顶点数组对象状态向量的状态
这意味着顶点数组对象中没有存储任何数据。索引存储在元素缓冲区中,但索引缓冲区的名称(整数对象编号)在顶点数组对象中引用
绑定顶点数组对象后(glBindVertexArray
)必须绑定GL\u元素\u数组\u缓冲区。GL\u元素\u数组\u缓冲区
对象存储在顶点数组对象状态向量中。
如果顶点数组对象已解除绑定并再次绑定,则GL\u元素\u数组\u缓冲区也将已知并再次绑定。但是,如果元素数组缓冲区在绑定顶点数组对象时显式解除绑定,它将从状态向量中移除
见:
顶点数组对象是通过绑定genvertexarray
用命令
void BindVertexArray( uint array );
array是顶点数组对象名称。生成的顶点数组对象是一个新的状态向量,包含所有状态,并具有表6.2中列出的相同初始值。
BindVertexArray
也可用于绑定现有顶点数组对象。
如果绑定成功,则不会对绑定顶点数组对象的状态进行任何更改,并且之前的任何绑定都会被破坏
表6.2,顶点数组对象状态
顶点属性数组启用
,顶点属性数组大小
,顶点属性数组步长
,顶点属性数组类型
,顶点属性数组规格化
,顶点属性数组整数
,顶点属性数组除数
,顶点属性数组指针
,元素数组缓冲区绑定
,顶点属性数组缓冲区绑定
我很好奇索引缓冲区对象数据或制服是否会以某种方式存储在VAOs中?
制服存储到属于程序对象的默认制服块
制服存储到属于程序对象的默认制服块,与顶点数组对象没有关系。是的,我了解这些属性的绑定和解除绑定。我很好奇索引缓冲区对象数据或制服是否会以某种方式存储在VAOs中?我这样问是因为VAOs似乎封装了特定实体的功能。既然IBO(索引缓冲区对象)也封装了单个实体的索引缓冲区对象,为什么不将其以某种方式包含在VAO中呢?可能吗?如果是,你怎么做?谢谢大家!@我扩展了答案,所以听起来VAO只是指令而不是数据。如果是这种情况,那么索引数据就不会出现在那里,因为在提取数据时没有“指令”。这只是一个带抽屉元素的绑定和绘制调用。是否正确?@失谐是,顶点数组对象由表组成。在这些表中,包含对缓冲区对象的引用以及对哪个属性使用哪个缓冲区的信息。索引缓冲区是单个引用。VAO中没有任何索引或属性值。