Unity Compute Shader Добавление в структурированный буфер - PullRequest
0 голосов
/ 05 ноября 2018

Я пытаюсь реализовать Преобразование линии Хафа , используя вычислительные шейдеры в единстве. Я успешно сделал это на процессоре и перенес его в графический процессор. Я использую RWStructuredBuffer<uint> для аккумулятора.

RWStructuredBuffer<uint> accumulator;

[numthreads (8, 8, 1)]
void AngleCalculator (uint3 id : SV_DispatchThreadID) {
    if (textureIn[id.xy].r > 0) { // Check if the pixel is not black
        for (uint angle = 180; angle < 360; angle++) {
            accumulator[(angle - 180) + 
                ((id.x * cos (angle * ((2.0 * 3.1415) / 360.0))) - 
                 (id.y * sin (angle * ((2.0 * 3.1415) / 360.0))) + offset) * 180]++;
    }
}

Я отправляю ядро ​​с computeShader.Dispatch(angleKernal, width / 8, height / 8, 1);, где ширина и высота - степень 2 (64).

Предполагается, что результат будет сохранен в аккумуляторе, но он не даст таких же результатов, как в CPU

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...