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: 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

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

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 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: 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: Asynchrone Programmierung und Promises

Die asynchrone Programmierung ist ein wesentlicher Bestandteil moderner Webentwicklung, da sie ermöglicht, dass Webanwendungen gleichzeitig auf versch

Funktionen in JavaScript

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

Javascript: Implementierung von Drag-and-Drop-Funktionen

Drag-and-Drop-Funktionen sind heutzutage ein wesentlicher Bestandteil vieler Webanwendungen. Sie ermöglichen es den Benutzern, Elemente auf einer Webs

Three.js: Implementieren von Partikelsystemen

Partikelsysteme sind ein leistungsstarkes Werkzeug in der Welt der 3D-Computergrafik. Sie ermöglichen es, komplexe und dynamische Effekte wie Rauch, F

JavaScript: Schleifen (for, while, do-while)

Schleifen sind ein entscheidender Bestandteil jeder Programmiersprache, einschließlich JavaScript. Sie ermöglichen es Entwicklern, Codeblöcke mehrmals