Унити Схадер ГрабПасс користи проблеме са пажњом

Unity Shader Grabpass Use Attention Issues



Из процеса обраде ГрабПасс-а у програму Дебуггер Фраме приказује: Граб РендерТектуре, обратите пажњу на следеће РендерТектуре

Тада вероватно можете претпоставити да Унити мотор прелази сваки Схадер-> СубСхадер-> пасс на дну. Ако се ради о ГрабПасс Пасс-у, он ће одредити формат који се користи, да ли има име, а затим ће текст Граб ставити у У хасхТабле, сличан речник се чува као [наме] = грабТектуре, што је погодно за следећу употребу.



А РендерТектуре је оно што називамо РТ, а такође можемо да креирамо РТ ручно у приказу пројекта. Наведите резолуцију, начин филтрирања, да ли желите снимити дубину, предложак, формат пиксела и друге атрибуте.



То ће рећи, ГрабПасс је заправо сличан следећем процесу обраде кода



ЦСхарп

RenderTexture grabRT = ... Camera c= ... c.targetTexture = grabRT c.Render() // single material shader Material mat = ... mat.SetTexture('_GrabTexture', grabRT') // all shaders Shader.SetGlobalTexture('_GrabTexture', grabRT)

Схадер

sampler2D _GrabTexture

А овај процес је веома скуп (троши перформансе)

Зато покушавамо да користимо ГрабПасс {'Наме'} уместо ГрабПасс {}