我試圖用OpenGL可視化圖形。我有3D空間中的點的頂點緩衝區,以及指定頂點之間的線的索引緩衝區。我使用glDrawElements來繪製圖形。一切正常。問題是我需要可視化邊權重。我的問題是邊權重是配對屬性,我不知道如何將這些信息放入我的着色器中。我只能想到的解決方案是使用DrawRangeElements逐個繪製每條邊,並在每次調用之間設置邊緣權重。有沒有更好的方法來做到這一點?OpenGL中的成對頂點屬性
回答
不需要使用幾何着色器。只需將它們渲染爲GL_LINES
,根據需要複製位置,併爲線上的每對vert提供相同的「weight」屬性。這與渲染立方體沒有什麼不同,每個立方體都需要自己的法線。
如果(也是唯一的)你絕對必須擁有該回憶,並且不能簡單地壓縮頂點數據(使用標準化短褲,非標準化短褲或其他),這裏有some techniques you can use。被警告:這是一個記憶與性能的折衷。所以除非你有內存壓力,否則就是複製你的頂點數據並把它結束。
使用glDrawArrays? – circlingthesun
是的。使用glDrawElements沒有意義,因爲每行都將使用獨立的頂點索引。 –
有沒有辦法我可以以某種方式避免額外的內存開銷? – circlingthesun
- 1. OpenGL生成頂點屬性
- 2. OpenGL頂點屬性重用
- 3. OpenGL重疊頂點屬性
- 4. OpenGL:多個頂點的單頂點屬性?
- 5. ivec4作爲頂點屬性Opengl ES 2.0
- 6. Opengl頂點數組對象
- 7. OpenGL ES 2.0 - 在頂點着色器中找不到屬性
- 8. 如何在OpenGL中設置頂點屬性?
- 9. 在OpenGL ES 2.0頂點着色器中生成頂點
- 10. OpenGL:是否啓用所有需要的頂點屬性?
- 11. OpenGL:每個基元的頂點屬性數組?
- 12. OpenGL:更多的頂點,性能更差
- 13. OpenGL中的頂點座標
- 14. OpenGL中的頂點限制
- 15. 加亮OpenGL中的頂點
- 16. 如何根據igraph中的頂點「鄰居」屬性創建頂點屬性?
- 17. OpenGL ES 2.0:屬性沒有綁定在頂點着色器
- 18. Cocoa和OpenGL,如何使用數組設置GLSL頂點屬性?
- 19. OpenGL頂點屬性,位置工程,但texcoord不?
- 20. SceneKit中的自定義頂點屬性
- 21. 什麼是頂點屬性?
- 22. OpenGL - 添加頂點
- 23. 將DirectX頂點轉換爲OpenGL頂點
- 24. OpenGL - glDrawElements vs頂點數組對象
- 25. LWJGL/OpenGL頂點緩衝區對象
- 26. 如何將屬性添加到Java中的頂點屬性?
- 27. 如何將值傳遞給OpenGL中的頂點着色器屬性數組?
- 28. 如何在OpenGL中有效地處理大量的每個頂點屬性?
- 29. Star OpenGL的頂點陣列
- 30. VBO的頂點數組-OpenGL
什麼是「成對屬性」? –
給定頂點A和B,我想用某種方式訪問描述它們之間的邊/線的屬性。在這種情況下,重量。我基本上喜歡訪問緩衝區中的每一行繪製屬性(同時仍使用索引緩衝區)。我希望有一些方法可以在幾何着色器中做到這一點。 – circlingthesun
2D紋理中的鄰接矩陣是否工作?每個x/y點處的像素值將是節點x和節點y之間的邊權重。 – genpfault