Технический художник Binbun опубликовал руководство по реализации эффекта размытия (blur) в Godot. Туториал демонстрирует, что создание шейдера для этой цели может быть прямолинейным процессом. Ключ кроется в эффективном использовании mipmaps — функции движка, которая помогает поддерживать производительность даже при применении интенсивных размытий. Этот ресурс полезен для тех, кто хочет добавить пост-обработочные эффекты или стилизовать визуальный вид своих 2D-проектов.
Использование Mipmaps для оптимального размытия с высокой производительностью 🎯
Обычно увеличение интенсивности размытия влечет за собой больший расход процессорных ресурсов. Однако представленный метод использует функцию textureLod вместе с семплером filter_linear_mipmap для выборки текстур на их уровнях mipmap. Mipmaps — это предварительно вычисленные и уменьшенные версии текстуры. При выборке более высокого уровня mipmap (контролируемого униформой blur_amount) получается изображение с естественной более низкой разрешающей способностью, эффективно имитирующее размытие, поскольку движок обращается к меньшим текстурам, хранящимся в памяти.
Твоя игра может выглядеть размытой, но логика производительности останется четкой 😎
Утешительно знать, что ты можешь сделать обзор твоего игрока таким размытым, будто он провел ночь в таверне, без того чтобы FPS пострадали аналогично. Пока ты ломаешь голову над настройкой параметров, Godot спокойно обращается к своим mipmaps — этим маленьким предусмотрительным помощницам, которые уже все подготовили. Так ты можешь сосредоточиться на важном: решить, является ли это размытие художественным или ты просто пытаешься замаскировать спрайты, которые еще не закончил рисовать.