HLSL / GLSL Высокая точность sqrt возможна? - PullRequest
0 голосов
/ 13 октября 2019

Постобработка сонограммы Math.Sqrt () является высококачественной и медленной в CPU. Это быстрое и низкое качество на карте GFX, используя HLSL, на игровом движке Unity. это похоже на 12 бит, предположительно это 16 бит.

Есть ли способ сделать точное sqrt () приближение / эквивалент на карте GFX?

enter image description here

Вот код, это HLSL

        void surf (Input IN, inout SurfaceOutput o) {

            float4 c = tex2D (_MainTex, IN.uv_MainTex);         
            c = sqrt(c);
            o.Albedo = c.rgb;
            o.Alpha = c.a;          

    }

1 Ответ

0 голосов
/ 13 октября 2019

Добавьте эту строку в свой код шейдера:

#pragma fragmentoption ARB_precision_hint_nicest
...