В этом проекте используется технологический стек three.js, моделирование выполняется в blender, а затем рендеринг запекается для создания сцены, которая экспортируется в формате glb и отображается в веб-интерфейсе.
Этот проект представляет собой демонстрацию концепции цифровой выставки. Если есть какие-либо недостатки, пожалуйста, будьте снисходительны. Вы можете создавать проблемы или задавать вопросы.
Перемещение: W
/S
/A
/D
Управление перемещением на мобильных устройствах: виртуальный джойстик
Прыжок: пробел
Контроль угла обзора: перетаскивание левой кнопкой мыши
├── src # исходный код
│ ├── assets # папка с ресурсами (аудио, текстуры, модели)
│ │── audio # аудио (создание локационного аудио)
| │── character # персонажи (управление моделями персонажей)
| │── controlManage # управление клавиатурой (управление состоянием клавиатуры или виртуального джойстика)
| │── core # основные классы (включая камеру, рендерер, сцену и т. д.)
| │── css3DRenderer # отвечает за объединение элементов DOM с содержимым WebGL (рендеринг элементов iframe на экране компьютера)
| │── environment # класс сцены (создание моделей карт, рисование текстур выставок, отражение от земли)
| │── lib # расширения three.js
| │── loader # загрузчик классов (управление загрузчиками glb, texture, audio и т.д.)
| │── rayCasterControls # класс лучевого проектора (обнаружение взаимодействия между персонажами и рамками)
| │── ui # класс UI (отвечает за управление частью пользовательского интерфейса страницы рендеринга, например, страницей загрузки, окном сведений, виртуальным джойстиком)
| | │── Emitter.ts # класс диспетчера событий (различные типы рассылки событий)
| | └── typeAssert.ts # функции инструментального типа
| │── world # основной класс игры (используется для управления основными элементами игрового мира, включая среду, персонажей, взаимодействие с обнаружением и аудио и т. д.)
| │── main.ts # функция входа на страницу
| └── Constants.ts # определение констант (определение адресов моделей/текстур/медиаресурсов, рассылка событий и т. д.)
Вдохновлённый демонстрационными проектами на официальном сайте threejs, я попробовал множество решений при разработке этого проекта. Я также видел много похожих проектов, но большинство из них являются платными (структура слишком мала). С другой стороны, на зарубежных сайтах GitHub существует множество отличных 3D открытых проектов. Это также причина того, почему технологии других людей развиваются так быстро. Поэтому я всё ещё считаю, что не стоит скупиться на вклад в технологии и делиться ими. Открытые проекты могут вдохновлять больше людей и помогать друг другу, чтобы лучше продвигать развитие отрасли.
Открытое программное обеспечение нелегко разрабатывать, пожалуйста, поставьте ⭐⭐⭐⭐
Открытое программное обеспечение непросто разрабатывать, ваша поддержка — моя постоянная движущая сила! Этот проект является открытым проектом, пожертвования являются добровольными.
Чтобы настроить среду разработки:
# Клонировать репозиторий
# Установить зависимости
npm i
# Запустить локальный сервер разработки
npm run dev
Чтобы обслуживать производственную сборку:
# Установите зависимости, если это ещё не сделано - 'npi i'
# Сборка для производства
npm run build
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )