2013-03-26 59 views
1

我想使用GLSL幾何着色器查看線條並確定放置紋理註釋的位置,同時考慮到當前的ModelView。看起來我僅限於每個調用獲得4個頂點(使用GL_LINE_STRIP_ADJACENCY),但我需要的是整個線條評估。幾何着色器附加基元

我可以使用一些其他的原始類型(如多點,如果有GL中的等價物),但重要的一點是我想考慮所有的幾何,而不僅僅是一個部分。

是否有一種可以爲幾何着色器提供額外頂點的come類型的擴展?或者,除了使用幾何着色器之外,還有更好的方法嗎?

回答

3

沒有機制可以讓您訪問整個呈現的基本流。基元可以是任意大的,因此它們可以輕易地超過GPU所具有的任何合理的內部緩衝區大小。因此實施這將是不切實際的。

可能綁定你的數組作爲緩衝區紋理,並從那裏讀取數據。但是這很慢,因爲每個GS調用都需要處理數百個頂點。這並不完全利用GPU並行性。

如果你只是想把一個文本標籤附近的東西,你應該指定一個頂點或東西作爲註釋應該去的地方。

+0

感謝您的建議。兩個後續步驟:1.我想我可以像您所建議的那樣將頂點數據放入緩衝區紋理中,然後將簡化的幾何圖形發送到管線,例如第一個頂點和最後一個頂點之間的單個線段;你看到任何理由,這不會工作? 2.如果我要爲文本指定一個頂點,我將如何創建文本標籤並將其提交給GL管道?由於這將會發生在許多不同的線條上,所以似乎必須在頂點着色器中完成。 – Chris 2013-03-27 02:41:04