我已經finnaly達到了點,我可以添加一些顏色到我的頂點。但現在我想提高我的FPS率。這是目前的情況。我有大量的頂點(〜200000),並且每個頂點都可以在150個類中的一箇中。每班不同顏色。我目前正在繪製我的頂點,如:glColorPointer試圖改善fps
glEnableClientState(GL_VERTEX_ARRAY)
glBindBufferARB(GL_ARRAY_BUFFER_ARB, self.bufferVertices)
glVertexPointer(3, GL_FLOAT, 0, None)
glEnableClientState(GL_NORMAL_ARRAY);
glBindBufferARB(GL_ARRAY_BUFFER_ARB, self.bufferNormals)
glNormalPointer(GL_FLOAT, 0, None)
glEnableClientState(GL_COLOR_ARRAY)
glBindBufferARB(GL_ARRAY_BUFFER_ARB, self.bufferColors)
glColorPointer(3, GL_FLOAT, 0, None)
glDrawArrays(GL_POINTS, 0, len(self.vertices)/3)
一切工作正常,FPS是~60。我的所有緩衝區都只在init時生成。但是現在代表每個類別的顏色將會迅速變化,每毫秒一次。隨着顏色也將改變,所以我將不得不重新創建我的顏色緩衝區爲每個繪製,併爲200000頂點我有一種感覺FPS將接近0.我試圖實現的修復是保持一個固定的顏色緩衝區,但不是實際的顏色,而是保留一個指向它表示的類的指針。這樣,只有這200個顏色的類會改變。問題是我不知道這是如何在OpenGL中實現的。這是可行的嗎?如何做到這一點的任何指針?
感謝您輸入的人。將嘗試您的建議。 – Bogdan 2011-05-31 08:18:32