相关疑难解决方法(0)

使用多个索引渲染网格

我有一些顶点数据.位置,法线,纹理坐标.我可能从.obj文件或其他格式加载它.也许我正在画一个立方体.但是每个顶点数据都有自己的索引.我可以使用OpenGL/Direct3D渲染这个网格数据吗?

opengl direct3d opengl-es webgl vulkan

54
推荐指数
2
解决办法
1万
查看次数

glVertexAttribDivisor和glVertexBindingDivisor有什么区别?

我一直在寻找将属性与任意组的顶点相关联的方法,起初,实例化似乎是实现此目的的唯一方法,但是后来我迷迷糊糊地问了这个问题这个答案指出:

但是,使用较新版本的OpenGL可能会设置某个顶点属性的缓冲区偏移增加的速率。有效地,这意味着给定顶点数组的数据在属性的缓冲区偏移量增加之前被复制到n个顶点。设置该除数的函数是glVertexBindingDivisor

(强调我的)

在我看来,这似乎是答案在断言,我可以划分顶点数而不是实例数。但是,当我查看glVertexBindingDivisor的文档并将其与进行比较时,glVertexAttribDivisor它们似乎都指发生在实例而非顶点上的划分。例如,在glVertexBindingDivisor的文档中指出:

glVertexBindingDivisor和glVertexArrayBindingDivisor修改在单个draw命令中渲染图元的多个实例时通用顶点属性前进的速率。如果除数为零,则使用绑定到bindingindex的缓冲区的属性每个顶点前进一次。如果除数不为零,则属性在每个要渲染的顶点集的除数实例中前进一次。如果相应的除数值不为零,则将该属性称为实例

(强调我的)

那么这两个功能之间的实际区别是什么?

opengl vertex-buffer vertex opengl-4 vertex-attributes

5
推荐指数
2
解决办法
1183
查看次数