Heim >Web-Frontend >js-Tutorial >Aufbau der Erde mit WebGL und 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:
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ügenDiese ü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!