Релиз 0.8.5
Поддержка современного JavaScript, конвейеры с улучшенным рендерингом листвы, шаблоны проектов и множество исправлений багов и оптимизаций производительности, значительно повышающих стабильность.
Подробный обзор
Этот релиз добавляет несколько очень мощных новых функций, которые заслуживают более внимательного изучения:
Поддержка современного JavaScript
Это позволяет вам создавать свои пользовательские компоненты в ES6+, используя const
, =>
и class
, но эта функция гораздо более масштабная.
У вас появляется возможность использовать всю экосистему NPM, самостоятельно создавать пакеты JavaScript или даже использовать другие языки, такие как TypeScript!
Мы стремимся к тому, чтобы Wonderland Engine хорошо интегрировался с вашими процессами сборки, поэтому мы опубликовали два пакета: @wonderlandengine/api и @wonderlandengine/components.
Конвейеры
Более детальный контроль над функциями GPU-конвейеров, такими как смешивание, позволяет создавать широкий спектр эффектов. Конвейеры также позволяют отключать части шейдеров и настраивать производительность, используя только нужные вам функции.
Появился и мощный новый конвейер “Foliage”, обеспечивающий более высокое качество для моделей растений с альфа-маскингом.
Шаблоны проектов
Wonderland Engine уже делает вашу работу очень эффективной благодаря быстрому рабочему процессу разработки. Тем не менее, отсутствие необходимости что-либо делать с самого начала может быть ещё быстрее. Чтобы сократить объем шаблонной работы, мы предоставляем шаблоны для быстрого старта вашего проекта.
Если вам нужно больше, вы можете создавать свои собственные шаблоны и делиться ими с сообществом.
Список изменений
Редактор
- Поддержка JavaScript ES2018 через V8
- Теперь редактор анализирует результирующий пакет, а не исходные JS файлы
- Добавлена возможность собрать пакет JavaScript через npm script
- Открытый исходный код встроенных компонентов редактора
- Опубликованы компоненты редактора как пакет npm
- Добавлены шаблоны проектов для создания проектов
- Добавлена поддержка пользовательских шаблонов проектов
- Добавлена поддержка конвейеров
- Включена поддержка альфа к покрытию (альфа-маскинг с MSAA)
- Добавлена поддержка различных конфигураций смешивания
- Возможность отключения глубинного теста и масок записи глубины
- Поддержка двусторонних материалов
- Добавлен конвейер “Foliage” для двусторонних материалов с альфа к покрытию
- Генерация sourcemaps для JavaScript пакетов
- Экспериментальная поддержка мип-маппинга на сжатом текстурном атласе
- Возможность удерживать Ctrl и перетаскивать из Property View в Scene Outline для копирования компонентов
- Настройка
framebufferScalingFactor
в Project Settings - Включен MSAA в Scene View для соответствия виду во время выполнения
- Улучшено время загрузки сцены
- Добавлены папки в файловом меню Asset Browser
- Исправлены редкие сбои при внесении изменений во время упаковки
- Исправлен сбой при перетаскивании пустого содержимого в Asset Browser
- Исправлены возвращаемые значения при сбоях с флагом
--windowless
- Исправлены выделения строк таблицы в Resources View
- Исправлены ошибки переименования некоторых ресурсов в Resources View
- Исправлены ошибки выбора некоторых ресурсов в выпадающих списках свойства
- Исправлена ошибка масштабирования углов в Scene View для объектов с родителями
- Улучшен стиль и компоновка интерфейса
- Улучшена плавность инструментов трансформации для сцен с большим количеством объектов
- Улучшена поддержка импорта файлов OBJ
- Удалены ненужные журналы для уменьшения загромождения
Шаблоны
- Добавлен шаблон “Mobile AR” с проверкой попаданий
- Добавлен шаблон “VR” с отслеживанием рук, контроллерами, телепортом и взаимодействием с курсором
Время выполнения
- Модульная структура API JavaScript
- Открытость исходного кода API (https://github.com/WonderlandEngine/api)
- API опубликован как пакет npm (https://www.npmjs.com/package/@wonderlandengine/api)
- Все пространства ссылок WebXR запрашиваются, и наиболее передовые выбираются по умолчанию
- Исправлена ошибка выделения памяти WasmMemory на Oculus Quest при разработке крупных проектов
- Исправлен сбой при деактивации анимированного меша
- Улучшены кнопки для входа в VR/AR
- Добавлен градиент фона для улучшенного внешнего вида до первой отрисовки
- Исправлены предупреждения, регистрирующиеся как ошибки в консоли браузера
- Исправлен
start()
вызывается на деактивированных в редакторе компонентах JavaScript
Движок
- Исправлено сглаживание при включенном bloom
- Улучшена производительность лучевых кастов против Box и AxisAlignedBox
- Улучшена производительность обновления текста
- Значительно улучшена производительность графа сцены для сцен с множеством динамических объектов (анимированные меши)
API JS
- Исправлены исключения при доступе к параметрам
WL.Material.*
- Добавлены сеттеры для
WL.PhysXComponent.shape
,extents
и других свойств для модификации твердых тел PhysX - Добавлен
WebXR.refSpace
для выбора референсного пространства - Исправлен возврат некорректных типов компонентов
WL.Object.getComponents()
- Добавлен
WL.Object.active
для (де-)активации всех компонентов на объекте - Добавлены установки
set WL.Object.transformWorld
иset WL.Object.transformLocal
- Исправлено, что состояние
active
становилось недопустимым при изменении вonActivate()
- Значительно улучшены колебания памяти и сборка мусора
Компоненты JavaScript
- курсор: Добавлен
cursorRayScalingAxis
для масштабирования объекта луча по определенной оси - курсор: Исправлено:
onHover()
теперь содержит параметр объекта наведения - телепорт: Переработан для поддержки ввода джойстиков и ориентации в VR сессиях
- телепорт: Исправленно телепортация центра вместо игрока
- vr-mode-active-switch: Исправлено поведение при деактивации и избегает само-деактивации
- отслеживание рук: Добавлены опции для отображения или скрытия сетки и контроллеров в зависимости от доступности позы
- Добавлен компонент
finger-cursor
для взаимодействия сcursor-target
через перекрытия (например, отслеживание рук на кончике пальца)
Docker Image
- Базовое изображение переключено на ubuntu:20.04
- Добавлен тег
edge
для тестировщиков кандидатских релизов