iResolution.x и iResolution.y относятся к пиксельным размерам окна рендеринга.В единстве у вас есть _ScreenParams.x и _ScreenParams.y для размеров экранного пикселя, но вам нужно беспокоиться об этом, только если вы визуализируете эффекты экранного пространства.Если вы хотите визуализировать это как эффект на плоскости, вы используете i.uv.x и i.uv.y вместо этого для той же цели.FragCoord / iResolution имеет целью дать вам положение фрагмента в диапазоне 0-1 на вашем экране, что фактически эквивалентно UV-координате.Вычитание на 0,5 дает диапазон от -0,5 до 0,5.
Последняя строка, uv / = float2 (iResolution.y / iResolution.x, 1), предназначена для корректировки соотношения сторон.Если вы используете квадратную плоскость с УФ-отображением, вам не нужно беспокоиться об этом.
Подводя итог, эти строки эквивалентны:
float2 uv = i.uv - (float2)0.5;