我不確定我的問題是否足夠清楚,所以在這裏解釋: 我正在使用opengl處理體素引擎,它工作正常,但我想通過一些優化改進它。我開始使用VBO作爲立方體的頂點,我賺取了一些fps,這非常棒。但現在我想要做同樣的thiong與立方體的顏色和我沒有找到我所喜悅的答案,因爲我有需要的細節:有沒有辦法在Opengl中使用vbo而不是統一的輸入值?
我只用3浮動的顏色,因此,即使如果它的工作原理glVertexAttribPointer()不似乎是去,因爲如果我使用它,我將需要使用108浮法每立方反對3.
我想吸引很多的立方體所以使用glUniform3f ISN的好方法這並不是好事,因爲每立方體發送3個浮標的速度非常慢,需要很多立方體來繪製。
因此,與上下文我的問題是,是否有保存價值的GPU的內存(如VBO),當我畫立方體我只想告訴那些人在那裏值着色器的方式?
感謝您的閱讀,並且可以回答:)
你可以例如按顏色對立方體進行排序,然後使用制服進行顏色/紋理。 – dari
首先,一個顏色應該是3個字節,而不是3個浮點數,這爲您節省了75%。您可以對它們進行排序,但也可以在顏色表中進行查找,這樣可以將數據減少爲不同顏色的數量。例如,如果只指定256種顏色,則只能爲每個頂點分配一個顏色,但只有1個字節,比顏色本身少3倍。您還可以使用實例化渲染來繪製立方體,然後爲每個實例提供一種顏色,或者更好地爲每個實例提供一種顏色的索引。這些都是可能的選擇,問題是:你知道多少OpenGL?顏色是否改變了? –
按顏色排列立方體是一個好主意,我沒有考慮它,所以謝謝:)。 – Rahotop