何かが欠けている必要があります。以前の例で見たように、配列を作成してそれをパラメータとして渡すことができると思っていましたが、その方法は明らかにTextureLoader()に変更されています。以下は私のコードです:私は、スカイボックスを作成しようとしているが、私はスカイボックスを作成しようとしている、と私は試してみました、すべてのチュートリアルでは動作しません基本的な
// Adds a skybox around the content
var skyBoxMaterials = [
new THREE.MeshBasicMaterial({ map: new THREE.TextureLoader('images/skybox/sky1.jpg') }),
new THREE.MeshBasicMaterial({ map: new THREE.TextureLoader('images/skybox/sky2.jpg') }),
new THREE.MeshBasicMaterial({ map: new THREE.TextureLoader('images/skybox/sky3.jpg') }),
new THREE.MeshBasicMaterial({ map: new THREE.TextureLoader('images/skybox/sky4.jpg') }),
new THREE.MeshBasicMaterial({ map: new THREE.TextureLoader('images/skybox/sky5.jpg') }),
new THREE.MeshBasicMaterial({ map: new THREE.TextureLoader('images/skybox/sky6.jpg') }),
];
var skyBoxGeom = new THREE.CubeGeometry(10000, 10000, 10000, 1, 1, 1);
skyBox = new THREE.Mesh(skyBoxGeom, skyBoxMaterials);
skyBox.position.set(0, 25.1, 0);
scene.add(skyBox);
私は現在、それを実行すると、私はエラーを取得「キャッチされない例外TypeErrorを:プロパティ 『x』は未定義のを読み取ることができません」サーバーが殺されるまで、コンソールが無限ループに。私は例、文書、または別の質問で正確な答えを見つけることができませんでした。助言がありますか?
UPDATE:いくつかのより多くの掘削後、私は最終的に私はcubeGeometry下のドキュメントに必要な例を見つけましたが、それはまだレンダリングされません。私のコードは以下の通りです:
// Adds a skybox around the content
var loader = new THREE.CubeTextureLoader();
loader.setPath('images/skybox/');
var textureCube = loader.load([
'sky1.jpg', 'sky2.jpg',
'sky3.jpg', 'sky4.jpg',
'sky5.jpg', 'sky6.jpg'
]);
var skyMaterials = new THREE.MeshBasicMaterial({ color: 0xffffff, envMap:
textureCube });
var skyBoxGeom = new THREE.CubeGeometry(10000, 10000, 10000, 1, 1, 1);
skyBox = new THREE.Mesh(skyBoxGeom, skyMaterials);
skyBox.position.set(0, 25.1, 0);
scene.add(skyBox);
私はコンソールにエラーメッセージがありませんが、キューブは全くレンダリングされていません。シーン内の他のオブジェクトは正常にレンダリングされます。
おかげで、それは同じことではありません。それは配列を使用しますが、同じイメージを私が見ているものから6回引っ張ります。私が間違っている? –
ああ、テクスチャには1つのjpgに6つの画像がすべて含まれていることがわかりました。 6つの別々のイメージがある場合、それはどのように構文を変更しますか? –
すべてを私の目の前で走らせることなく、プロジェクトをデバッグするのは難しいです。私の主張は、非常に多くの作業例があることでした。私は、キューブマップとパノラマ背景の3つまたは4つのバリエーションを見て覚えています。あなたはそれらを見渡し、あなたのニーズに最も適した例を見つける必要があるかもしれません。ここ –