2010-04-08 69 views
1

我有一大堆線,我使用glMultiDrawArrays(GL_LINE_STRIP,...)從頂點緩衝區對象渲染;帶有附加數據的OpenGL索引緩衝區對象

這工作得很好。現在我有很多頂點對,我也必須可視化。每對由兩條不同線上的兩個頂點組成,頂點之間的距離很小。但是,我希望能夠在距離小於某個值的所有頂點對之間繪製一條線。

我吃點什麼是一樣的東西用以下結構的緩衝對象:

i1, j1, r1, 
i2, j2, r2, 
i3, j3, r3, 
... 

在我的和j的是指向頂點和的r指數的頂點之間的距離。因此每個頂點對都被存儲爲(i,j,r)元組。然後我喜歡有一個(頂點)着色器,該着色器僅將具有SOME_VALUE的頂點對繪製爲一條線。

所以我的問題是,達到這個目標的最好方法是什麼?

回答

0

我想經典的是將額外的數據存儲在紋理中,並在着色器中進行查找。但是,如果它確實是固定的,則可以將距離本身存儲爲指定給頂點的紋理座標,並直接使用它。我認爲無論你如何解決它,你都必須將它存儲在每個頂點(着色器通常不喜歡配對)。

這是假設您不重複使用多行頂點。

編輯:
好了,所以,既然你打算重用頂點,我想你需要做的是聰明瞭。如果它是最多兩個(或一個固定數量)行(如線條)的一部分,則可以進行兩個調用,第一個調用使用第一個紋理座標,依此類推。我會看看如果我能想到另一種方式。

+0

存儲每個頂點的問題是每個頂點都可以是多個對的一部分,因此我必須爲每個頂點存儲可變數量的數據。 – muksie 2010-04-08 09:49:02

相關問題