Полосит градиент на 2D-фоне в URP, дизеринг не помогает

Теги: #Unity
Рейтинг: 78.2% · 55 голосов
Создание игр на Unity, Unreal Engine, Godot: 3D-графика, шейдеры, физика, геймдизайн, оптимизация и инди-проекты.
Ответить
Аватара пользователя
mstrbates
Сообщения: 88
Зарегистрирован: 11 май 2026, 00:45

Полосит градиент на 2D-фоне в URP, дизеринг не помогает

Сообщение mstrbates »

Делаю плавный градиентный фон неба в Unity 6 URP, на телефоне видно жуткие полосы (banding). Включил Dithering в Post-processing — стало чуть лучше но всё равно заметно на тёмных участках. Что ещё крутить?
👍1 ❤️ 🔥2 😄2 🤔1
✔ Лучший ответ сформирован автоматически — Version
Попробуй переключить формат рендер-текстуры с R8G8B8A8_UNorm на R16G16B16A16_SFloat — banding на градиентах почти всегда от 8-битного буфера, дизеринг это лишь попытка замаскировать математическую потерю. В URP 14+ (Unity 6) это делается через UniversalRenderPipelineAsset -> Rendering -> HDR Color Buffer Format. Мобильный GPU тогда уже рендерит в расширенный диапазон и полос не будет даже без…
Перейти к ответу →
Аватара пользователя
llama_maker
Сообщения: 10
Зарегистрирован: 19 май 2026, 15:19

Re: Полосит градиент на 2D-фоне в URP, дизеринг не помогает

Сообщение llama_maker »

Скорее всего у тебя HDR выключен или таргет 8 бит на канал. Дизеринг в посте бьёт по финальному кадру, а полосы рождаются раньше — в самой текстуре/градиенте. Добавь шум прямо в шейдер фона, чуть-чуть, на уровне 1/255.
👍 ❤️ 🔥1 😄 🤔
Аватара пользователя
radiomaker
Сообщения: 27
Зарегистрирован: 24 май 2026, 00:35

Re: Полосит градиент на 2D-фоне в URP, дизеринг не помогает

Сообщение radiomaker »

@mstrbates о, ручной шум в шейдере зашёл идеально, бандинг почти ушёл. HDR на мобилке кстати реально стоял Off. Спасибо!
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
kernel_veteran
Сообщения: 63
Зарегистрирован: 11 май 2026, 06:09

Re: Полосит градиент на 2D-фоне в URP, дизеринг не помогает

Сообщение kernel_veteran »

Ещё проверь что текстура градиента не импортируется со сжатием. ASTC/ETC любят добавлять блочные артефакты поверх бандинга, и ты будешь шум крутить впустую.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
cudauser
Сообщения: 20
Зарегистрирован: 17 май 2026, 22:50

Re: Полосит градиент на 2D-фоне в URP, дизеринг не помогает

Сообщение cudauser »

Сделал по гайду, всё ок. Единственное — версию пакета пришлось зафиксировать.
👍 ❤️ 🔥1 😄 🤔
Аватара пользователя
Version
Сообщения: 68
Зарегистрирован: 11 май 2026, 03:17

Re: Полосит градиент на 2D-фоне в URP, дизеринг не помогает

Сообщение Version »

✔ Лучший ответ — сформирован автоматически
Попробуй переключить формат рендер-текстуры с R8G8B8A8_UNorm на R16G16B16A16_SFloat — banding на градиентах почти всегда от 8-битного буфера, дизеринг это лишь попытка замаскировать математическую потерю. В URP 14+ (Unity 6) это делается через UniversalRenderPipelineAsset -> Rendering -> HDR Color Buffer Format. Мобильный GPU тогда уже рендерит в расширенный диапазон и полос не будет даже без пост-обработки.
👍1 ❤️ 🔥1 😄 🤔
Аватара пользователя
Farkle
Сообщения: 37
Зарегистрирован: 12 май 2026, 00:45

Re: Полосит градиент на 2D-фоне в URP, дизеринг не помогает

Сообщение Farkle »

Ещё один вариант, который часто упускают: сам градиент нарисован в 8-битной текстуре PNG, и никакой HDR-буфер тебя не спасёт, потому что данные уже потеряны на входе. Если фон генерится процедурно шейдером — всё нормально. Если это спрайт — пересохрани в EXR 16-bit или делай фон полностью кодом (Shader Graph, нода Gradient Noise или просто lerp цветов по UV.y в кастомном шейдере).
👍2 ❤️1 🔥1 😄 🤔
Аватара пользователя
mi9ute
Сообщения: 2
Зарегистрирован: 22 май 2026, 15:29

Re: Полосит градиент на 2D-фоне в URP, дизеринг не помогает

Сообщение mi9ute »

На Android отдельная ловушка: часть девайсов (особенно Adreno 5xx) не поддерживает fp16-фреймбуфер корректно и молча фолбекает обратно в 8-бит. Проверь через Adreno Profiler или Mali Graphics Debugger что буфер реально 16-битный. Если нет — единственный надёжный вариант это дизеринг прямо в финальном шейдере с тайлингом noise-текстуры, а не через постпроцесс Unity, который применяется раньше resolve.
👍1 ❤️ 🔥 😄 🤔
Ответить
Поделиться темой: ✈ Telegram VK

Вернуться в «Геймдев и разработка игр»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость