Добавление интерактивности интерьеру SVOYA (Playcanvas/WebGL). Часть 3

Vasyl Lukianenko
Vasyl Lukianenko
3D Artist and Technical Author
Вы читаете часть: 1 2 3 4 5

Вступление

Это Часть 3 из 5 серии уроков по добавлению интерактивности интерьеру SVOYA Apartment.

Доступ к материалам, такие как: модели в формате "FBX", запеченные текстуры, скрипты и другое, вы можете получить оформив подписку на Patreon.

Patreon

Посмотреть Playcanvas проект онлайн.

View Playcanvas Project Online

Создание материала дивана

С момента запуска проекта SVOYA Apartment прошел уже год, и за это время Playcanvas успел получить немало интересных обновлений и настроек материалов. Веб-движок Playcanvas продолжает развиваться, постоянно улучшая свои возможности и инструменты для создания высококачественных 3D-приложений и игр.

Одним из наиболее важных и интересных инструментов является "Falloff". Эта функция давно доступна в 3Ds Max, и позволяет легко и быстро настроить материалы тканей. К тому же, в 3Ds Max есть возможность смешивать различные карты при помощи “Mix” и создавать уникальные эффекты, такие как вельвет.

Однако, при работе с Playcanvas, необходимо понимать, что эти эффекты не могут быть запечены, и создание материалов такого типа может быть непростым или вовсе невозможным.

playcanvas clost material example 1
Loading...
playcanvas clost material example 2
Loading...

За год существования проекта SVOYA Apartment веб-движок Playcanvas успел значительно развиться и расширить свои возможности. Большой вклад в это внесли настройки материалов, среди которых особенно выделяются новые опции "Sheen" и "Clearcoat". Используя их вместе, можно создавать невероятно реалистичные эффекты, такие как шелковая вельветовая ткань, которая меняет свой оттенок и яркость в зависимости от угла обзора и расстояния от объекта.

Чтобы лучше понять, как работают эти настройки, рекомендую попробовать на практике. Я могу продемонстрировать на примере одного материала, как различные сочетания настроек влияют на качество рендеринга и визуальную привлекательность материала. Главное не бояться экспериментировать и творчески подходить к настройке материалов в Playcanvas!

Материал Sofa Green

Давайте создадим уникальный материал и дадим ему название "Sofa Green". Для начала, мы назначим запеченную карту теней в "Lightmap", чтобы улучшить освещение и придать материалу больше объемности. Затем, добавим готовую cubemap "Helipad" в раздел "Environment" с определенными настройками.

Однако, чтобы "Sheen" и "Clearcoat" начали работать должным образом, необходимо убедиться, что "Reflectivity" имеет значение "0". Только так мы сможем добиться наилучшего результата и получить визуально привлекательный материал с работающими параметрами “Sheen” и “Clearcoat”.

sofa green material environment
Loading...

Добавьте карту теней и в “Diffuse”. Включите опцию “Tint” и используйте зеленый цвет.

sofa green material diffuse
Loading...

В разделе “Specular” необходимо включить “Use Metalness”. Параметр “Metalness” установить в “0”.
“Glossiness” на “50”.

sofa green material specular
Loading...

Убедимся, что “Emissive” у нас полностью выключен.

sofa green material emissive
Loading...

Займемся настройкой “Sheen”.
“Sheen” это по сути и есть всем известный “Falloff” в 3Ds Max. Здесь вы можете указать цвет, который будет виден на изгибах модели, а также силу эффекта.
Изменяя цвет и “Glossiness”, можно добиться различных вариантов шероховатости тканей. Мне больше всего нравятся значения от “0.8” до “0.92”.

sofa green material sheen
Loading...

Для придания материалу эффекта вельвет, отлично подходит “Clearcoat”.
Я использовал текстуру потертостей в слотах “Clear Coat” и “Clear Coat Gloss”.

15
Loading...
sofa green material clearcoat
Loading...

Я использовал разные параметры “Tiling” текстур.
Для “Clear Coat Normals” использовал следующую текстур.

68
Loading...

Таким образом мы создали универсальный материал и его можно использовать для разных тканей, меняя параметры “Bumpiness”, “Glossiness” и “Clear Coat Factor”.

“Clear Coat Factor” - отвечает за силу эффекта вельвета.
“Glossiness” - придет эффект резиновости, рекомендую использовать от “0” до “0.3”.
“Bumpiness” - шелковистость материала.

Комбинируя эти настройки и черно-белые текстуры потертостей можно добиться интересных результатов.

Экспериментируйте, не важно что “Use Metalness” не относится к тканям никаким образом, просто крутите настройки и смотрите визуально, как это можно использоваться в своих целях.

