質問

Three.js を使用して単純な Skybox を作成しようとしていますが、立方体に適用しているテクスチャが外側でのみ機能し、立方体の内側には表示されないという問題が発生しました。

私のスカイボックスのコードは次のとおりです。

var path = assetPath + skyboxPrefix;
var urls = [ path + 'alpine_front.jpg',
             path + 'alpine_back.jpg',
             path + 'alpine_left.jpg',
             path + 'alpine_right.jpg',
             path + 'alpine_top.jpg' ];

var cubeTexture = THREE.ImageUtils.loadTextureCube( urls );

var shader = THREE.ShaderUtils.lib["cube"];
shader.uniforms["tCube"].texture = cubeTexture;

var skyboxMaterial = new THREE.ShaderMaterial( {
    uniforms        : shader.uniforms,
    fragmentShader  : shader.fragmentShader,
    vertexShader    : shader.vertexShader,
    depthWrite      : false
} );

var skyboxGeom = new THREE.CubeGeometry( 10000, 10000, 10000 );

skybox = new THREE.Mesh( skyboxGeom, skyboxMaterial );
skybox.flipSided = true;

scene.add(skybox);

こちらがライブバージョンです http://projects.harrynorthover.com/landscape/src/

よろしくお願いします!

役に立ちましたか?

解決

object.flipSided r50以降なくなってしまいました。と置き換えられました object.material = THREE.BackSide. 。チェック中 同じ機能を使用する更新された例 そしてこれも 移行 このような場合には、ページが便利です。

他のヒント

他の例の「フリンド」スイッチを見たことがあり、仕事に行くことはできませんでした(古くなっている可能性があります)。私のために働くもの(球を使って)負のスケールを設定しています:

skybox.scale.x = -1;
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top