Wprowadzenie renderowania 3D zmieniło sposób interakcji użytkowników z technologiami internetowymi. Po pierwsze, aplikacje internetowe stały się bardziej wciągające, zapewniając wciągające i interaktywne wrażenia za pośrednictwem przeglądarki internetowej.
Technologia ta została już chętnie przyjęta w dziedzinie gier i rzeczywistości rozszerzonej/wirtualnej. Oferuje realistyczny i wciągający sposób interakcji z wirtualnymi elementami.
Dowiedz się, jak renderować obiekty 3D w aplikacji React.
Podstawy modelowania i programowania 3D
Zanim zaczniesz renderować 3D, musisz wiedzieć o kilku kwestiach:
- Obiekty 3D zawierają pojedyncze punkty lub wierzchołki, które definiują ich strukturę w trzech wymiarach. Połączenie tych punktów tworzy twarze, które składają się na kształt obiektu na ekranie.
- Nowoczesne przeglądarki mają wbudowaną możliwość renderowania 3D przy użyciu technologii takich jak WebGL. Robią to, wykorzystując moc procesora graficznego w twoim komputerze do szybkiego renderowania modeli 3D i scen.
- Każdy obiekt 3D renderowany przez przeglądarkę składa się z trzech głównych elementów. Są to scena, kamera i renderer, i wszystkie one odgrywają kluczową rolę. Scena zapewnia podstawową platformę do konfigurowania wszystkich elementów 3D, w tym świateł i kamer. Kamera umożliwia oglądanie obiektu 3D pod różnymi kątami. Na koniec moduł renderowania montuje i wyświetla scenę na górze elementu HTML płótna.
Renderowanie 3D za pomocą Three.js i React Three Fibre
Three.js to biblioteka JavaScript, której można używać do renderowania obiektów 3D w przeglądarce internetowej. Korzystając z wbudowanych komponentów, możesz łatwo tworzyć i renderować obiekty 3D w swojej przeglądarce wraz z innymi funkcjami aplikacji React.
Pakiet react-three-fiber działa na Three.js. Upraszcza proces używania komponentów Three.js do tworzenia i renderowania obiektów 3D w przeglądarce. Co ciekawe, zapewnia również custom Haki reakcji które przydają się podczas tworzenia obiektów 3D w React.
Renderowanie obiektów 3D w aplikacji React
Wykonaj poniższe czynności, aby wyrenderować prosty kształt 3D w przeglądarce, a także model 3D utworzony w Blenderze. Jeśli nie znasz Blendera, dowiedz się, jak zacząć jako początkujący.
Utwórz aplikację React, uruchom terminal, aby uruchomić poniższe polecenie i zainstaluj wymagane zależności:
npm zainstaluj trzy @react-three/fiber @react-three/drei
Zainstaluj pakiety Three.js, react-three-fiber i react-three-drei. Biblioteka React-Three-Drei współpracuje z React-Three-Fiber do tworzenia scen i obiektów 3D.
Renderuj kształt 3D
Możesz renderować prosty kształt pudełka 3D w przeglądarce z bardzo małą ilością kodu. Otworzyć źródło/aplikacja.js plik, usuń cały kocioł kodu React i dodaj:
import Reagować z"reagować";
import {Płótno} z"@react-three/włókno";
import {Elementy sterowania orbitą} z"@react-three/drei";funkcjonowaćSkrzynka() {
powrót (
<siatka>
<boxBufferGeometryprzytwierdzać ="geometria" />
<siatkaLambertMateriałprzytwierdzać="materiał"kolor="gorący róż" />
siatka>
)
}
eksportdomyślnyfunkcjonowaćAplikacja() {
powrót (
<dzNazwa klasy=„Aplikacja”>
<dzNazwa klasy=„Nagłówek aplikacji”>
<Płótno>
<Sterowanie orbitą />
<światła otoczeniaintensywność ={0.5} />
<reflektorpozycja={[10,15,10]} kąt={0.3} />
<Skrzynka />
Płótno>
dz>
dz>
);
}
Ten kod wykonuje następujące czynności:
- The Skrzynka Component wykorzystuje komponenty mesh, boxBufferGeometry i meshLambertMaterial z react-three-fiber do renderowania pudełka 3D. Te trzy elementy współpracują ze sobą, tworząc kształt pudełka.
- Komponent boxBufferGeometry tworzy pudełko, a ten kod ustawia właściwość koloru komponentu meshLambertMaterial na gorący róż.
- Następnie renderuje element Canvas, w którym znajduje się komponent pudełkowy, ze światłem otoczenia, reflektorem i zestawem właściwości komponentu Orbit Controls.
- Właściwość komponentu światła otoczenia dodaje miękkie światło do płótna. Komponent spotLight dodaje skupione światło z określonej pozycji pod kątem 0,3. Wreszcie komponent OrbitControls pozwala sterować kamerą wokół obiektu 3D.
Zaimportuj i wyrenderuj komponent app.js w pliku index.js i uruchom serwer programistyczny, aby wyświetlić wyniki w przeglądarce pod adresem http://localhost: 3000.
Renderuj model 3D utworzony w Blenderze
Blender to narzędzie typu open source używane przez twórców z różnych dziedzin do tworzenia modeli 3D, efektów wizualnych i interaktywnych aplikacji 3D. Możesz użyć Blendera do tworzenia modeli 3D dla swojej aplikacji internetowej.
W tym samouczku wyrenderujesz model 3D BMW według wydajności SRT dostępny na Sketchfab.
Uznanie autorstwa Creative Commons
Aby rozpocząć, pobierz model ze Sketchfab w formacie GLTF (GL Transmission Format). Ten format ułatwia renderowanie modeli 3D w przeglądarce. Po zakończeniu pobierania otwórz folder modelu i przenieś plik modelu do katalogu publicznego w aplikacji React.
Teraz przejdź do pliku app.js i wypełnij go poniższym kodem.
- Zaimportuj następujące komponenty:
import {useGLTF, scena, sterowanie prezentacją} z"@react-three/drei";
- Utwórz komponent modelu i dodaj poniższy kod:
funkcjonowaćModel(rekwizyty){
konst {scena} = użyjGLTF("/bmw.glb");
powrót<prymitywnyobiekt={scena} {...rekwizyty} />
}eksportdomyślnyfunkcjonowaćAplikacja() {
powrót (
<dzNazwa klasy=„Aplikacja”>
<dzNazwa klasy=„Nagłówek aplikacji”>
dpr={[1,2]}
kamera cieni={{ulubiona: 45}}
styl={{"pozycja": "absolutny"}}
>
prędkość={1.5}
światowy zoom={0.5}
polarny={[-0.1, Matematyka.LICZBA PI / 4]}
>
<Scenaśrodowisko={zero}>
<Modelskala={0.01} />
Scena>
Elementy sterujące prezentacji>
Płótno>
dz>
dz>
);
} - Haczyk useGLTF z biblioteki React-three-drei definiuje zmienną sceny i przypisuje jej wartość pliku modelu znajdującego się w ścieżce „/bmw.glb”. Następnie komponent zwraca prymitywny obiekt, który tworzy scenę dla modelu 3D.
- Element Canvas renderuje główne składniki tworzące model z określonymi właściwościami, takimi jak współczynnik pikseli urządzenia (DPR), cienie, kąt kamery i styl.
- Następnie określasz właściwości składnika PresentationControls, takie jak szybkość i globalny zoom. Te właściwości określają, w jaki sposób będziesz sterować modelem na ekranie.
- Na koniec skonfiguruj komponent Stage, który montuje model na ekranie przeglądarki.
Uruchom serwer deweloperski, aby zaktualizować zmiany w aplikacji. Powinieneś zobaczyć model wyrenderowany w przeglądarce.
Renderowanie modeli 3D w Twojej aplikacji internetowej
Renderowanie modeli 3D w aplikacjach internetowych może przynieść kilka korzyści, takich jak poprawa doświadczenia użytkownika poprzez zapewnienie bardziej realistycznego i interaktywnego wrażenia 3D. W rezultacie użytkownicy mogą lepiej angażować się w produkt.
Jednak renderowanie elementów 3D może mieć swoje wady, takie jak negatywny wpływ na wydajność aplikacji. Modele 3D wymagają więcej zasobów do renderowania, co może powodować wolniejsze ładowanie aplikacji.