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-Welten mit mehreren Objekten erstellen, die im Browser gerendert werden können. In diesem Artikel werden wir durch die Schritte gehen, die erforderlich sind, um eine einfache 3D-Welt mit mehreren Objekten mithilfe von Three.js zu erstellen.

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:

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

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

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: Laden und Anzeigen eines 3D-Modells

Die Welt der 3D-Grafik und -Animationen hat in den letzten Jahren enorme Fortschritte gemacht. Dank JavaScript-Frameworks wie Three.js können Entwickl

Optimierung von Three.js-Anwendungen

Die Verwendung von Three.js zur Erstellung beeindruckender 3D-Anwendungen im Web hat in den letzten Jahren stark zugenommen. Entwickler auf der ganzen

JavaScript: Arbeiten mit Arrays

JavaScript ist eine der am weitesten verbreiteten Programmiersprachen der Welt und wird häufig verwendet, um dynamische Webseiten zu erstellen. Eine d

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: AJAX und Fetch-API

Die Webentwicklung hat sich in den letzten Jahren erheblich weiterentwickelt, und JavaScript spielt dabei eine entscheidende Rolle. Eine der leistungs

Einführung in Animationen in Three.js

Die Welt der 3D-Animationen hat sich in den letzten Jahren rasant entwickelt und bietet Entwicklern und Kreativen die Möglichkeit, beeindruckende visu

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