6
我知道glVertexAttribDivisor
可以用來修改泛型頂點屬性在實例化渲染過程中的速度,但是我想知道是否有任何方法可以在特定速率下提升屬性而無需實例化。沒有實例化的屬性除數?
這裏是我的意思的例子:
比方說,你要定義頂點位置,使一系列行的列表,並與各行要一個ID相關聯。因此,您創建了兩個vbos,每個vbos容納與其中一個屬性(所有頂點位置或所有頂點ID)相關的數據。傳統上,這意味着每個vbo必須是行數X 2(每個點包含兩行)的大小(以元素爲單位)。這當然意味着我爲一行中的每個點複製相同的ID值。
我想要做的事情是指定ID爲頂點位置緩衝區前進的每2個元素前進1個元素。我知道這需要我的頂點位置緩衝區被首先聲明(這樣我可以引用它來告訴OpenGL多久推進ID緩衝區),但它似乎仍然是可能的。不過,我在OpenGL規範中找不到任何允許這種操作的功能。
在這種情況下是否可以使用glMultiDrawArraysIndirect()來一次繪製一條線段,在ID VBO上使用屬性除數1並使用間接命令結構的baseIndex部分來增加索引在ID VBO中繪製?這可能會在GPU內存中填充更多的數據,但從理論上來說可能嗎? – Samik 2016-11-09 15:44:43
這將適用於該特定情況,但不適用於* general *。 – 2016-11-09 16:08:16