Сглаживание
Добавляет современное сглаживание и увеличение резкости в RimWorld. Делает сглаженными неровные края спрайтов и ландшафта. Сглаживание работает на GPU после симуляции, поэтому не влияет на TPS. Работает с любой текстурой или графической функцией.
Возможности
- FXAA: Быстрое приближенное сглаживание. Самый дешёвый вариант.
- SMAA: Сглаживание на основе субпиксельной морфологии. Чёткие, чистые края; точная портированная версия эталонной реализации. Рекомендуется.
- SSAA: Суперсэмплирование (1.5x / 2x / 4x). Самое высокое качество - сглаживает не только края, но и текстуры. Самый требовательный вариант.
- CAS RGB & Luma: Контрастно-адаптивное увеличение резкости, применяется после AA для восстановления деталей.
- Предустановки качества + Расширенные настройки: Простой выбор качества для каждого метода с переключателем "Расширенные" для тонкой настройки.
- Незначительная нагрузка на CPU: Обработка происходит на GPU после рендеринга без влияния на TPS.
- Совместимость: Совместим с графическими и текстурными модами. Интерфейс не затрагивается и остаётся чётким.
Производительность
FXAA, SMAA и CAS - это постпроцессные проходы:
Игра отрисовывает сцену → исходный RT → OnRenderImage → AA blit(ы) → целевой RT → Present
Каждый метод стоит:
- FXAA: 1 blit
- SMAA: 3 blit(а) (обнаружение краёв → расчёт весов смешивания → смешивание окрестности)
- CAS (RGB/Luma): 1 blit (добавляется после AA, если включён)
SSAA - это другое: он рендерит мир в более высоком разрешении и даунсемплирует обратно на ваш экран, поэтому его стоимость зависит от
количества пикселей - 2x рендерит в 4 раза больше пикселей, 4x - в 16 раз. Он ограничен скоростью заполнения (fill-rate), а не фиксированным количеством blit(ов), и является самым требовательным вариантом.
Постпроцессные методы дешевы для 2D рендеринга на основе спрайтов, как в RimWorld, и современные GPU эффективно обрабатывают полноэкранные blit(ы). Как и всё, связанное с графикой, это не бесплатно - любой дополнительный проход снижает FPS. Особенно тяжёлым может быть SSAA при 4x. Пожалуйста, протестируйте и сообщите о результатах, если у вас существенная (или заметная) потеря производительности.
Требования
Поддерживаемые языки
Все
Поддерживаемые версии
1.4, 1.5, 1.6
Коллекция модов от Remi WorkshopТехнические примечания
FXAA - Быстрое приближённое сглаживание
FXAA работает, обнаруживая края на основе контраста яркости, затем размывая вдоль этих краёв.
Как FXAA видит ваш экран:
До: Обнаружение краёв: После:
┌─────────┐ ┌─────────┐ ┌─────────┐
│▓▓▓▓░░░░░│ │ ││││ │ │▓▓▓▒░░░░░│
│▓▓▓▓░░░░░│ → │ ││││ │ → │▓▓▓▒▒░░░░│
│▓▓▓▓░░░░░│ │ ││││ │ │▓▓▓▒▒░░░░│
└─────────┘ └─────────┘ └─────────┘
Резкий край "Нашёл!" Сглаженный
Технические детали:• Анализирует окрестность 5x5 для расчёта локального контраста
• Определяет ориентацию края (горизонтальная против вертикальной)
• "Прогулка" вдоль края до 6 пикселей для поиска конечных точек
• Смешивает пиксели перпендикулярно направлению края
• Один проход, чрезвычайно дружелюбен к GPU
Лучше всего для: Низкоклассное оборудование, максимальная производительность
SMAA - Сглаживание на основе субпиксельной морфологии
SMAA распознаёт
шаблоны. Он определяет морфологическую форму каждого сглаженного края и восстанавливает плавную линию, которую он должен был представлять, используя предварительно вычисленные таблицы поиска для точных, чётких результатов с минимальной размытостью.
Восстановление шаблона:
Сглаженный край: Обнаруженный отрезок: Восстановленный:
▓▓▓░░░ ▓▓▓\\░░ ▓▓▓▒░░
▓▓░░░░ → ▓▓\\░░░ → ▓▓▒░░░
▓░░░░░ ▓\\░░░░ ▓▒░░░░
ступенька диагональ плавный наклон
Технические детали:• Проход 1: обнаружение краёв на основе цвета
• Проход 2: расчёт весов смешивания с использованием предварительно вычисленных таблиц поиска AreaTex / SearchTex
• Проход 3: смешивание окрестности
• Точная 1:1 портировка эталонного шейдера (соответствует Unity's Post-Processing v2), по умолчанию предустановка High
• Управление качеством Low / Medium / High контролирует шаги поиска и обнаружение диагональных/угловых краёв
• Порог обнаружения краёв настраивается в Расширенных настройках
Лучше всего для: Чёткие, чистые края с минимальной размытостью. Рекомендуется для большинства пользователей.
SSAA - Суперсэмплирование
SSAA - это грубая сила, и самое высокое качество. Он рендерит мир в более высоком разрешении и сжимает обратно, усредняя несколько выборок в каждый конечный пиксель. Поскольку у него есть больше
реальных выборок для работы, это единственный метод, который сглаживает внутреннюю часть текстур, а не только обнаруженные края.
SSAA (пример 2x):
Рендеринг в 2x разрешение: Даунсемплинг до экрана:
┌───────────────┐
│ ▓▓▓▓▓▒▒░░░░░░░ │ ┌───────┐
│ ▓▓▓▓▓▒▒░░░░░░░ │ → │ ▓▓▒░░░ │
│ ▓▓▓▓▒▒▒░░░░░░░ │ │ ▓▓▒░░░ │
└───────────────┘ └───────┘
4x больше пикселей усреднено = гладко
Технические детали:• Рендерит камеру мира в целевой объект рендеринга 1.5x / 2x / 4x
• Даунсемплирует обратно до родного разрешения с помощью итерационного box-фильтра
• Сглаживает внутреннюю часть текстур, тонкие элементы и текст в игре - не только края
• Интерфейс рендерится отдельно и остаётся в родном разрешении (чёткий)
• Математически точный; стоимость растёт квадратично от коэффициента масштабирования
Лучше всего для: Максимальное качество на мощных GPU.
CAS - Контрастно-адаптивное увеличение резкости
CAS восстанавливает детали, которые сглаживание может смягчить. В отличие от базового увеличения резкости, он адаптируется к локальному контрасту, чтобы избежать усиления шума или создания ореолов. Применяйте его после AA. С SSAA он объединяется с даунсемплингом бесплатно.
Традиционное увеличение резкости vs CAS:
Оригинал: Базовое увеличение резкости: CAS:
░░▓▓▓░░ ░░▓▓▓░░ ░░▓▓▓░░
░░▓▓▓░░ → ░▒▓▓▓▒░ vs ░░▓▓▓░░
░░▓▓▓░░ ░░▓▓▓░░ ░░▓▓▓░░
↑ореолы↑ артефактов нетДва режима: CAS (RGB) - Увеличивает резкость всех цветовых каналов независимо
• Максимальное усиление деталей
• Лучше всего для большинства контентов
CAS (Luma) - Увеличивает резкость только яркости, сохраняя цвета
• Предотвращает цветные ореолы на высококонтрастных краях
• Лучше для пиксельной графики или стилизованной графики
Источники
FXAA - Timothy Lottes, "FXAA" (NVIDIA, 2009)
SMAA - Jimenez, Echevarria, Sousa, Gutierrez, "SMAA: Enhanced Subpixel Morphological Antialiasing" (Computer Graphics Forum, 2012)
SSAA - Упорядоченная сетка суперсэмплирования. Franklin Crow, "The Aliasing Problem in Computer-Generated Shaded Images" (CACM 20(11), 1977)
CAS - AMD FidelityFX Contrast Adaptive Sharpening (Timothy Lottes, AMD)