Применение последовательных шейдеров к текстуре, сохраняя приоритет float - PullRequest
0 голосов
/ 07 июня 2018

У меня есть текстура рендеринга в Unity, и я применяю к ней последовательные шейдеры следующим образом:

     Graphics.Blit(Tex1, Tex2, myMaterialA);
     Graphics.Blit(Tex2, Tex3, myMaterialB);
     Graphics.Blit(Tex3, Tex4, myMaterialC);

В моих шейдерах я работаю только с плавающими элементами, но полученные значения цвета получают количественно на 8 битах, так каквыходная текстура - RGBA 32 бита.

В моем примере, есть ли способ сохранить точность с плавающей запятой для промежуточных результатов (Tex2, Tex3) и конвертировать только окончательную текстуру Tex4 в 32-битные RGB?

1 Ответ

0 голосов
/ 14 января 2019

Оба формата Texture2D и RenderTexture могут иметь формат, отличный от ARGB32.

https://docs.unity3d.com/ScriptReference/TextureFormat.html https://docs.unity3d.com/ScriptReference/RenderTextureFormat.html

...