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 и другие
^ "Khronos выпускает финальную спецификацию WebGL 1.0". Khronos Group . 3 марта 2011 г. Получено 2 июня 2012 г.
^ "WebGL". Группа Khronos . 2011-07-19 . Получено 2022-01-22 .
^ Crossley, Rob (11 января 2010 г.). "Исследование: средняя стоимость разработки достигает 28 млн долларов". Intent Media Ltd. Архивировано из оригинала 13 января 2010 г. Получено 2 июня 2012 г.
↑ NVScene (24 марта 2015 г.). "Сессия NVScene 2015: Переосмысление колеса — последний раз (Рикардо Кабельо)". YouTube.
Дирксен, Йос (2013). Изучение Three.js: библиотека JavaScript 3D для WebGL. Великобритания: Packt Publishing. ISBN9781782166283.
Паризи, Тони (2012). Webgl Up and Running . Севастополь: Oreilly & Associates Inc. ISBN9781449323578.
Seidelin, Jacob (2012). HTML5-игры: создание веселья с HTML5, CSS3 и WebGL . Чичестер, Западный Сассекс, Великобритания: John Wiley & Sons. стр. 412–414 . ISBN978-1119975083.- «Three.js может облегчить разработку игр, взяв на себя заботу о низкоуровневых деталях»
Уильямс, Джеймс (2012). Изучение программирования игр HTML5: практическое руководство по созданию онлайн-игр с использованием Canvas, SVG и WebGL . Upper Saddle River, NJ: Addison-Wesley. стр. 117–120, 123– 131, 136, 140– 142. ISBN978-0321767363.