要在OpenGL中繪製,您需要指定一個頂點數組,然後使用索引將頂點數組連接在一起,形成基本的語法順序。你可以用glDrawElements來做到這一點。要指定頂點,您可以使用glVertexPointer,您可以在其中指定一個參數「stride」 - 數組中連續元素之間的間隔(即,如果將頂點存儲在包含其他數據的結構中,則可以跨越其他數據)。在OpenGL中,你如何指定步伐?
這很好,但現在我使用的是Assimp,它指定了它在一個face結構中的索引。
struct aiFace {
unsigned int* indices;
unsigned int numIndices;
}
推測這是爲了支持具有不同大小的面(具有三角形和四邊形的網格)的網格。 Assimp非常好,可以選擇對所有網格進行三角剖分,所以我可以保證所有的面都是相同的原始圖。
因此,我真正想要的是能夠邁出我的指標,因爲這樣的:
gl/*...uh...*/ElementPointer(
3,
GL_UNSIGNED_INT,
sizeof(unsigned int) /* skip past the num_indices field*/,
&faces[0]);
但我無法弄清楚如何做到這一點。 glDrawElements假定索引是一個連續的數組。有沒有辦法在OpenGL中做到這一點?