result sofa green material
Loading...

На основе данного материала создайте несколько вариантов разных цветов, для нашего конфигуратора.

Смена материалов дивана по нажатию UI-кнопки

Настройка UI элементов

Сделайте дубликат кнопки “ChangeColor”, переименуйте в “ChangeMaterial”.

duplicate button change colors
Loading...

Передвиньте кнопку и установите ее над диваном.
Кнопка готова!

Применение и настройка скрипта changeMaterial

Добавьте скрипт “change-material.js” в папку  “scripts/configurator”.

Скрипт  “change-material.js”.



add change material script
Loading...

Примените скрипт к объекту дивана.
Укажите в “Trigger Button” нашу кнопку “ChangeMaterial”.
В параметре “Materials” введите число, отвечающее за количество меняемых материалов.
Назначьте материалы на слоты.

configure change material script
Loading...

Запустите проект, материалы меняются поочередно по нажатию кнопки “ChangeMaterial”.

result playcanvas material configurator
Loading...

Заключение

В этой части урока мы сделали конфигуратор смены материалов и научились создавать сложные материалы ткани.

Для подписчиков Patreon будет возможность просматривать проект SVOYA Apartment в режиме чтения, а также быстрое копирование-вставка необходимых ассетов и скриптов в свой личный проект.

Для всех остальных все необходимое найдете на странице этого урока.

Patreon
Вы читаете часть: 1 2 3 4 5

FAQ

1. О чём эта статья?
Статья продолжает разработку интерактивного проекта SVOYA Apartment в PlayCanvas и рассматривает новые функции, улучшающие взаимодействие пользователя со сценой.
2. Что нового добавляется в Part 3?
Третья часть посвящена дальнейшему развитию проекта, добавлению новых интерактивных возможностей и улучшению пользовательского интерфейса.
3. Нужно ли изучать предыдущие части?
Да. Part 3 основана на функциональности, реализованной в предыдущих частях, поэтому рекомендуется ознакомиться с ними заранее.
4. Какие задачи решает Part 3?
Статья показывает, как сделать проект более удобным, функциональным и интерактивным для конечного пользователя.
5. Подходит ли этот подход для коммерческих проектов?
Да. Рассматриваемые решения могут использоваться в коммерческих презентациях, конфигураторах и интерактивных WebGL-приложениях.
6. Можно ли использовать показанные методы в других проектах?
Да. Большинство техник легко адаптируются под любые проекты на базе PlayCanvas.
7. Почему важно постепенно добавлять интерактивность?
Пошаговый подход позволяет лучше контролировать логику проекта, производительность и удобство использования.
8. Можно ли расширять пользовательский интерфейс?
Да. PlayCanvas позволяет создавать дополнительные панели, меню, кнопки и элементы управления для более удобного взаимодействия со сценой.
9. Помогает ли интерактивность улучшить пользовательский опыт?
Да. Пользователи получают больше возможностей для изучения проекта и взаимодействия с его элементами.
10. Насколько важна производительность при разработке интерактивных сцен?
Очень важна. Даже хорошо реализованные функции могут ухудшить пользовательский опыт при недостаточной оптимизации.
11. Можно ли добавлять новые настройки и параметры объектов?
Да. Пользователи могут получать доступ к различным вариантам материалов, цветов и конфигураций объектов.
12. Подходит ли PlayCanvas для создания виртуальных шоурумов?
Да. Благодаря интерактивности и работе в браузере PlayCanvas часто используется для создания виртуальных презентаций и шоурумов.
13. Нужно ли знать JavaScript для реализации сложных функций?
Да. Для создания нестандартной логики и продвинутых возможностей обычно требуется программирование на JavaScript.
14. Можно ли обновлять проект после публикации?
Да. PlayCanvas позволяет развивать проект, добавлять новые функции и улучшать существующий функционал.
15. Какие преимущества даёт интерактивная WebGL-презентация?
Она позволяет пользователям исследовать пространство, взаимодействовать с объектами и получать более глубокое представление о проекте по сравнению со статичными изображениями.
16. Для кого предназначена эта статья?
Для разработчиков PlayCanvas, технических художников, архитектурных визуализаторов, дизайнеров интерьеров и всех, кто интересуется созданием интерактивных 3D-проектов для браузера.
Vasyl Lukianenko
Vasyl Lukianenko
3D Artist and Technical Author
Vasyl Lukianenko is a 3D artist and technical author focused on practical workflows, optimization, and production-ready techniques. He publishes tutorials, courses, and tools to help artists work faster and get cleaner results.
{{commentsMsg}}
  

Никто не оставил комментариев
{{comment.lastname}} {{comment.name}} {{comment.date}}
{{comment.text}}
Sponsored content