compute-shader

    2熱度

    1回答

    我有一個灰度紋理(8000 * 8000),每個像素的值是一個ID(實際上,這個ID是片段所屬的三角形的ID,我想用這個方法來計算有多少個三角形和哪個三角形在我的場景中可見)。 現在我需要統計有多少個唯一的ID以及它們是什麼。我想用GLSL實現這一點,並儘量減少GPU RAM和RAM之間的數據傳輸。 我想出的最初想法是使用着色器存儲緩衝區,將它綁定到GLSL中的數組,其大小爲totalTriang

    0熱度

    1回答

    我編寫了一個簡單的測試用例來獲取計算着色器中圖像的高度並將其寫入SSBO。我已經使用了SSBO代碼before,我知道這部分工作正常。我使用apitrace在glDispatchCompute調用期間檢查狀態,並且可以看到原始紋理和綁定到正確圖像單元的圖像。但是,imageSize始終返回零(輸出全爲零,除了最後的一些殘餘-1以外,因爲工作組大小的分割減小了)。沒有引發OpenGL錯誤。 我基於這

    0熱度

    2回答

    對於某些後期渲染效果,我需要讀取深度紋理。只要關閉多重採樣,這可以正常工作。但是對於多采樣,我無法讀取紋理。 嘗試通過depth2d_ms參數在着色器中使用多重採樣紋理時,編譯器將在運行時失敗並顯示錯誤消息「內部編譯器錯誤」。 我發現在OpenGL中,你首先將多采樣深度緩衝區blit到已解析的深度緩衝區以讀取採樣值,但是使用Metal時,我得到斷言錯誤,指出blit紋理的採樣計數需要匹配,所以在那

    0熱度

    1回答

    通常在現代桌面OpenGL硬件上從計算着色器填充深度緩衝區然後使用深度緩衝區渲染三角形等圖形管道的最佳方式是什麼? 具體而言,我想知道關於HiZ的問題。另外我想知道在圖形渲染之前或之後對深度緩衝區執行計算着色器修改會更好嗎? 如果計算着色器在圖形渲染之後運行,我假設深度緩衝區通常會在幕後解壓縮。但是我擔心深度緩衝區可能處於圖形管道的解壓縮/非最佳狀態?

    0熱度

    1回答

    我有2個效果。我剛開始使用着色器和DirectX,所以對於愚蠢的問題感到抱歉。 在計算着色器中使用RWStructuredBuffer。 RWStructuredBuffer<Particle> Particles : register(u0); 第二個: StructuredBuffer<Particle> Particles : register(t0); 我創建的數據是這樣的: //

    0熱度

    1回答

    Unity 5着色器能夠訪問DX11流水線中的流輸出階段嗎?參考:https://msdn.microsoft.com/en-us/library/windows/desktop/bb205121%28v=vs.85%29.aspx 我想在着色器中計算新的垂直數據,然後將此信息輸出到腳本以進行非呈現目的(與撞擊後的網格相關的關係損傷)。 我目前使用GPGPU着色器來實現這一點,但是管道上的額外負載

    0熱度

    1回答

    我試圖使用方法: layout (binding = 0, rgba8ui) readonly uniform uimage2D input; 在計算着色器 。爲了將紋理綁定到該我使用: glBindImageTexture(0, texture_name, 0, GL_FALSE, 0, GL_READ_ONLY, GL_RGBA8); ,似乎爲了這個綁定工作紋理必須是不可變的,所以我已

    0熱度

    1回答

    對於某個項目,我有一個有點不尋常的問題,我沒有找到任何答案。我建立了一個遊戲,嚴重依賴圖像處理來處理每像素碰撞和非常頻繁的tickrate計算,我需要做的事情之一是檢查一個圖像(在這種情況下,代表一艘船)被破壞並且構成不止一個部分。 例子: 正如你可以看到這個船分割(比如通過一些武器影響)和左翼現在已經摺斷。我需要確定哪些像素是分開的(例如通過用0標記它們的alpha通道)。 到現在爲止,我的程序

    0熱度

    1回答

    計算着色器如何劃分任務? #version 430 core layout (local_size_x = 64) in; layout(std430, binding=4) buffer INFO { vec2 info[]; }; void main() { uint gid = gl_GlobalInvocationID.x; info[

    0熱度

    1回答

    我在OpenGL 4.5(C#中的OpenGL.net,但代碼非常類似於正常的OpenGL代碼),並且正在嘗試使用計算着色器。這是我到目前爲止有: // (Compile and link stuff, this part I know works) // Use the compute shader Gl.UseProgram(program); // Create the textu