Domanda

Sto cercando di creare un semplice skybox usando tre.js ma sono imbattuto in un problema con la trama che sto applicando al cubo solo lavorando all'esterno e non mostrando all'interno del cubo.

.

Ecco il mio codice 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);
.

Ecco una versione dal vivo http://projects.harrynorthover.com/landscape/src/

Molte grazie in Avanzate!

È stato utile?

Soluzione

object.flipSided è andato via da R50.È stato sostituito con object.material = THREE.BackSide.Verifica Esempi aggiornati che utilizzano la stessa funzione e anche questo Migrazione La pagina dovrebbe essere utile su casi come questo.

Altri suggerimenti

Ho anche visto l'interruttore "Fluipsided" in altri esempi e non l'ho capito di lavorare (potrebbe essere obsoleto).Ciò che funziona per me (con una sfera) sta impostando una scala negativa:

skybox.scale.x = -1;
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top