Heim >Web-Frontend >js-Tutorial >Aufbau der Erde mit WebGL und JavaScript

Aufbau der Erde mit WebGL und JavaScript

Joseph Gordon-Levitt
Joseph Gordon-LevittOriginal
2025-02-20 08:35:10777Durchsuche

Building the Earth with WebGL and JavaScript

WebGL bietet aufregende Möglichkeiten, um immersive 3D -Erlebnisse direkt in Webbrowsern zu erstellen. Dieses Tutorial zeigt, dass ein rotierbares 3D -Erdmodell mit WebGL und der Three.js -Bibliothek erstellt wird.

Schlüsselkonzepte:

  • Nutzung von drei.js, ein WebGL -Plugin, vereinfacht die 3D -Modellerstellung.
  • Der Prozess beinhaltet die Definition einer Szene, Kamera, Beleuchtung, Renderer und dem Erdmodell selbst in einer JavaScript -Datei.
  • realistische Erdvisuals werden unter Verwendung von diffusen und Bumpkarten für die Oberflächenstruktur und Topographie erreicht.
  • Animation wird durch Selbsternennungsfunktionen implementiert, die Erde subtil dreht und die Szene kontinuierlich rendert.

Voraussetzungen:

Dieses Tutorial verwendet die Three.js -Bibliothek. Sie können es über ein CDN in Ihr HTML einfügen:

<code class="language-html"></code>

a div Element dient als Rendering -Ziel:

<code class="language-html"><div id="container"></div>
</code>

Einrichten der 3D -Umgebung:

Die JavaScript -Datei (earth.js) initialisiert wesentliche Komponenten:

<code class="language-javascript">var scene, camera, light, renderer, earthObject;

var WIDTH = window.innerWidth - 30,
    HEIGHT = window.innerHeight - 30;

var angle = 45,
    aspect = WIDTH / HEIGHT,
    near = 0.1,
    far = 3000;

var container = document.getElementById('container');

camera = new THREE.PerspectiveCamera(angle, aspect, near, far);
camera.position.set(0, 0, 0);
scene = new THREE.Scene();

light = new THREE.SpotLight(0xFFFFFF, 1, 0, Math.PI / 2, 1);
light.position.set(4000, 4000, 1500);
light.target.position.set(1000, 3800, 1000);

// ... (Renderer setup and Earth mesh creation will follow)</code>

Dieser Code richtet Kamera, Szene und Beleuchtung ein. Der renderer wird später hinzugefügt.

Erstellen des Erdmasches:

Eine Kugelgeometrie und Phongmaterial werden verwendet, um das Erdmodell zu erstellen:

<code class="language-javascript">var earthGeo = new THREE.SphereGeometry(30, 40, 400),
    earthMat = new THREE.MeshPhongMaterial();

var earthMesh = new THREE.Mesh(earthGeo, earthMat);
earthMesh.position.set(-100, 0, 0);
earthMesh.rotation.y = 5;

scene.add(earthMesh);</code>

Texturen hinzufügen:

diffuse und bumpkarten verbessern den Realismus:

<code class="language-javascript">// Diffuse map
earthMat.map = THREE.ImageUtils.loadTexture('images/earthmap1k.jpg');

// Bump map
earthMat.bumpMap = THREE.ImageUtils.loadTexture('images/elev_bump_16ka.jpg');
earthMat.bumpScale = 8;</code>

Denken Sie daran, Platzhalter durch tatsächliche Bildwege zu ersetzen.

Animierung der Erde:

Die Funktionen animate() und render() erstellen den Rotationseffekt:

<code class="language-javascript">function animate() {
    requestAnimationFrame(animate);
    render();
}

function render() {
    var clock = new THREE.Clock(),
        delta = clock.getDelta();

    earthMesh.rotation.y += rotationSpeed * delta; // rotationSpeed needs to be defined
    renderer.render(scene, camera);
}

animate(); // Start the animation</code>

Vollständiges Beispiel (veranschaulichend): Ein vollständiges, runnierbares Beispiel würde mehr Code erfordern, einschließlich Renderer -Setup und möglicherweise zusätzliche Bibliotheken für Steuerelemente. Die obigen Ausschnitte liefern die Kernelemente. Ein vollständiges, funktionales Beispiel finden Sie im Originalartikel.

Weitere Verbesserungen:

Das Tutorial schlägt vor, Funktionen wie:

hinzuzufügen
  • Umlaufbahnsteuerungen für die interaktive Rotation.
  • Ein Sternenfeldhintergrund.
  • atmosphärische Effekte.

Diese überarbeitete Antwort liefert eine strukturiertere und detailliertere Erklärung des WebGL -Erstellungsprozesses für das WebGL Earth Model, wobei die Kerninformationen beibehalten und unnötige Wiederholungen vermieden werden.

Das obige ist der detaillierte Inhalt vonAufbau der Erde mit WebGL und JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn