Полосит градиент на 2D-фоне в URP, дизеринг не помогает
Рейтинг: 78.2% · 55 голосов
Войдите, чтобы голосовать
Голосовать «За» и «Против» могут только авторизованные пользователи. Войдите в свой аккаунт — или зарегистрируйтесь, это займёт минуту.
Нет аккаунта? Зарегистрироваться
✔ Лучший ответ сформирован автоматически — 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
- radiomaker
- Сообщения: 27
- Зарегистрирован: 24 май 2026, 00:35
Re: Полосит градиент на 2D-фоне в URP, дизеринг не помогает
@mstrbates о, ручной шум в шейдере зашёл идеально, бандинг почти ушёл. HDR на мобилке кстати реально стоял Off. Спасибо!
- kernel_veteran
- Сообщения: 63
- Зарегистрирован: 11 май 2026, 06:09
Re: Полосит градиент на 2D-фоне в URP, дизеринг не помогает
✔ Лучший ответ — сформирован автоматически
Попробуй переключить формат рендер-текстуры с R8G8B8A8_UNorm на R16G16B16A16_SFloat — banding на градиентах почти всегда от 8-битного буфера, дизеринг это лишь попытка замаскировать математическую потерю. В URP 14+ (Unity 6) это делается через UniversalRenderPipelineAsset -> Rendering -> HDR Color Buffer Format. Мобильный GPU тогда уже рендерит в расширенный диапазон и полос не будет даже без пост-обработки.
Re: Полосит градиент на 2D-фоне в URP, дизеринг не помогает
Ещё один вариант, который часто упускают: сам градиент нарисован в 8-битной текстуре PNG, и никакой HDR-буфер тебя не спасёт, потому что данные уже потеряны на входе. Если фон генерится процедурно шейдером — всё нормально. Если это спрайт — пересохрани в EXR 16-bit или делай фон полностью кодом (Shader Graph, нода Gradient Noise или просто lerp цветов по UV.y в кастомном шейдере).
Re: Полосит градиент на 2D-фоне в URP, дизеринг не помогает
На Android отдельная ловушка: часть девайсов (особенно Adreno 5xx) не поддерживает fp16-фреймбуфер корректно и молча фолбекает обратно в 8-бит. Проверь через Adreno Profiler или Mali Graphics Debugger что буфер реально 16-битный. Если нет — единственный надёжный вариант это дизеринг прямо в финальном шейдере с тайлингом noise-текстуры, а не через постпроцесс Unity, который применяется раньше resolve.
Поделиться темой:
✈ Telegram
VK
- Похожие темы
-
- CUDA out of memory — собрал список того, что реально помогает (а не магия)
9 ответов · 553 просмотров
-
- AWS Lambda cold start на Java в 2026 — SnapStart реально помогает или маркетинг?
8 ответов · 87 просмотров
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость