Konsep Utama:
Prasyarat:
Tutorial ini menggunakan perpustakaan Three.js. Anda boleh memasukkannya melalui CDN di HTML anda:
<🎜>
akan berfungsi sebagai sasaran rendering: div
<🎜>
Menyediakan persekitaran 3D:
Fail JavaScript (
earth.js
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)
renderer
Geometri sfera dan bahan Phong digunakan untuk mencipta model bumi:
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);
peta meresap dan benjolan meningkatkan realisme:
ingat untuk menggantikan ruang letak dengan laluan imej sebenar.
// 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;
animasi bumi:
fungsi
dan membuat kesan putaran: animate()
render()
Contoh Lengkap (Illustrative):
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
Penambahbaikan lebih lanjut:
tutorial mencadangkan penambangan ciri seperti:
kawalan orbit untuk putaran interaktif.latar belakang Starfield.
Atas ialah kandungan terperinci Membina Bumi dengan WebGL dan JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!