Three.js
3 minuty czytania
Three.js to biblioteka JavaScript, która pozwala na tworzenie trójwymiarowych aplikacji i animacji przeglądarkowych. Pozwala na łatwe tworzenie grafiki 3D, kamer, świateł, materiałów i innych elementów potrzebnych do tworzenia realistycznych, interaktywnych scen 3D.
Wraz z rozwojem języka Javascript powstają nowe możliwość użycia tego języka. W 2011 roku powstał webGL rozszerzenie do javascriptu, które dostarcza programistom interfejs grafiki 3D, które korzysta z elementów canvas pochodzących z HTML 5. W tym artykule przedstawię wam bibliotekę Three.js, która rozszerza możliwości webGL, a także uprzyjemnia pisanie elementów 3D.

Czym jest Three.js?
Three.js został po raz pierwszy wydany przez Ricardo Cabello na GitHub w kwietniu 2010 roku. Three.js został pierwotnie opracowany w języku ActionScript używanym przez Adobe Flash, a później został przeniesiony do JavaScript w 2009 roku. Cabello odszedł od ActionScriptu ze względu na to, że Javascript zapewniał większą niezależność oraz aplikacje napisane w Javascript nie musiałyby być wcześniej kompilowane przez programistę, w przeciwieństwie do aplikacji Flash. Three.js to oparty na Javascriptowym silniku WebGL, który może uruchamiać gry oparte na GPU i inne aplikacje oparte na grafice bezpośrednio z przeglądarki. Biblioteka three.js zapewnia wiele funkcji i interfejsów API do rysowania scen 3D w przeglądarce. Three.js również umożliwia tworzenie złożonych animacji komputerowych 3D do wyświetlania w przeglądarce i nie wymaga on żadnych dodatkowych aplikacji, czy też wtyczek.
Scena w Three.js
Każdy projekt w Three.js składa się z trzech elementów sceny, kamery oraz renderera. Scena w Three.js składa się z trzech współrzędnych:
- oś x - Jest to oś pozioma i jest skierowana w prawą stronę ekranu.
- oś y - Jest to oś pionowa i jest skierowana w górę ekranu.
- oś z - Jest to oś pozioma, która jest skierowana do obserwatora i to ona właśnie nadaje przestrzeni.
Każdy nowy obiekt jest ustawiony na współrzędnych (0,0,0) względem sceny. Aby elementy stały się widoczne istotne jest, aby do naszej sceny dodać oświetlenie punktowe lub ogólne.
Tworzenie i renderowanie obiektów 3D
W Three.js każdy obiekt 3D składa się z geometrii, materiału i siatki (mesh), która łączy te dwa elementy w renderowany model. Geometria określa kształt obiektu, np. sferę, sześcian czy bardziej złożoną bryłę, natomiast materiał odpowiada za jego wygląd – kolor, teksturę, przezroczystość czy efekty świetlne.
Po utworzeniu obiektu 3D należy dodać go do sceny i odpowiednio ustawić kamerę, aby był widoczny pod właściwym kątem. Renderowanie odbywa się poprzez aktualizowanie obrazu w każdej klatce przy użyciu silnika renderującego WebGL. Three.js automatycznie zarządza wieloma aspektami renderowania, co sprawia, że można skupić się na wizualnych i interaktywnych aspektach projektu, zamiast martwić się o niskopoziomowe detale grafiki 3D.
Animacja i interaktywność
Three.js pozwala na łatwe animowanie obiektów 3D poprzez manipulację ich pozycją, rotacją, skalą lub innymi właściwościami. W przypadku prostych animacji można wykorzystać pętlę renderowania, która cyklicznie aktualizuje scenę, stopniowo zmieniając wartości parametrów obiektu. Bardziej zaawansowane animacje mogą korzystać z interpolacji klatek kluczowych (keyframes) lub systemu szkieletowego, co jest szczególnie przydatne w przypadku postaci czy złożonych modeli.
Interaktywność w Three.js można osiągnąć poprzez reagowanie na zdarzenia użytkownika, takie jak ruch myszy, kliknięcia czy dotknięcia ekranu. Możliwe jest np. obracanie obiektów, przybliżanie widoku czy nawet wykrywanie kolizji pomiędzy elementami sceny. Dzięki integracji z bibliotekami takimi jak Three.js OrbitControls, użytkownicy mogą łatwo manipulować kamerą, eksplorując trójwymiarową przestrzeń w przeglądarce.
Obsługa modeli 3D z plików
Tworzenie obiektów za pomocą podstawowych brył geometrycznych może nie być wystarczające dla bardziej skomplikowanych projektów, dlatego Three.js obsługuje importowanie gotowych modeli 3D zapisanych w różnych formatach, takich jak GLTF, OBJ, FBX czy STL. Pliki te mogą zawierać nie tylko samą geometrię, ale również materiały, tekstury, animacje oraz inne dane potrzebne do realistycznego wyświetlenia modelu. Najczęściej zalecanym formatem do pracy z Three.js jest GLTF (GL Transmission Format), który oferuje dobrą kompresję, szybkie wczytywanie oraz wsparcie dla zaawansowanych efektów wizualnych. Dzięki dedykowanym loaderom, takim jak GLTFLoader, można w prosty sposób załadować model i dodać go do sceny. Integracja z zewnętrznymi edytorami 3D, np. Blenderem, pozwala na przygotowanie bardziej realistycznych i zoptymalizowanych modeli, które następnie mogą być wykorzystywane w aplikacjach webowych.
SPRAWDŹ SWOJĄ WIEDZE Z TEMATU threejs
Pytanie
1/5
Jakie są korzyści z korzystania z Three.js?
Przede wszystkim, biblioteka ta umożliwia tworzenie realistycznych wizualizacji 3D, co jest szczególnie przydatne w takich dziedzinach, jak gry komputerowe, wizualizacje architektoniczne czy projektowanie produktów. Three.js pozwala na łatwe tworzenie skomplikowanych scen 3D, dodawanie elementów interaktywnych, takich jak animacje czy ruchome obiekty, oraz modyfikowanie parametrów w czasie rzeczywistym. Dzięki wielu narzędziom i funkcjom oferowanym przez bibliotekę, programiści mogą łatwo tworzyć aplikacje webowe, które są bardziej interaktywne i atrakcyjne dla użytkowników. Three.js jest łatwy do nauki i obsługi, a także ma dużą społeczność użytkowników i źródła wsparcia, co czyni go idealnym narzędziem dla programistów o różnym poziomie doświadczenia.
Nasza oferta
Web development
Dowiedz się więcejMobile development
Dowiedz się więcejE-commerce
Dowiedz się więcejProjektowanie UX/UI
Dowiedz się więcejOutsourcing
Dowiedz się więcejPowiązane artykuły
Scroll-Triggered Storytelling: Jak tworzyć historie, które ożywają podczas przewijania
6 gru 2025
Scroll-triggered storytelling to jedna z najbardziej angażujących form prezentowania treści w sieci, która łączy narrację z interakcją użytkownika. Dzięki animacjom i reakcjom na przewijanie historia dosłownie ożywa na ekranie, prowadząc odbiorcę przez opowieść w dynamiczny i intuicyjny sposób. Tego typu doświadczenia nie tylko zwiększają uwagę i zapamiętywanie treści, ale także budują głębsze, bardziej emocjonalne połączenie z marką lub projektem.

