Три.js

Библиотека JavaScript для 3D-графики
Три.js
Оригинальный автор(ы)Рикардо Кабельо (Mr.doob)
Разработчик(и)Авторы Three.js [1]
Первоначальный выпуск24 апреля 2010 г. ; 14 лет назад [2] ( 2010-04-24 )
Репозиторий
  • github.com/mrdoob/three.js
Написано вJavaScript , GLSL
ТипБиблиотека JavaScript
ЛицензияМассачусетский технологический институт [1]
Веб-сайтthreejs.org

Three.jsкроссбраузерная библиотека JavaScript и интерфейс прикладного программирования (API), используемый для создания и отображения анимированной 3D компьютерной графики в веб-браузере с использованием WebGL . Исходный код размещен в репозитории на GitHub . [3]

Обзор

Three.js позволяет создавать 3D-анимацию с графическим процессором (GPU)-ускорением, используя язык JavaScript как часть веб-сайта, не полагаясь на фирменные плагины браузера . [4] [5] Это стало возможным благодаря появлению WebGL , [6] низкоуровневого графического API, созданного специально для Интернета. [7]

Высокоуровневые библиотеки, такие как Three.js, Babylon.js , Verge3D и многие другие, позволяют создавать сложные 3D-компьютерные анимации для отображения в браузере без усилий, необходимых для традиционного автономного приложения или плагина. [8]

История

Three.js был впервые выпущен Рикардо Кабельо на GitHub в апреле 2010 года. [2] Истоки библиотеки можно проследить до его участия в демосцене в начале 2000-х годов. [9] Первоначально код был разработан на языке ActionScript, используемом Adobe Flash , а затем был портирован на JavaScript в 2009 году. По мнению Кабельо, было два сильных момента, которые оправдывали отход от ActionScript: во-первых, JavaScript обеспечивал большую независимость от платформы. Во-вторых, приложения, написанные на JavaScript, не должны были быть предварительно скомпилированы разработчиком, в отличие от приложений Flash.

Дополнительный вклад Кабельо включает проектирование API, CanvasRenderer, SVGRenderer, а также ответственность за объединение изменений, внесенных различными участниками проекта.

С появлением WebGL Пол Брант смог довольно легко реализовать новую технологию рендеринга, поскольку Three.js был разработан с кодом рендеринга в качестве модуля, а не в самом ядре. [10] Бранислав Уличны, один из первых участников, начал работу с Three.js в 2010 году после того, как опубликовал ряд демонстраций WebGL на своем собственном сайте. Он хотел, чтобы возможности рендеринга 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 , path и другие
  • Анимация: арматура, прямая кинематика , обратная кинематика , морфинг и ключевой кадр
  • Освещение: окружающее, направленное, точечное и направленное; тени: отбрасываемые и принимаемые
  • Материалы: Lambert , Phong , плавное затенение, текстуры и многое другое.
  • Шейдеры: доступ ко всем возможностям языка шейдеров OpenGL ( GLSL ): блики на линзах , проход глубины и обширная библиотека постобработки
  • Объекты: сетки, частицы, спрайты, линии, ленты, кости и многое другое — все с уровнем детализации.
  • Геометрия: плоскость, куб, сфера, тор, 3D-текст и многое другое; модификаторы: токарный станок, выдавливание и трубка
  • Импорт/экспорт: собственная сериализация/десериализация через JSON , glTF , OBJ , USDZ и др.
  • Утилиты: полный набор функций времени и 3D-математики, включая просмотр усеченной пирамиды , матрицы , кватернионы , UV и многое другое.
  • Поддержка: Документация API находится в стадии разработки. Общедоступный форум и вики работают в полную силу.
  • Примеры: более 150 файлов примеров кодирования, а также шрифты, модели, текстуры, звуки и другие вспомогательные файлы.
  • Отладка: Stats.js, [14] WebGL Inspector, [15] Three.js Inspector [16]
  • Виртуальная и дополненная реальность через WebXR [17]

Three.js работает во всех браузерах с поддержкой WebGL 1.0 или WebGL 2.0.

Three.js доступен по лицензии MIT . [1]

Смотрите также

Ссылки

  1. ^ abc "Three.js/license". github.com/mrdoob . Получено 20 мая 2012 г. .
  2. ^ ab "Первый коммит". github.com/mrdoob . Получено 20 мая 2012 г. .
  3. ^ Mr.doob (2021-03-04), mrdoob/three.js , получено 2021-03-04
  4. ^ О3Д
  5. ^ Unity (игровой движок)
  6. ^ "Khronos выпускает финальную спецификацию WebGL 1.0". Khronos Group . 3 марта 2011 г. Получено 2 июня 2012 г.
  7. ^ "WebGL". Группа Khronos . 2011-07-19 . Получено 2022-01-22 .
  8. ^ Crossley, Rob (11 января 2010 г.). "Исследование: средняя стоимость разработки достигает 28 млн долларов". Intent Media Ltd. Архивировано из оригинала 13 января 2010 г. Получено 2 июня 2012 г.
  9. NVScene (24 марта 2015 г.). "Сессия NVScene 2015: Переосмысление колеса — последний раз (Рикардо Кабельо)". YouTube.
  10. ^ abc "Three.js White Paper". Github.com. 2012-05-21 . Получено 2013-05-09 .
  11. ^ "Release r118 · mrdoob/three.js" (Пресс-релиз) . Получено 2023-05-24 .
  12. ^ Mr.doob (2020-08-03), mrdoob/three.js , получено 2023-05-24
  13. ^ mrdoob (2012-11-26). "Возможности mrdoob/three.js Wiki GitHub". Github.com . Получено 2013-05-09 .
  14. ^ "Stats.js". Github.com . Получено 2013-05-09 .
  15. ^ "WebGL Inspector". Benvanik.github.com. Архивировано из оригинала 2023-03-14 . Получено 2013-05-09 .
  16. ^ "Three.js Inspector Labs". Zz85.github.com. Архивировано из оригинала 2023-01-27 . Получено 2013-05-09 .
  17. ^ "примеры three.js". threejs.org .

Дальнейшее чтение

  • Дирксен, Йос (2013). Изучение Three.js: библиотека JavaScript 3D для WebGL. Великобритания: Packt Publishing. ISBN 9781782166283.
  • Паризи, Тони (2012). Webgl Up and Running . Севастополь: Oreilly & Associates Inc. ISBN 9781449323578.
  • Seidelin, Jacob (2012). HTML5-игры: создание веселья с HTML5, CSS3 и WebGL . Чичестер, Западный Сассекс, Великобритания: John Wiley & Sons. стр.  412–414 . ISBN 978-1119975083.- «Three.js может облегчить разработку игр, взяв на себя заботу о низкоуровневых деталях»
  • Уильямс, Джеймс (2012). Изучение программирования игр HTML5: практическое руководство по созданию онлайн-игр с использованием Canvas, SVG и WebGL . Upper Saddle River, NJ: Addison-Wesley. стр. 117–120, 123– 131, 136, 140– 142. ISBN 978-0321767363.
  • Рааш, Джон (2011). Smashing WebKit . Чичестер: Wiley. стр. 181, 182, 216. ISBN 978-1119999133.
  • Официальный сайт
Взято с "https://en.wikipedia.org/w/index.php?title=Three.js&oldid=1269298651"