見て頂きありがとうございます。
以下のコードをHTMLファイルに書き、ローカルの環境で試していたのですが、
画像(earthmap1k.jpg)が球体に表示されません...
https://ics.media/tutorial-three/material_basic/
初心者なもので、コチラのサイトを見て勉強しているところでしたが...
基本の段階でつまずいてしまいました...
誰かおたすけください.....
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/105/three.min.js"></script> <script> // ページの読み込みを待つ window.addEventListener('load', init); // サイズを指定 const width = 960; const height = 540; function init() { // レンダラーを作成 const renderer = new THREE.WebGLRenderer({ canvas: document.querySelector('#myCanvas') }); renderer.setSize(width, height); // シーンを作成 const scene = new THREE.Scene(); // カメラを作成 const camera = new THREE.PerspectiveCamera(45, width / height, 1, 10000); camera.position.set(0, 0, +1000); // 球体を作成 const geometry = new THREE.SphereGeometry(300, 30, 30); // 画像を読み込む const loader = new THREE.TextureLoader(); const texture = loader.load('img/earthmap1k.jpg'); // マテリアルにテクスチャーを設定 const material = new THREE.MeshStandardMaterial({ map: texture }); // メッシュを作成 const mesh = new THREE.Mesh(geometry, material); // 3D空間にメッシュを追加 scene.add(mesh); // 平行光源 const directionalLight = new THREE.DirectionalLight(0xFFFFFF); directionalLight.position.set(1, 1, 1); // シーンに追加 scene.add(directionalLight); tick(); // 毎フレーム時に実行されるループイベントです function tick() { // メッシュを回転させる mesh.rotation.y += 0.01; // レンダリング renderer.render(scene, camera); requestAnimationFrame(tick); } } </script> </head> <body> <canvas id="myCanvas"></canvas> </body> </html>
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。