我工作的一個可視化引擎(簡單CAD風格)(Python和pyopengl綁定)將顯示,同時動畫高達10-20機構。 我正在使用VBO數據對象來存儲頂點數據並顯示每個正文。我想知道什麼是最好的(最實用,最簡單和更便宜的GPU)方法來爲VBO分配顏色。每個物體都具有統一的顏色,外觀可以設置爲透明 - 可選。正如我知道這可以用下面的方法來完成(I測試方法1和2):增添色彩維也納組織 - 最佳實踐
- glColorf(R,G,B,A)
- glMaterialfv(GL_FRONT_AND_BACK,[R,G,B ,A])
- 指定顏色給每個頂點並創建交錯VBO
是否有任何其他的方法呢?哪一個最適合這項工作? 我也想問一下每個VBO有多少個頂點,以及有多少頂點可以說;小型,中型和大型的維也納國際組織只是爲了讓我更多地瞭解顯示對象的大小。
前兩個已被取消,在OpenGL 3.2+內核不可用。第三種方法是最好的中間方法,但理想情況下,你真正要做的就是使用頂點着色器。你可以做一些事情,比如爲你的VBO中的每一組頂點分配一個索引來標識它們所屬的對象,然後在頂點着色器中通過在統一數組或紋理中查找某些東西來爲每個對象分配顏色。您應該真正考慮每批次繪製的對象數量,而不是每個對象的頂點數量;最後,您通常可以在一次調用中繪製多個對象。 –
@ AndonM.Coleman,如果我創建一個具有5000個頂點(例如,在我的情況下)的VBO,並且必須爲每個頂點添加一個顏色矢量(3或4個成分),並將VBO大小增加2倍或1,25。所有頂點的顏色矢量是否相等,這是否經濟?或者有另一種方法爲VBO添加顏色? 如果我理解正確,這種方法是好的,如果我有FEM結果(每個節點/頂點)顯示它作爲顏色,對不對? – avstenit