Обновление от 26.07.15

Озвученные NPC

Внедрена система субтитров и синхронизации губ для аудиофайлов. Реализация напоминает подход из HL2, но с заметными улучшениями.

Обновление от 26.07.15

Посмотреть видео

Настройки импорта звука

Добавлены параметры обработки звуковых файлов при компиляции, которые задаются в .meta файлах и применяются нативным компилятором:

  • Принудительное моно — объединение всех каналов в один.
  • Удаление тишины — обрезка пустых фрагментов в начале и конце аудио.
  • Нормализация громкости — использование LUFS-нормализации (целевой уровень -16 LUFS).
  • Усиление (дБ) — фиксированная корректировка громкости в диапазоне ±24 дБ.

Если опции не активны, компиляция остается идентичной оригиналу. Точки зацикливания рассчитываются уже после обрезки, что сохраняет корректную таймлайн-разметку. Изменение настроек автоматически сохраняет метаданные и инициирует перекомпиляцию ассета; при этом используется механизм задержки (debounce), чтобы избежать избыточных циклов при работе с ползунками или массовом редактировании.

Маскировка высоты для декалей

Height Coverage — новая функция, позволяющая использовать карту высот (heightmap) как дополнительную маску видимости. Если у декали есть назначенная карта высот, в компоненте становятся доступны две настройки:

  • Степень покрытия (Coverage Amount): определяет диапазон высот, где 1 — полная видимость, а 0 — прозрачность. Тип ParticleFloat позволяет использовать параметры времени жизни, создавая как статические эффекты, так и динамические анимации.
  • Диапазон покрытия (Coverage Range): настраивает мягкость краев маски (от 0 — четкие границы до 0.5 — плавное затухание).

Пример работы функции:

Посмотреть видео

Важно помнить, что это дополнительный слой маски, который накладывается поверх параметров прозрачности и затухания. Функция полностью совместима с параллакс-эффектами. Для разработчиков кастомных шейдеров обновлена документация по классу Decals с подробностями чтения и декодирования настроек покрытия из байтового буфера.

Отсечение (culling) ландшафта

Прошлая реализация карт отсечения была слишком примитивной и ограничивала возможности оптимизации. Мы полностью переработали архитектуру ландшафта для повышения производительности.

Теперь меш разбит на более мелкие фрагменты, которые проходят проверку на попадание в поле зрения камеры. В типичных сценах до 70% ландшафта скрыто от глаз, и отсечение этих объектов дает существенный прирост FPS.

Посмотреть видео

Это позволяет направлять ресурсы на детализацию видимых зон. В видео отсечение настроено агрессивнее обычного для наглядности.

Посмотреть видео

Оптимизация затенения ландшафта

Одной из главных проблем было избыточное количество выборок текстур.

Мы внедрили этап предварительных вычислений (precompute), перенесли нагрузку с отрисовки кадра на этап подготовки и перешли на GatherRed для обработки соседних текселей. Проходы глубины теперь практически не требуют вычислений. В идеальных условиях количество обращений к текстурам сократилось с 24 до 1, что позволило вдвое ускорить рендеринг в бенчмарках.

Также исправлены ошибки смешивания по высоте: камни, проступающие сквозь траву, теперь корректно отображаются без паразитного затухания.

Посмотреть видео

Поддержка Serious Engine

Serious Engine теперь доступен для монтирования. Вы можете запускать карты, спавнить объекты и персонажей из игр на этом движке.

Посмотреть видео

Демо-записи от первого лица

Запись демо теперь корректно поддерживает вид от первого лица, учитывая параметры рендеринга и флаги абсолютного позиционирования. Исправлена ошибка рассинхронизации дорожек, вызывавшая эффект «дрожания» модели оружия.

Посмотреть видео

Улучшения ключевых кадров в редакторе видео

На основе ваших отзывов мы провели серию исправлений: теперь последний ключевой кадр не пропускается при компиляции, выбранный режим интерполяции сохраняется как куки, а в контекстном меню появилась возможность пакетного изменения значений кадров.

Посмотреть видео

Продвинутая система панелей (Docking)

Стандартные возможности Qt оказались недостаточными, поэтому мы перешли на Qt Advanced Docking System. Это обеспечило стабильную среду в стиле профессиональных IDE без необходимости поддерживать собственные патчи.

ADS дает расширенные возможности: центральные виджеты, закрепление и автоскрытие, подсветка фокуса, улучшенное меню вкладок и группировка окон. API также стало значительно лаконичнее: метод DockManager.RegisterDockType больше не требуется.

Центральный виджет сцены

Благодаря новой системе панелей мы реализовали центральный виджет. Основной редактор сцен теперь привязан к нему, что избавляет от необходимости создавать отдельное окно для каждой сессии и предотвращает случайную поломку интерфейса при закрытии вкладок.

Улучшения рисования вершин (Vertex Paint)

Мы расширили инструментарий рисования вершин, добавив долгожданные функции:

Заливка (Flood Fill) с поддержкой шума, окклюзии и кривизны. Также добавлены команды инверсии и очистки данных, улучшен подбор цвета, пипетка и масштабирование дистанции кисти.

Список переходов в панели задач

Возвращена поддержка Jump List: теперь при закреплении редактора s&box в панели задач можно быстро запускать последние проекты.

Исправление метрик производительности

Мы выявили и устранили две критические ошибки в системе сбора статистики:

  1. Некорректное усреднение: Старая формула давала слишком большой вес последним кадрам. Перешли на алгоритм Велфорда для точного вычисления скользящего среднего.
  2. Учет времени простоя: Раньше в расчет общего времени кадра включались паузы (Idle) при лимите FPS. Теперь время простоя отслеживается отдельно, что позволяет видеть реальную вычислительную нагрузку на движок.

Мы продолжаем активную работу над оптимизацией, теперь метрики стали прозрачными и точными.

Источник

Читайте также