Ссылки на полезные ресурсы по ThreeJS.
Друзья, на данной странице, я постарался собрать все те ссылки на полезнейшие примеры, видео, статьи (и прочее), касаемо темы ThreeJS.
Данные ссылки могут бы полезны Вам тем, что Вы сможете почерпнуть из них массу информации, кода, примеров, пути совершенствования и обучения этим непростым темам: Three.JS, WEBGL, GLSL Shaders...
Данный список будет периодически добавляться.
Чтобы быстро что-то найти на странице, нажмите Ctrl+F
и ищите =))
Основные сайты, где можно (и нужно) искать примеры кода.
Это также список наиболее важных ресурсов, в основном огромные или большие сайты с массой примеров и исходными кодами.
- threejs.org
- Как работает WebGL (на русском)
- Документация THREE JS на русском (понятнее, конечно, вряд ли станет, но как вариант)
- stepik.org — Документация THREE JS на русском (более понятно [немного коммерческий])
- Docs THREE JS на англичанском
- Editor THREE JS (микро «Blender»)
- THREE JS примеры кода (офиц. сайт)
- sbcode.net (хорошая альтернативная документация с примерами)
- r105.threejsfundamentals.org (хорошая альтернативная документация с примерами)
- learningthreejs.com
- discoverthreejs.com (тоже документация)
- webglstudio.org
- WEB-книга по GLSL Shaders (шейдеры наше всё... Оо)
- shadertoy.com — сайт с примерами шейдеров и песочницей
- codepen.io
- github.com
- codesandbox
- jsfiddle.net
- stackoverflow.com
- youtube.com
- www.adoclib.com
- alteredqualia.com много колоссальных примеров (закрытый код, но красиво)
- codepen коллекция одго парня по теме.. (красиво всё..)
- github — WASM!!! Three.js and ammo.js WebWorker Test
- habr (на русском)
- youtube — WASM!!! Three.js and ammo.js WebWorker Test
- youtube — WASM!!! RUST 3D Graphics in the Browser: Boilerplate Setup and WASM Introduction (39 минут)
- youtube — WASM!!! Rust 3D Graphics in the Browser: 2D Graphics (~68 минут)
- youtube — WASM!!! From WebGL to WebGPU: A perspective from Babylon js by David Catuhe — доклад [EN] 20 минут
- youtube — Qgis2threejs - QGIS 3D map to Three.js - объемная карта местности с пометками пути
- youtube — Большой список воспроизведения по теме
- github — WebGL море ссылок по категориям | Скачать файлом (сами ссылки в файле README.md)
- callumprentice.github.io — много разных примеров (кроме всего, есть планеты и данные передаются с точки А в Б по линиям)
- stemkoski.github.io — очень много разных примеров
- kyrie.pe — много примеров с пояснением
- gpuweb.github.io — документация по WEBGPU
- surma.dev — статеечка по WEBGPU/WEBGL
Тест браузера на наличие версии WEBGL/модели видео карты и очень многого другого
browserleaks.com
webglreport.com
Как искать то, что невозможно найти?
Первое, что очевидно, через Google или через внутренние системы поиска...
Если они упорно выдают иные результаты, то берём и гуглим, к примеру, так:
some site:codesandbox.io
Если Вы нашли какой-то непонятный код, то его можно разбить на основные функции (или методы), которые Вам непонятны и нагуглить таким образом примеры, что поможет понять смысл кода. Также на данных сайтах есть масса примеров уже готовых решений, которые можно брать и использовать для себя.
Помните о том, что на этих сайтах есть системы тегов, которыми создатели кода (разработчики) помечают свои проекты. Теги часто дают возможность найти то, что скрыто из поисковой выдачи (нет возможности поисковикам внешним и внутренним понять, что за код внутри проекта и, соответственно, они не могут его дать Вам).
Часто встречаются ситуации, когда проект, которые написал человек, имеет непонятный/неинформативный заголовок или вовсе его не имеет, что не позволяет поисковым системам (гуглику и внутренним поисковикам самих этих сайтов), дать Вам то, что Вы хотите получить.
Поэтому, необходимо проявлять изощрённость и смекалку для того, чтобы что-то полезное найти, а также запастись вагоном времени и терпения.
Обычно, те задачи, которые стоят перед Вам уже кто-то решал и даже выложил в инете. Их только необходимо найти...
GLSL Shaders
- Разработчики шейдерного ПО (в браузерах [и в др. программах], по-идее, их интерпретатор шейдеров)
- community.khronos.org — здесь можно спросить о шейдерах (EN)
- webglfundamentals.org — Шейдеры и GLSL в WebGL (RU)
- gamedev.stackexchange.com — и здесь
- en.wikibooks.org
- youtube — shader tutorial series - episode 004 - setup glsl viewer (6 минут)
- youtube — OpenGL - geometry shaders (13 минут)
- youtube — 01 - What is a shader? (Shaderdev.com) [7 минут + другие видео с канала]
- kyrie.pe — About waves and shaders
- codesandbox — fragmentShader старинный светильник. Пример чёрно-белый и цветной шейдер по движению мыши (mousemove)
- codesandbox — vertexShader, анимация текста, как развивающийся флаг
- codesandbox — анимация линий, как-будто движутся по дороге авто ночью, свет фар эмитирует
Начните знакомиться с шейдерами по этой книге: WebGL. Программирование трехмерной графики
Оригинал: WebGL Programming Guide: Interactive 3D Graphics Programming with WebGL (OpenGL)
Все примеры книги на JSFiddleСкачать файлы из книги- Chapter 02. Your First Step with WebGL
- ch02/HelloCanvas
- ch02/HelloPoint1
- ch02/HelloPoint2
- ch02/ClickedPoints
- ch02/ColoredPoints
- Chapter 03. Drawing and Transforming Triangles
- ch03/MultiPoint
- ch03/HelloTriangle
- ch03/HelloQuad
- ch03/HelloQuad_FAN
- ch03/HelloTriangle_LINES
- ch03/HelloTriangle_LINE_STRIP
- ch03/HelloTriangle_LINE_LOOP
- ch03/TranslatedTriangle
- ch03/RotatedTriangle
- ch03/RotatedTriangle_Matrix
- ch03/ScaledTriangle_Matrix
- Chapter 04. More Transformations and Basic Animation
- ch04/RotatedTriangle_Matrix4
- ch04/RotatedTranslatedTriangle
- ch04/TranslatedRotatedTriangle
- ch04/RotatingTriangle
- ch04/RotatingTranslatedTriangle
- ch04/RotatingTriangle_withButtons
- Chapter 05. Using Colors and Texture Images
- ch05/MultiAttributeSize
- ch05/MultiAttributeSize_Interleaved
- ch05/MultiAttributeColor
- ch05/ColoredTriangle
- ch05/HelloTriangle_FragCoord
- ch05/TexturedQuad
- ch05/TexturedQuad_Repeat
- ch05/TexturedQuad_Clamp_Mirror
- ch05/MultiTexture
- Chapter 07. Toward the 3D World
- ch07/LookAtTriangles
- ch07/LookAtRotatedTriangles
- ch07/LookAtRotatedTriangles_modelViewMatrix
- ch07/LookAtTrianglesWithKeys
- ch07/OrthoView
- ch07/LookAtTrianglesWithKey_ViewVolume
- ch07/OrthoView_halfSize
- ch07/OrthoView_halfWidth
- ch07/PerspectiveView
- ch07/PerspectiveView_mvp
- ch07/PerspectiveView_mvpMatrix
- ch07/DepthBuffer
- ch07/Zfighting
- ch07/HelloCube
- ch07/ColoredCube
- ch07/ColoredCube_singleColor
- Chapter 08. Lighting Objects
- ch08/LightedCube
- ch08/LightedCube_animation
- ch08/LightedCube_ambient
- ch08/LightedTranslatedRotatedCube
- ch08/PointLightedCube
- ch08/PointLightedCube_animation
- ch08/PointLightedSphere
- ch08/PointLightedSphere_perFragment
- ch08/PointLightedCube_perFragment
- ch08/LightedCube_perFragment
- Chapter 09. Hierarchical Objects
- ch09/JointModel
- ch09/MultiJointModel
- ch09/MultiJointModel_segment
- Chapter 10. Advanced Techniques
- ch10/RotateObject
- ch10/PickObject
- ch10/PickFace
- ch10/HUD
- ch10/3DoverWeb
- ch10/Fog
- ch10/Fog_w
- ch10/RoundedPoints
- ch10/LookAtBlendedTriangles
- ch10/BlendedCube
- ch10/ProgramObject
- ch10/FramebufferObject
- ch10/Shadow
- ch10/Shadow_highp
- ch10/Shadow_highp_sphere
- ch10/OBJViewer
- ch10/RotatingTriangle_contextLost
- Gifts
- gifts/Particle
- gifts/Printf
- gifts/SpecularCube
- gifts/TextTexture
- gifts/ThreeDUI
- gifts/Wave
- gifts/WorldCoordinateSystem
- appendix/CoordinateSystem
- Appendix
- appendix/CoordinateSystem_viewVolume
- appendix/LoadShaderFromFiles
Форумы threejs.
Немаловажную роль в решении тех или иных задач может сыграть форум ThreeJS
Важно задавать вопросы или отвечать на EN, так как сообщество плёхо понимать по-русский.
Если Вы знаете только один язык, то используйте переводчик.
html5gamedevs.com — можно спросить по разработке игр (HTML5 | EN)
YouTube.
На этом ресурсе довольно много внятных и понятных видео по теме. Возможно, стоит искать на EN языке, тогда будет больше вероятности найти, что требуется.
Особенно необходимо выделить видосики Юры. Он даже когда-то на RU языке их пилил, ссылка на канал Юры.
Перечень ссылок с пояснениями.
- youtube — CLEAR WEBGL - чистый WEBGL
- jsfiddle — модификаторы для ThreeJS (типа как в 3D MAX)
- codesandbox — очень красивый пример слайдера на Three JS. Также здесь показаны модификаторы (4 штуки), которые Вы можете применить к любому объекту
- github — сами модификаторы | Скачать файл
- youtube [канал] — много инфы + продаёт свои уроки
- youtube — вступительная информация (доклад, 46 минут) по теме
- codepen (профиль Паши)
- github (профиль Паши)
- jsfiddle (профиль Паши)
- cywarr.github.io — свежее от Паши. tetraFlow | исходники
- codepen (профиль мой)
- THREE Rays (лучи)
- Three scroll animation (скролл / прокрутка — анимация)
- THREE JS Sound visual (визуализация звука)
- Three заполняющий свет
- Шейдерный огонь/пар/дым
- tympanus.net
- DRAG перемещение объектов + отражение объектов
- youtube — Helpers, map texture | Many material много материалов — in end Sphere Atmosphere
- discourse.threejs.org — Three запуск анимации модели (obj, glb)
- codepen — BUMP - выдавливание с помощью карты (чёрно-белого изображения) для 3D объектов (3D модели, простые примитивы)
- youtube — Light tutorial - свет в ThreeJS
- discoverthreejs.com — Light tutorial - свет в ThreeJS
- youtube — Glass стекло в ThreeJS
- Свечение (внутренне, внешнее, без PNG картинок)
- youtube — Custom Camera Paths in Three.js - пользовательский путь камеры
- dev.to — Animating Camera Movement in Three.js
- youtube — Alexander Korotaev | Теплый ламповый геймдев на React и WebGL | RSCONF 2019 (54 минуты)
- github — Threejs mouse events - события мыши
- github — Threejs Shader Glitch
- chowdera.com !!! — 3D performance optimization | talk about gltf file compression оптимизация импортируемых glb / gltf моделей
- npmjs !!! — glTF Pipeline - инструмент оптимизации glTF моделей
- threejs.org мягкий источник света, тени, анимируется / тоже на гите (код)
- stackoverflow — По поводу видео карты three js
- stackoverflow — Use multiple materials for merged geometries in Three.js — объединение геометрий и разных материалов в одну
- Animated wireframe lines — анимация линий решетки (внизу видео по этому поводу)
- Немного интересных примеров, в том числе анимация перехода объекта А в объект Б | сохранил у себя на всякий
- Отражение | сохранил у себя на всякий
- stringkun.github.io — Blur / размытие
- youtube — Three.js Realistic Material Reflection Tutorial in 8 Minutes (реалистичное отражение)
- github — WebGL Shaders (Simple Waves and Globe Rendering) - волны на поверхности, разные..
- github — планета с анимированными линиями (данные о полётах), путями от точки А до Б, красиво, возможна подгрузка своих данных (надо копать чужой код)
- desultoryquest.com — ШЕЙДЕРЫ. Drawing Anti-aliased Circular Points Using OpenGL/WebGL (делаем линии плавные, подробная статья)
- callumprentice.github.io — ШЕЙДЕРЫ. Губы (похоже), анимированный градиент на шейдере
- codesandbox — много анимированны с gsap примеров
- codepen — Animated Boxes (three.js + anime.js) [сам пример у меня не работает, но ка код подойдёт]
- stackoverflow — Antialiasing in Fragment Shader Three js
- stackoverflow — instance - улучшение производительности, за счёт использования видео карты (объекты закидываем на неё)
- threejs.org — instance - dummyObj/dummy (обезьянка)
- github.com — THREE.BAS — большая и красивая добавка к Three — можно заанимировать частицы из точки а в б. Много частиц шейдерных будет летать, как угодно, можно создать кривую и пустить по ней Скачать файл
- rudebox.org.ua — Линейная анимация при помощи Three.MeshLine (RU)
- openframe.io — много примеров
- mrdoob.com — Voxels Liquid | анимация кубов . Один возле другого стоят на плоскости, подпрыгивают вверх центральный под мышью, когда проводишь ею. Та функция, которая в них используется выпилена из более новых версий в Three. Сморится очень красиво даже на этом примере.
- codepen — нечто похожее на предыдущий пример. Применяются шейдеры и анимация волной | inverser.pro — сохранил у себя
- codesandbox — React+ThreeJS. Планета с красивой картой, не интерактивная, карта подобие фракталов (подсолнух)
- codesandbox — React+ThreeJS, шейдеры, очень красивая цифра 4 с частицами вокруг неё летающими
- codesandbox — здесь были ленты, но их кто-то сломал (возможно этот кто-то — typescript)
- codesandbox — много всего
- codesandbox — "дашащие" точки. Объекты на сцене (точки) расходятся из центра к краям, как-будто дышут
- tympanus.net — пластик, стекло
- github.com — пластик, стекло (тоже, что и выше)
Разные ссылки:
https://codepen.io/PierfrancescoSoffritti/pen/wobPVJ
http://www.ro.me/tech/demos/8/index.html
http://www.ro.me/tech/demos/1/index.html
http://jsfiddle.net/bvonkonsky/72g8bny7/ locations
https://jsfiddle.net/xg1o4ekr/378/
https://openprocessing.org/sketch/659736
slider https://jsfiddle.net/j5huqxpd/15/
https://codepen.io/TRodriguez/full/oNjyqJY manual
https://codepen.io/rachsmith/post/beginning-with-3d-webgl-pt-4-animation manual
https://codepen.io/ScavengerFrontend examples
https://codepen.io/collection/gcilD/?cursor=ZD0wJm89MCZwPTEmdj0yMA== examples
https://codepen.io/devildrey33/pen/jrkppB sphere vertex shader
https://jsfiddle.net/t3ye7ga9/7/ slider
https://alteredqualia.com/three/examples/webgl_custom_attributes_lines.html
https://github.com/mattdesl/three-line-2d
GSAP tweenmax three js
https://codepen.io/aaroniker/pen/bGGMNPd