3D w Web Designie: Jak wprowadzić trójwymiarowe elementy na Twoją stronę i dlaczego jest to wartościowe?
29 lis 2024
W dobie dynamicznego rozwoju technologii internetowych, coraz ważniejsze staje się eksplorowanie nowych, interaktywnych rozwiązań. Jednym z nich jest wprowadzanie elementów 3D w web designie. W tym artykule odkryjemy, jak zintegrować trójwymiarowe elementy z Twoją stroną i dlaczego to może okazać się cennym krokiem w wyróżnieniu Twojej marki w cyfrowym świecie.
Affinity – co to jest i do czego służy?
12 gru 2025
Affinity to nowoczesna i coraz popularniejsza alternatywa dla oprogramowania Adobe, oferująca profesjonalne narzędzia graficzne bez konieczności opłacania abonamentu. W skład ekosystemu wchodzą trzy zaawansowane programy: Affinity Designer, Photo i Publisher, które odpowiadają na potrzeby projektantów, fotografów oraz twórców publikacji. Dzięki wysokiej wydajności, intuicyjnemu interfejsowi i funkcjom pracy w czasie rzeczywistym rozwiązanie to zdobywa uznanie zarówno wśród początkujących twórców, jak i doświadczonych profesjonalistów.
Dlaczego warto wybrać Justinmind? Zalety i zastosowania narzędzia
11 gru 2025
Projektowanie aplikacji i stron internetowych wymaga dziś nie tylko kreatywności, ale także narzędzi, które pozwalają szybko przekuwać pomysły w realne, interaktywne doświadczenia. Jednym z takich rozwiązań jest Justinmind – platforma do prototypowania, która zyskuje coraz większą popularność wśród projektantów UX i UI. Dzięki bogatym możliwościom, intuicyjnej obsłudze i szerokiemu wachlarzowi integracji, narzędzie to świetnie sprawdza się na każdym etapie tworzenia produktu.
CDN-first Architecture: Nowy standard dla aplikacji webowych
10 gru 2025
Wraz z rosnącymi wymaganiami użytkowników i globalnym charakterem aplikacji webowych tradycyjne architektury przestają nadążać za tempem zmian. Coraz wyraźniej widać, że kluczowym czynnikiem przewagi staje się niskie opóźnienie i możliwość błyskawicznego skalowania. W odpowiedzi na te potrzeby powstało podejście CDN-first Architecture, w którym krawędź sieci staje się głównym miejscem wykonywania logiki aplikacyjnej i przechowywania danych.
Edge Caching – rozwiązanie dla stron o dużym ruchu
9 gru 2025
Edge Caching to jedna z kluczowych technologii, które pozwalają dużym i dynamicznie rozwijającym się stronom internetowym zachować wysoką wydajność mimo rosnącego ruchu. Dzięki przeniesieniu procesów obsługi treści bliżej użytkownika możliwe jest znaczące skrócenie czasu ładowania oraz odciążenie serwera głównego. W czasach, gdy każda sekunda decyduje o konwersjach, pozycjach w Google i doświadczeniu użytkownika, optymalizacja infrastruktury staje się niezbędna.
Platformy do zamawiania jedzenia - jak technologia napędza wzrost branży gastronomicznej?
8 gru 2025
Rynek dostaw jedzenia w ostatnich latach przeszedł prawdziwą transformację, a platformy cyfrowe stały się jednym z głównych motorów wzrostu branży gastronomicznej. To właśnie technologia - od aplikacji mobilnych po zaawansowane algorytmy - zmieniła sposób, w jaki restauracje docierają do klientów i organizują swoją pracę. Konsumenci oczekują dziś wygody, szybkości i personalizacji, a platformy zamówień online doskonale odpowiadają na te potrzeby.
Zobacz wszystkie artykuły