Три.js
![]() | |
Оригинальный автор(ы) | Рикардо Кабельо ( Mr.doob ) |
---|---|
Разработчик(и) | Авторы Three.js [1] |
Первоначальный выпуск | 24 апреля 2010 г [2] |
Репозиторий | |
Написано в | JavaScript , GLSL |
Тип | библиотека JavaScript |
Лицензия | С [1] |
Веб-сайт | триджс |
Three.js — это кроссбраузерная библиотека JavaScript и интерфейс прикладного программирования (API), используемые для создания и отображения анимированной трехмерной компьютерной графики в веб-браузере с использованием WebGL . Исходный код размещен в репозитории на GitHub . [3]
Обзор
[ редактировать ]Three.js позволяет создавать 3D-анимацию с ускорением графического процессора (GPU) с использованием языка JavaScript как часть веб-сайта, не полагаясь на собственные плагины браузера . [4] [5] Это возможно благодаря появлению WebGL , [6] низкоуровневый графический API, созданный специально для Интернета. [7]
Библиотеки высокого уровня, такие как Three.js или GLGE , Scene.js, PhiloGL и многие другие, позволяют создавать сложные компьютерные 3D-анимации для отображения в браузере без усилий, необходимых для традиционного автономного приложения или плагина. [8]
История
[ редактировать ]Three.js был впервые выпущен Рикардо Кабельо на GitHub в апреле 2010 года. [2] Истоки библиотеки можно проследить до его участия в демосцене в начале 2000-х. [9] Первоначально код был разработан на языке ActionScript , используемом Adobe Flash , а затем был перенесен на JavaScript в 2009 году. По мнению Кабельо, было два сильных момента, оправдывающих отход от ActionScript: во-первых, JavaScript обеспечивал большую независимость от платформы. Во-вторых, приложения, написанные на JavaScript, не требуют предварительной компиляции разработчиком, в отличие от Flash-приложений.
Дополнительный вклад Cabello включает разработку API, CanvasRenderer, SVGRenderer и ответственность за объединение коммитов различных участников в проект.
С появлением WebGL Пол Брант смог довольно легко реализовать новую технологию рендеринга, поскольку Three.js был разработан с использованием кода рендеринга в виде модуля, а не в самом ядре. [10] несколько демоверсий WebGL Бранислав Уличный, один из первых участников, начал работать с Three.js в 2010 году после того, как разместил на своем сайте . Он хотел, чтобы возможности средства рендеринга WebGL в Three.js превосходили возможности CanvasRenderer или SVGRenderer. [10] Его основной вклад обычно связан с материалами, шейдерами и постобработкой.
Вскоре после появления WebGL 1.0 в Firefox 4 в марте 2011 года к нему присоединился Джошуа Ку. Свою первую демоверсию Three.js для 3D-текста он создал в сентябре 2011 года. [10] Его вклад часто связан с созданием геометрии.
Начиная с версии 118, Three.js по умолчанию использует WebGL 2.0. Старая версия стандарта по-прежнему доступна через класс WebGL1Renderer. [11]
У Three.js более 1700 участников на GitHub. [12]
Функции
[ редактировать ]Three.js включает в себя следующие функции: [13]
- Эффекты: анаглиф, косоглазие и параллаксный барьер.
- Сцены: добавление и удаление объектов во время выполнения; туман
- Камеры: перспективная и ортогональная; контроллеры: трекбол, FPS , путь и многое другое
- Анимация: арматура, прямая кинематика , обратная кинематика , морфинг и ключевой кадр.
- Освещение: окружающее, направленное, точечное и точечное освещение; тени: отбрасывать и получать
- Материалы: Ламберт , Фонг , плавная штриховка, текстуры и многое другое.
- Шейдеры: доступ ко всем возможностям OpenGL Shading Language ( GLSL ): блики , проход глубины и обширная библиотека постобработки.
- Объекты: сетки, частицы, спрайты, линии, ленты, кости и многое другое — все с уровнем детализации.
- Геометрия: плоскость, куб, сфера, тор, трехмерный текст и многое другое; модификаторы: токарный станок, выдавливание и трубка.
- Импорт/экспорт: встроенная сериализация/десериализация через JSON , glTF , OBJ , USDZ и другие.
- Утилиты: полный набор функций времени и трехмерных математических функций, включая усеченную пирамиду , матрицу, кватернион , UV и многое другое.
- Поддержка: документация по API находится в стадии разработки. Публичный форум и вики работают в полную силу.
- Примеры: более 150 файлов с примерами кодирования, а также шрифты, модели, текстуры, звуки и другие вспомогательные файлы.
- Отладка: Stats.js, [14] WebGL-инспектор, [15] Инспектор Three.js [16]
- Виртуальная и дополненная реальность через WebXR [17]
Three.js работает во всех браузерах, поддерживаемых WebGL 1.0.
Three.js доступен по лицензии MIT . [1]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Jump up to: а б с «Три.js/лицензия» . github.com/mrdoob . Проверено 20 мая 2012 г.
- ^ Jump up to: а б «Первый коммит» . github.com/mrdoob . Проверено 20 мая 2012 г.
- ^ Mr.doob (04 марта 2021 г.), mrdoob/three.js , получено 4 марта 2021 г.
- ^ О3D
- ^ Unity (игровой движок)
- ^ «Хронос выпускает окончательную спецификацию WebGL 1.0» . Группа компаний «Хронос» . 3 марта 2011 года . Проверено 2 июня 2012 г.
- ^ «ВебГЛ» . Группа «Хронос» . 19 июля 2011 г. Проверено 22 января 2022 г.
- ^ Кроссли, Роб (11 января 2010 г.). «Исследование: средняя стоимость разработки достигает 28 миллионов долларов» . Intent Media Ltd. Архивировано из оригинала 13 января 2010 года . Проверено 2 июня 2012 г.
- ^ НВСцена. «Сессия NVScene 2015: изобретая колесо заново — в последний раз (Рикардо Кабельо)» . Ютуб.
- ^ Jump up to: а б с «Белая книга Three.js» . Гитхаб.com. 21 мая 2012 г. Проверено 9 мая 2013 г.
- ^ «Релиз r118 · mrdoob/three.js» (Пресс-релиз) . Проверено 24 мая 2023 г.
- ^ Mr.doob (03 августа 2020 г.), mrdoob/three.js , получено 24 мая 2023 г.
- ^ мрдуб (26 ноября 2012 г.). «Особенности mrdoob/three.js Wiki GitHub» . Гитхаб.com . Проверено 9 мая 2013 г.
- ^ "Stats.js" . Гитхаб.com . Проверено 9 мая 2013 г.
- ^ «Инспектор WebGL» . Benvanik.github.com . Проверено 9 мая 2013 г.
- ^ «Лаборатории инспекторов Three.js» . Zz85.github.com . Проверено 9 мая 2013 г.
- ^ «Примеры трех.js» . сайт Threejs.org .
Дальнейшее чтение
[ редактировать ]- Дирксен, Йос (2013). Изучение Three.js: 3D-библиотека JavaScript для WebGL . Великобритания: Packt Publishing. ISBN 9781782166283 .
- Паризи, Тони (2012). Webgl запущен и работает . Севастополь: ISBN Oreilly & Associates Inc. 9781449323578 .
- Зейдлин, Джейкоб (2012). HTML5-игры: создаем удовольствие с помощью HTML5, CSS3 и WebGL . Чичестер, Западный Суссекс, Великобритания: John Wiley & Sons. стр. 412–414. ISBN 978-1119975083 . - «Three.js может упростить разработку игр, позаботившись о деталях низкого уровня»
- Уильямс, Джеймс (2012). Изучение программирования игр на HTML5: практическое руководство по созданию онлайн-игр с использованием Canvas, SVG и WebGL . Река Аппер-Сэддл, Нью-Джерси: Аддисон-Уэсли. стр. 117–120 , 123–131, 136, 140–142. ISBN 978-0321767363 .
- Рааш, Джон (2011). Разрушение WebKit . Чичестер: Уайли. стр. 181, 182, 216. ISBN. 978-1119999133 .
Внешние ссылки
[ редактировать ]
- программное обеспечение 2010 года
- API 3D-графиков сцен
- Кроссплатформенное программное обеспечение
- Бесплатное программное обеспечение для 3D-графики
- Графические библиотеки
- Библиотеки JavaScript
- Программное обеспечение, использующее лицензию MIT
- ВебГЛ
- Незавершенные статьи по компьютерному программированию