我正在使用VBO創建一個應用程序來渲染一些具有困難顏色結構的對象。我注意到,VBO定義元素的顏色等於元素緩衝區中的最後一個頂點索引。例如,當我使用點陣列這樣如何將元素映射到OpenGL VBO中的顏色?
double pointBuf[]={ -0.1d, 0.1d, 0,
0.1d, 0.1d, 0,
0.1d, -0.1d, 0};
顏色陣列:
double colorBuf[] = { 0d, 1d, 0d,
0d, 1d, 0d,
1d, 0d, 0d};
和元件陣列:
int elementBuf[] = {0, 1, 2};
來繪製三角形時,將紅色(作爲elementBuf中的最後一個元素是2,在colorBuf中它與紅色匹配)。
事實上,它可能會導致額外的內存使用情況,以正確繪製所有內容。
是否有任何其他可能的方式來鏈接顏色與元素?
你真的需要雙色類型的顏色嗎?如果內存不足,則使用GL_UNSIGNED_BYTE作爲顏色緩衝區,所以R,G,B,A總共需要4個字節,而不是24個字節,因爲您的實現會執行此操作(如果我正確理解了您的代碼)。你也不需要雙打你的頂點位置。除了顏色以外,只需使用浮標。 – Rookie
這只是一個例子,我並不需要雙倍的顏色,我知道。 但是因爲我在很小的區域內運行着大量的頂點,所以我需要這樣的精度,所以我必須使用頂點的雙精度。 無論如何謝謝 – user898722
user898722:我編輯了你的問題,使其更容易理解。請檢查我沒有因此引入一些錯誤。 (隨意恢復我的編輯。) –