compute-shader

    3熱度

    1回答

    我目前正在使用UBO在OpenGL 4.3中進行渲染,以將所有常量數據存儲在GPU上。 (材料描述,矩陣等)。 它的工作原理是UBO的小尺寸(在我的實現中爲64kB)迫使我無數次地切換緩衝區,減緩了渲染速度,我正在尋找類似的方法來存儲幾MB。 經過一番研究,我發現SSBO允許這樣做,但也有不需要的「特徵」:它們可以從着色器寫入,並且讀取速度可能較慢。 是否有比SSBO更好的解決方案來爲着色器提供大

    3熱度

    2回答

    編寫計算着色器以用於Unity 4.我試圖獲得3d噪聲。 我們的目標是從我的C#代碼中獲取一個multidiminsional float3數組到我的計算着色器。這可能是直接的(使用某種聲明)還是隻能使用Texture3D對象來實現? 我目前有一個工作在單個float3點上的單工噪聲的實現,輸出一個float -1到1.我移植了計算着色器的代碼here。 我想通過將噪聲操作應用於數組中的每個flo

    1熱度

    1回答

    我在計算着色器中計算的位置上實例化對象。我想將包含位置的計算着色器的輸出綁定到數組緩衝區以進行繪製,但我無法使其工作。我對索引算術表示歉意,我對記憶對齊感到非常偏執,並拋棄所有媒介。 相關的代碼被簡化了: 初始化: //x, y, z, 1 stored in succession /*float*/positions = new float[maxPositionCount * 4]; /

    1熱度

    2回答

    我正在計算着色器,其輸出寫入SSBO。現在,此緩衝區的使用者是CUDA,它期望它包含無符號字節。我目前看不到找到方式如何在SSBO中爲每個索引編寫一個字節。使用紋理或圖像時,規範化的浮點到無符號字節的轉換由OpenGL處理​​。例如,我可以附加一個內部格式爲R8的紋理,併爲每個條目存儲字節。但是, SSBO。是否意味着除了bool數據類型之外,SSBO中的所有數字存儲類型只能有每個條目至少4個字節

    0熱度

    1回答

    我想在OpenGL/GLSL中實現平鋪延遲渲染,並且我被卡在光剔除。 我的GPU比較舊(AMD Radeon 6490m),出於奇怪的原因,計算着色器在無限循環中運行時,在共享變量中調用原子操作時,我無法使用計算着色器計算最小和最大深度。無論如何,這並不是太耗時的操作,所以我在片段着色器中進行操作。 然後,對於每個可見點光源(視圖空間),我計算屏幕空間的邊界四邊形。現在我想使用單個計算着色器進行光

    3熱度

    1回答

    我正在學習OpenGL ES,尤其是在OpenGL ES 3.1中計算着色器,特別是在Android 5.0.1中。 我定義了3個着色器(計算,頂點和片段)並附加到兩個不同的程序,一個用於計算着色器,另一個用於頂點和片段着色器。 我時,我只用了頂點和片段着色器沒有問題,但現在我加入了計算着色器,我得到了以下錯誤: 02-11 20:02:10.375 13243-13264/com.example

    0熱度

    1回答

    我得到了一個(基本)體素引擎運行和一個水系統,看起來(我假設基本上是這樣):https://www.youtube.com/watch?v=Q_TdeGIOOts(不是我的遊戲)。 水的值存儲在一個三維浮點數組中,每隔0.05s通過檢查下方和鄰近的體素(y-1,x-1,x + 1,z-1,z + 1)計算水流量。並添加該值。 這個系統對於少量的水很好(70+ fps),但是當我開始計算8個以上的水

    1熱度

    1回答

    我試圖使用計算着色器實現fluid dynamics。在文章中,有一系列關於紋理的通過,因爲這是在計算着色器之前編寫的。 對紋理或緩衝區執行每次傳遞會更快嗎?無論如何,最終的通行證必須應用於紋理。

    1熱度

    1回答

    錯誤比方說,我有一個計算着色器檢索使用組這樣的Id從Texture2DArray數據: Texture2DArray<float4> gTextureArray[2]; [numthreads(32, 1, 1)] void Kernel(uint3 GroupID : SV_GroupID, uint3 GroupThreadID : SV_GroupThreadID) { fl

    2熱度

    3回答

    我嘗試編譯這個小example,我有這個錯誤執行廠名: g++ -o ogl_cs_example main.cpp opengl_cs.cpp opengl_util.cpp -Wall -Iinclude -lX11 -lGL -lGLU /tmp/ccFLIOt2.o: In function `updateTex(int)': main.cpp:(.text+0xc6): undefi