Three.js: Erstellen einer 3D-Welt mit mehreren Objekten

Was ist Three.js?
Three.js ist eine Open-Source-Bibliothek, die auf WebGL aufbaut, einem Webstandard, der die Hardwarebeschleunigung für 3D-Grafiken im Browser ermöglicht. Dank Three.js müssen Entwickler nicht von Grund auf neu beginnen, um 3D-Inhalte in ihre Webanwendungen zu integrieren. Es bietet eine Fülle von Funktionen und Tools, die die Erstellung von 3D-Szenen erheblich vereinfachen.
Vorteile von Three.js:
Plattformunabhängigkeit: Three.js kann auf verschiedenen Browsern und Geräten verwendet werden, ohne dass spezielle Plugins oder Erweiterungen erforderlich sind.
Leistungsstark: Die Bibliothek nutzt WebGL, um Hardwarebeschleunigung zu nutzen, was zu reibungslosen und schnellen 3D-Grafiken führt.
Große Community: Three.js hat eine aktive und wachsende Community, was bedeutet, dass Entwickler Zugang zu vielen Ressourcen und Unterstützung haben.
Grundlegende Konzepte in Three.js:
Bevor wir beginnen, sollten wir einige grundlegende Konzepte in Three.js verstehen:
Szene: Die Szene ist der Container, der alle 3D-Objekte und Lichtquellen enthält.
Kamera: Die Kamera bestimmt, was in der Szene sichtbar ist. Es gibt verschiedene Arten von Kameras, darunter Perspektiv- und Orthografiekameras.
Renderer: Der Renderer ist verantwortlich für das Rendern der Szene auf den Bildschirm. Three.js unterstützt verschiedene Renderer, einschließlich WebGLRenderer für WebGL.
Objekte: Objekte in Three.js repräsentieren 3D-Elemente wie Würfel, Kugeln, Modelle usw.
Materialien: Materialien definieren das Erscheinungsbild eines Objekts, einschließlich seiner Farbe, Textur und Reflektionseigenschaften.
Lichter: Lichtquellen beeinflussen die Beleuchtung in der Szene und können die Darstellung von Objekten stark verändern.
Grundlagen für die 3D-Welt setzen
Bevor wir tiefer in die Erstellung unserer 3D-Welt eintauchen, müssen wir einige grundlegende Schritte durchführen, um die Szene, die Kamera und den Renderer in Three.js einzurichten. Dieser Abschnitt wird sich auf diese grundlegenden Schritte konzentrieren.
1. Einrichten der HTML-Struktur:
Zuerst erstellen wir eine HTML-Datei und fügen die erforderlichen Script-Tags hinzu, um Three.js zu importieren. Stellen Sie sicher, dass Sie die Three.js-Bibliothek von der offiziellen Website heruntergeladen haben oder eine CDN-Verknüpfung verwenden.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Three.js 3D-Welt</title>
</head>
<body>
<!-- Hier wird unsere 3D-Welt gerendert -->
<div id="scene-container"></div>
<!-- Three.js-Bibliothek einbinden -->
<script src="path/to/three.js"></script>
<!-- Unsere eigene JavaScript-Datei einbinden -->
<script src="path/to/your-script.js"></script>
</body>
</html>
2. Einrichten der Szene, Kamera und Renderer:
In unserer JavaScript-Datei (your-script.js) erstellen wir eine Szene, eine Kamera und einen Renderer. Die Szene dient als Container für unsere 3D-Objekte.
// Initialisieren der Szene
const scene = new THREE.Scene();
// Initialisieren der Kamera (Perspektivkamera)
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
// Initialisieren des Renderers
const renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
// Fügen Sie den Renderer zum HTML-Dokument hinzu
document.getElementById( scene-container ).appendChild(renderer.domElement);
In diesem Code wird eine Perspektivkamera erstellt, die eine breite Sicht auf die Szene bietet. Sie können die Parameter der Kamera anpassen, um die Sichtweite und den Betrachtungswinkel zu ändern.
3. Hinzufügen eines Gitters und einer Hintergrundfarbe:
Um die Szene besser visualisieren zu können, fügen wir ein Gitter und eine Hintergrundfarbe hinzu.
// Hinzufügen eines Gitters zur Szene
const gridHelper = new THREE.GridHelper(10, 10);
scene.add(gridHelper);
// Festlegen der Hintergrundfarbe
scene.background = new THREE.Color(0xadd8e6); // Zum Beispiel hellblau
Das Gitter (GridHelper) dient als Referenzgitter und erleichtert die Positionierung von Objekten in der Szene.
Hinzufügen von Objekten und Beleuchtung
Nachdem wir die Grundlagen für unsere 3D-Welt mit Three.js eingerichtet haben, ist es an der Zeit, Objekte hinzuzufügen und Lichtquellen zu setzen, um unsere Szene zum Leben zu erwecken.
1. Objekte zur Szene hinzufügen:
Wir können verschiedene 3D-Objekte wie Würfel, Kugeln oder Modelle zur Szene hinzufügen. Hier ist ein Beispiel zum Hinzufügen eines einfachen Würfels:
// Erstellen eines Würfels
const cubeGeometry = new THREE.BoxGeometry();
const cubeMaterial = new THREE.MeshBasicMaterial({ color: 0xff0000 }); // Rot
const cube = new THREE.Mesh(cubeGeometry, cubeMaterial);
// Position des Würfels festlegen
cube.position.set(0, 0, 0);
// Objekt zum Szenengraphen hinzufügen
scene.add(cube);
Sie können ähnliche Schritte verwenden, um andere Objekte Ihrer Wahl hinzuzufügen. Beachten Sie, dass Sie Materialien, Farben und Positionen nach Ihren Vorstellungen anpassen können.
2. Hinzufügen von Lichtquellen:
Lichter sind entscheidend für die Darstellung von 3D-Objekten in Three.js. Hier sind Beispiele für das Hinzufügen verschiedener Lichtquellen:
// Umgebungslicht
const ambientLight = new THREE.AmbientLight(0x404040); // Weiches, gleichmäßiges Licht
scene.add(ambientLight);
// Punktlichtquelle
const pointLight = new THREE.PointLight(0xffffff); // Weißes Licht
pointLight.position.set(5, 5, 5);
scene.add(pointLight);
// Richtungslicht
const directionalLight = new THREE.DirectionalLight(0x00ff00); // Grünes Licht
directionalLight.position.set(-1, 0, 0); // Position des Lichts
scene.add(directionalLight);
Ambient Light erzeugt ein gleichmäßiges, umgebendes Licht, während Point Light von einer bestimmten Position aus strahlt, und Directional Light simuliert paralleles Licht, wie die Sonne.
3. Animieren der Szene:
Um die Szene zu animieren, können Sie eine Animations-Schleife erstellen und die Szene in jedem Frame aktualisieren. Hier ist ein einfaches Beispiel:
// Animations-Schleife
function animate() {
requestAnimationFrame(animate);
// Hier können Sie Objekte oder die Kamera animieren
renderer.render(scene, camera);
}
// Starten der Animation
animate();
In der Animations-Schleife können Sie die Positionen oder Eigenschaften von Objekten ändern, um Bewegungen und Interaktionen in Ihrer 3D-Welt zu erstellen.
Mit diesen Schritten haben Sie eine solide Grundlage für die Erstellung einer 3D-Welt mit mehreren Objekten in Three.js. Sie können jetzt weiter experimentieren, Objekte erstellen, Texturen hinzufügen und Ihre 3D-Szene nach Belieben gestalten. Denken Sie daran, dass die Möglichkeiten in Three.js nahezu unbegrenzt sind, und es gibt viele Ressourcen und Beispiele in der Community, die Ihnen bei Ihren Projekten helfen können. Viel Spaß beim Erstellen Ihrer eigenen 3D-Welt!
Weitere Artikel:

