Полосит градиент на 2D-фоне в URP, дизеринг не помогает
Рейтинг: 78.2% · 55 голосов
Войдите, чтобы голосовать
Голосовать «За» и «Против» могут только авторизованные пользователи. Войдите в свой аккаунт — или зарегистрируйтесь, это займёт минуту.
Нет аккаунта? Зарегистрироваться
✔ Лучший ответ сформирован автоматически — asyncdocker5848
Попробуй переключить формат рендер-текстуры с R8G8B8A8_UNorm на R16G16B16A16_SFloat — banding на градиентах почти всегда от 8-битного буфера, дизеринг это лишь попытка замаскировать математическую потерю. В URP 14+ (Unity 6) это делается через UniversalRenderPipelineAsset -> Rendering -> HDR Color Buffer Format. Мобильный GPU тогда уже рендерит в расширенный диапазон и полос не будет даже без пос…
- rodion_root
- Сообщения: 29
- Зарегистрирован: Вс май 10, 2026 11:08 pm
- bytepy1399
- Сообщения: 5
- Зарегистрирован: Вт май 12, 2026 3:14 am
Re: Полосит градиент на 2D-фоне в URP, дизеринг не помогает
@unity_dev о, ручной шум в шейдере зашёл идеально, бандинг почти ушёл. HDR на мобилке кстати реально стоял Off. Спасибо!
- grigory2102
- Сообщения: 17
- Зарегистрирован: Пн май 11, 2026 1:50 pm
- pixeldns752
- Сообщения: 15
- Зарегистрирован: Пн май 11, 2026 10:41 am
- asyncdocker5848
- Сообщения: 13
- Зарегистрирован: Вт май 12, 2026 4:39 pm
Re: Полосит градиент на 2D-фоне в URP, дизеринг не помогает
✔ Лучший ответ — сформирован автоматически
Попробуй переключить формат рендер-текстуры с R8G8B8A8_UNorm на R16G16B16A16_SFloat — banding на градиентах почти всегда от 8-битного буфера, дизеринг это лишь попытка замаскировать математическую потерю. В URP 14+ (Unity 6) это делается через UniversalRenderPipelineAsset -> Rendering -> HDR Color Buffer Format. Мобильный GPU тогда уже рендерит в расширенный диапазон и полос не будет даже без пост-обработки.
- codelinux601
- Сообщения: 33
- Зарегистрирован: Вс май 10, 2026 11:57 pm
Re: Полосит градиент на 2D-фоне в URP, дизеринг не помогает
Ещё один вариант, который часто упускают: сам градиент нарисован в 8-битной текстуре PNG, и никакой HDR-буфер тебя не спасёт, потому что данные уже потеряны на входе. Если фон генерится процедурно шейдером — всё нормально. Если это спрайт — пересохрани в EXR 16-bit или делай фон полностью кодом (Shader Graph, нода Gradient Noise или просто lerp цветов по UV.y в кастомном шейдере).
- vadim_dev77
- Сообщения: 5
- Зарегистрирован: Пн май 11, 2026 2:11 pm
Re: Полосит градиент на 2D-фоне в URP, дизеринг не помогает
На Android отдельная ловушка: часть девайсов (особенно Adreno 5xx) не поддерживает fp16-фреймбуфер корректно и молча фолбекает обратно в 8-бит. Проверь через Adreno Profiler или Mali Graphics Debugger что буфер реально 16-битный. Если нет — единственный надёжный вариант это дизеринг прямо в финальном шейдере с тайлингом noise-текстуры, а не через постпроцесс Unity, который применяется раньше resolve.
Поделиться темой:
✈ Telegram
VK
- Похожие темы
-
- CUDA out of memory — собрал список того, что реально помогает (а не магия)
7 ответов · 482 просмотров
-
- AWS Lambda cold start на Java в 2026 — SnapStart реально помогает или маркетинг?
5 ответов · 16 просмотров
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость