Three.js — це JavaScript-бібліотека для роботи з 3D-графікою у браузері. Вона використовує WebGL (Web Graphics Library), що дозволяє рендерити складні 3D-сцени без використання плагінів.
Основні можливості Three.js
Three.js спрощує створення та взаємодію з 3D-об’єктами, роблячи WebGL більш доступним для розробників. Основні функції бібліотеки:
✅ Рендеринг 3D-графіки через WebGL, з підтримкою тіней, освітлення та текстур.
✅ Створення геометричних об’єктів, таких як куби, сфери, площини, екструдовані форми тощо.
✅ Матеріали та текстури для реалістичного вигляду об’єктів.
✅ Камери (перспективна, ортографічна) для визначення вигляду сцени.
✅ Освітлення (точкові, спрямовані, навколишні джерела світла).
✅ Анімація та фізика руху об’єктів.
✅ Обробка взаємодії користувача (натискання, наведення, обертання камери).
✅ Підтримка моделей у форматах GLTF, OBJ, FBX та інших.
✅ Постобробка (ефекти, шейдери, розмиття, глибина різкості тощо).
Як працює Three.js?
Щоб створити 3D-сцену в Three.js, потрібно виконати кілька основних кроків:
1. Створення сцени
Це контейнер, у якому розташовуються всі 3D-об’єкти.
const scene = new THREE.Scene();
2. Додавання камери
Камера визначає, що бачить користувач. Найчастіше використовується перспективна камера.
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
camera.position.z = 5;
3. Додавання рендера
Рендер перетворює 3D-об’єкти у зображення, яке відображається на екрані.
const renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
4. Створення об’єкта (наприклад, куба)
Об’єкти в Three.js складаються з геометрії (форма) та матеріалу (колір, текстура).
const geometry = new THREE.BoxGeometry(); // Куб
const material = new THREE.MeshBasicMaterial({ color: 0x00ff00 }); // Зелений матеріал
const cube = new THREE.Mesh(geometry, material);
scene.add(cube);
5. Додавання анімації
Щоб об’єкт рухався, потрібно створити анімаційний цикл.
function animate() {
requestAnimationFrame(animate);
cube.rotation.x += 0.01;
cube.rotation.y += 0.01;
renderer.render(scene, camera);
}
animate();
Переваги та недоліки Three.js
Переваги
✅ Простий у використанні — не потрібно глибоко занурюватися у WebGL.
✅ Велика документація та ком’юніті — багато прикладів і готових рішень.
✅ Гарна продуктивність — WebGL дозволяє використовувати GPU для рендерингу.
✅ Підтримка 3D-моделей у різних форматах.
✅ Гнучкість — можна створювати як прості анімації, так і складні сцени.
Недоліки
❌ Високий поріг входу для новачків у 3D-графіці.
❌ Потребує оптимізації для роботи з великими сценами.
❌ Обмеження WebGL, наприклад, неможливість відтворювати 3D без підтримки апаратного прискорення.
Висновок
Three.js — це потужний інструмент для роботи з 3D-графікою у браузері. Він ідеально підходить для створення візуалізацій, ігор, інтерфейсів та інтерактивних додатків. Якщо ти хочеш працювати з 3D на вебі, ця бібліотека значно спростить процес.
Хочеш спробувати Three.js у своєму проєкті? 🚀