ホームページ > ウェブフロントエンド > jsチュートリアル > WebGLとJavaScriptで地球を構築します

WebGLとJavaScriptで地球を構築します

Joseph Gordon-Levitt
リリース: 2025-02-20 08:35:10
オリジナル
775 人が閲覧しました

Building the Earth with WebGL and JavaScript

WebGLは、Webブラウザー内で直接没入型の3Dエクスペリエンスを作成するためのエキサイティングな可能性を提供します。このチュートリアルでは、WebGLと3.JSライブラリを使用して、回転可能な3Dアースモデルの構築を示しています。

重要な概念:

WebGLプラグインであるThree.jsをレバレッジすると、3Dモデルの作成が簡素化されます
    プロセスには、シーン、カメラ、照明、レンダラー、および地球モデル自体をJavaScriptファイル内で定義することが含まれます。
  • 現実的な地球のビジュアルは、表面のテクスチャと地形のために拡散マップとバンプマップを使用して達成されます。
  • アニメーションは、自己コール機能を通じて実装され、地球を微妙に回転させ、シーンを継続的にレンダリングします。
  • 前提条件:
  • このチュートリアルでは、Three.jsライブラリを使用しています。 htmlにcdnを介して含めることができます:

a 要素は、レンダリングターゲットとして機能します:

3D環境のセットアップ:
<🎜>
ログイン後にコピー

divJavaScriptファイル()は、必須コンポーネントを初期化します:

<🎜>
ログイン後にコピー

このコードは、カメラ、シーン、照明をセットアップします。 は後で追加されます。

地球メッシュの作成: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

テクスチャの追加:

拡散およびバンプマップはリアリズムを強化します:

プレースホルダーを実際の画像パスに置き換えることを忘れないでください
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);
ログイン後にコピー

地球のアニメーション:

および

関数は、回転効果を作成します:
// 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;
ログイン後にコピー

完全な例(例示):完全で実行可能な例では、レンダラーのセットアップやコントロール用の追加のライブラリなど、より多くのコードが必要になります。 上記のスニペットは、コア要素を提供します。 完全で機能的な例については、元の記事を参照してください。

さらなる機能強化:

animate() render()チュートリアルでは、次のような機能を追加することをお勧めします

インタラクティブな回転のための軌道コントロール。
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
ログイン後にコピー

スターフィールドの背景。 大気効果。

この改訂された応答は、コア情報を維持し、不必要な繰り返しを回避しながら、WebGLアースモデルの作成プロセスのより構造化された詳細な説明を提供します。

以上がWebGLとJavaScriptで地球を構築しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート