Представляем 3D в Hana
Объединяем 3D и 2D
Очень долго почти весь дизайн-«процесс» происходил на 2D-холсте.
Исторический разрыв между 2D и 3D коренится в технической сложности. 2D-инструменты развивались так, чтобы работать в реальном времени и при этом в высоком качестве (что видишь, то и получаешь), а 3D требует гораздо больше вычислительной мощности, поэтому работа в реальном времени была возможна только в пониженном качестве.
Но технологии заметно продвинулись (и железо, и софт), а наша команда за последние несколько лет добилась серьёзного прогресса и достигла принципиальной вехи: объединила 3D и 2D на одном холсте в реальном времени.
Сближение 3D и 2D
Мы уверены, что дизайн-холст должен использовать все доступные измерения, а пользователь (человек или ИИ-агент) должен сам решать, что лучше подходит для конкретной задачи.
К сожалению, в теории это работает, а на практике реализовать что-либо в 3D — технический кошмар, и объединение двух систем делает его ещё сложнее.
Большинство современных и традиционных дизайн-инструментов построены по схожему принципу: вы работаете над превью, затем нажимаете «рендер» или «передаёте» работу, и кто-то реализует настоящий продукт на другом стеке.
Иными словами, почти все современные дизайн-инструменты работают не в реальном времени, поэтому для 3D обычно нужны специализированные инструменты, а их результат в итоге используется или встраивается в виде плоских изображений или видео — нередактируемых и неинтерактивных. Это медленный процесс, который не соответствует сегодняшним стандартам дизайна.
Чтобы это изменить, нужен новый подход.
Реальное время — основа всего
Создавая Hana, мы сделали её работающей в реальном времени и при этом способной отрисовать всё, что можно отрисовать в 2D. Это значит, что рендерер Hana справляется с любыми эффектами с точностью до пикселя (тенями, размытием и т. д.), векторными фигурами, булевыми операциями и многим другим — и всё в реальном времени.
А значит, тот же конвейер эффектов Hana можно использовать и для рендеринга 3D-графики в реальном времени.
По сути, Hana умеет объединять 3D и 2D в одно целое.
Путь к объединению двух миров
Добавить 3D на 2D-холст кажется простой задачей, но на деле трудностей масса. Чаще всего для этого приходится запускать два рендерера одновременно или объединять несколько рантаймов, а это долгие загрузки, что далеко от идеала.
Hana использует один и тот же рантайм для 3D и 2D — это эффективнее и заметно гибче.
Другая ключевая проблема — качество, а точнее его нехватка.
Объединить две системы в одну, сохранив тот же уровень качества, непросто, потому что качество 3D складывается из многих факторов: сглаживания, разрешения, количества полигонов (или высокой плотности вокселей), числа объектов и не только.
В Hana можно создать любую 2D-фигуру и превратить её в 3D-объект, сохранив связь с исходной фигурой в реальном времени.
То есть в любой момент можно изменить исходную фигуру, и 3D-объект перестроится в реальном времени вслед за ней.
Это заметно повышает продуктивность при создании 3D внутри 2D-композиции. Например, можно легко создать 3D-текст и менять его цвет, шрифт или другие свойства, сохраняя всю гибкость текста в неразрушающем процессе.
Раскладки могут обновляться динамически, а 3D-объекты будут следовать правилам 2D-композиции.
3D следует за 2D
В Hana у каждого 3D-объекта своя система координат. Но он продолжает подчиняться правилам и поведению 2D-холста, поэтому к 3D-объектам можно применять всё то же, что вы обычно используете для 2D-объектов.
Это открывает широкий простор для дизайна.
Ограничения
Пока в 3D/2D-системе Hana доступно ограниченное число функций.
Любую 2D-фигуру можно выдавить в 3D и довольно гибко управлять материалами, но возможностей для развития ещё много.
В идеале 3D-система должна уметь отрисовывать любые 3D-объекты и сцены и быть куда менее ограниченной.
Это только начало
Последние несколько лет мы в Spline упорно работаем над цельной дизайн-системой, которая объединяет 2D, 3D, а в будущем и 4D.
Нам не терпится двигаться дальше к этому захватывающему будущему.
— Команда Spline 🌸