Einführung in Three.js und das 3D-Flugzeugspiel
Die Welt der 3D-Webentwicklung hat in den letzten Jahren enorm an Bedeutung gewonnen, und dank leistungsfähiger Bibliotheken wie Three.js können Entwi

JavaScript: Bedingte Anweisungen (if, else if, else)
JavaScript ist eine der wichtigsten Programmiersprachen für die Webentwicklung und ermöglicht es Entwicklern, interaktive und dynamische Webseiten zu

Three.js: Erstellen und Anzeigen eines einfachen Würfels
Three.js ist eine beliebte JavaScript-Bibliothek zur Erstellung von 3D-Grafiken im Webbrowser. Mit Three.js können Entwickler erstaunliche 3D-Szenen,

Javascript: Arbeiten mit Cookies
Cookies sind kleine Textdateien, die von Webseiten auf dem Computer des Benutzers gespeichert werden, um Informationen über die Sitzung oder die Websi

Animationen mit JavaScript und CSS
Selbst in der heutigen Ära des modernen Webdesigns und der fortschrittlichen Benutzeroberflächen sind Animationen ein unverzichtbares Element, um Webs

Three.js: Erstellen einer 3D-Welt mit mehreren Objekten
Three.js ist eine beliebte JavaScript-Bibliothek zur Erstellung von 3D-Grafiken in Webanwendungen. Mit Three.js können Entwickler beeindruckende 3D-We

JavaScript: Fehlerbehandlung (try, catch, throw)
JavaScript ist eine der wichtigsten Programmiersprachen im Webentwicklungsbereich. Sie ermöglicht die Erstellung dynamischer und interaktiver Webseite

Three.js: Erstellen eines Jump and Run-Spiels
Die Welt der 3D-Spieleentwicklung hat in den letzten Jahren enorme Fortschritte gemacht, und mit Bibliotheken wie Three.js können Entwickler atemberau

JavaScript: Ereignisbehandlung (Event Handling)
JavaScript ist eine der wichtigsten Programmiersprachen für die Entwicklung von Webanwendungen. Eine der Kernfunktionen von JavaScript ist die Ereigni

Funktionen in JavaScript
JavaScript ist eine weit verbreitete Programmiersprache, die hauptsächlich in Webanwendungen eingesetzt wird, um Interaktivität und Funktionalität auf