2012-10-15 60 views
0

我試圖用OpenGL可視化圖形。我有3D空間中的點的頂點緩衝區,以及指定頂點之間的線的索引緩衝區。我使用glDrawElements來繪製圖形。一切正常。問題是我需要可視化邊權重。我的問題是邊權重是配對屬性,我不知道如何將這些信息放入我的着色器中。我只能想到的解決方案是使用DrawRangeElements逐個繪製每條邊,並在每次調用之間設置邊緣權重。有沒有更好的方法來做到這一點?OpenGL中的成對頂點屬性

+0

什麼是「成對屬性」? –

+0

給定頂點A和B,我想用某種方式訪問​​描述它們之間的邊/線的屬性。在這種情況下,重量。我基本上喜歡訪問緩衝區中的每一行繪製屬性(同時仍使用索引緩衝區)。我希望有一些方法可以在幾何着色器中做到這一點。 – circlingthesun

+0

2D紋理中的鄰接矩陣是否工作?每個x/y點處的像素值將是節點x和節點y之間的邊權重。 – genpfault

回答

1

不需要使用幾何着色器。只需將它們渲染爲GL_LINES,根據需要複製位置,併爲線上的每對vert提供相同的「weight」屬性。這與渲染立方體沒有什麼不同,每個立方體都需要自己的法線。

如果(也是唯一的)你絕對必須擁有該回憶,並且不能簡單地壓縮頂點數據(使用標準化短褲,非標準化短褲或其他),這裏有some techniques you can use。被警告:這是一個記憶與性能的折衷。所以除非你有內存壓力,否則就是複製你的頂點數據並把它結束。

+0

使用glDrawArrays? – circlingthesun

+0

是的。使用glDrawElements沒有意義,因爲每行都將使用獨立的頂點索引。 –

+0

有沒有辦法我可以以某種方式避免額外的內存開銷? – circlingthesun