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:

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

Einführung in Three.js und 3D-Modellierung
Die Welt der 3D-Modellierung hat in den letzten Jahren erhebliche Fortschritte gemacht und ist nicht mehr nur den Profis vorbehalten. Mit fortschrittl

Javascript: Modularität und ES6-Module
Die Entwicklung von JavaScript hat in den letzten Jahren enorme Fortschritte gemacht, insbesondere durch die Einführung von ES6 (ECMAScript 2015) und

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

Three.js: Implementieren von Kollisionserkennung in einer 3D-Welt
Three.js ist eine leistungsstarke JavaScript-Bibliothek, die die Erstellung von 3D-Webanwendungen erleichtert. Eine der wichtigsten Funktionen, die in

Three.js: Hinzufügen von Lichtern und Schatten
Die Bibliothek Three.js ist eine leistungsstarke JavaScript-Bibliothek, die die Erstellung von 3D-Grafiken im Webbrowser erleichtert. Eine der wichtig

JavaScript: Schleifen (for, while, do-while)
Schleifen sind ein entscheidender Bestandteil jeder Programmiersprache, einschließlich JavaScript. Sie ermöglichen es Entwicklern, Codeblöcke mehrmals

Einführung in JavaScript: Die Grundlagen
JavaScript ist eine der beliebtesten Programmiersprachen der Welt und bildet das Rückgrat vieler moderner Webanwendungen. Es ermöglicht die Interaktio

JavaScript: Erstellung eines Bildergalerie-Sliders
Bildergalerie-Slider sind eine häufige und ansprechende Möglichkeit, Bilder oder Inhalte auf Websites zu präsentieren. Sie ermöglichen es, verschieden

Three.js: Benutzerinteraktionen wie Mausklicks oder Tastatureingaben
Die Erstellung beeindruckender 3D-Szenen und -Modelle mit Three.js ist bereits faszinierend, aber um wirklich immersive und benutzerfreundliche Anwend