2013-07-12 54 views
1

我有這個頂點緩衝區對象包含用於繪製3個不同網格的頂點(位置,法線和UV)和索引數據。現在我想對每個網格應用不同的紋理。問題是我只知道如何在Vertex Buffer Object上渲染一個紋理。我如何去改變每個人的紋理,並且不管困難如何有效地進行。是否有某種紋理緩衝區對象可供我加載紋理,然後與頂點緩衝區對象協調。在單個vbo中紋理多個網格

+0

一個想法是從3周不同的人建立一個大的質感和使用紋理座標,選擇正確的一個。精靈表是這種技術的一個例子。 – tp1

+0

聽起來像我正在尋找的解決方案。唯一的問題是我沒有足夠的技巧來實現它。我將如何着手以面向對象的方式實現它?例如'texture_buffer.Add(tex1);'tex1是原始圖像數據。 –

回答

1

使用不同的開始/計數您的通話glDrawArrays(),紋理結合在間:

glBindTexture(..., texture1); 
glDrawArrays(..., obj1_start, obj1_vert_count); 
glBindTexture(..., texture2); 
glDrawArrays(..., obj2_start, obj2_vert_count); 
glBindTexture(..., texture3); 
glDrawArrays(..., obj3_start, obj3_vert_count); 
+0

使用glDrawElements來渲染我的數據 –

+0

同樣的邏輯適用。綁定紋理並將指針傳遞給適當的索引。 – genpfault