Join Nostr
2026-03-24 06:53:14 UTC
in reply to

Тр3тий Сергеевич on Nostr: Думаю, explanations are in order. Дано: текстура с ...

Думаю, explanations are in order.

Дано: текстура с компиляцией спрайтов (например, зрачки), из которой нужно будет выбрать один спрайт (через масштабирование/смещение UV-карты под плоскость). Этот спрайт будет перемещаться в пределах одной плоскости через смещение UV-карты.

Проблема: При смещении UV-карты на плоскости появляются соседние спрайты. Clip-интерполяция* при этом работает только за пределами карты.

* Имеется в виду зануление альфа-каналов за пределами оригинальной структуры, в противовес Repeat (повторению) и Mirror (отражению).

Решение: К альфа-каналу шейдера дополнительно домножается белая текстура-маска с Clip-интерполяцией, служащая окошком для выбранного спрайта и имеющая ту же UV-карту (без поправок на выборку спрайта). При перемещении спрайта маска перемещается вместе с ним, что создаёт эффект, будто бы мы перемещаем только один спрайт, а не всю компиляцию.

Возможно, не слишком эффективно с т.з. расчетов и ресурсов, но дело свое делает.