我有一個灰度紋理(8000 * 8000),每個像素的值是一個ID(實際上,這個ID是片段所屬的三角形的ID,我想用這個方法來計算有多少個三角形和哪個三角形在我的場景中可見)。如何使用GLSL計算指定彩色像素的數量?
現在我需要統計有多少個唯一的ID以及它們是什麼。我想用GLSL實現這一點,並儘量減少GPU RAM和RAM之間的數據傳輸。
我想出的最初想法是使用着色器存儲緩衝區,將它綁定到GLSL中的數組,其大小爲totalTriangleNum,然後在着色器中迭代ID紋理,將數組元素增加1等於紋理中的ID。
之後,讀取緩衝區到OpenGL應用程序,並得到我想要的。這是否是一種有效的方式?還是有一些更好的解決方案,比如計算着色器(以及我不熟悉它)或其他東西。
你所描述一樣計算着色器的聲音給我。我不知道你想用什麼其他類型的着色器。 –
@DietrichEpp我只是想使用片段着色器來做到這一點,而我剛剛聽說過計算着色器。 –
片段着色器沒有意義,因爲您沒有進行任何繪製。 –