Демо можно увидеть hereThree.JS tiling образ, используемый в skybox mesh в WebGL?
Я использую довольно маленькое изображение, чтобы сделать skybox, и по какой-то причине оно растягивается вместо черепичного. Я нашел this учебник о том, как создать текстуру. Я отметил эти строки
var crateTexture = new THREE.ImageUtils.loadTexture('images/crate.gif');
crateTexture.wrapS = crateTexture.wrapT = THREE.RepeatWrapping;
crateTexture.repeat.set(5, 5);
var crateMaterial = new THREE.MeshBasicMaterial({ map: crateTexture });
var crate = new THREE.Mesh(cubeGeometry.clone(), crateMaterial);
crate.position.set(60, 50, -100);
scene.add(crate);
Так что я попытался с помощью этого метода для скайбоксе и не производить никаких изменений
var path = "/images/";
var urls = [
path + 'startile.png', path + 'startile.png',
path + 'startile.png', path + 'startile.png',
path + 'startile.png', path + 'startile.png'
];
var textureCube = THREE.ImageUtils.loadTextureCube(urls , new THREE.CubeRefractionMapping());
textureCube.wrapS = textureCube.wrapT = THREE.RepeatWrapping;
textureCube.repeat.set(10, 10);
var material = new THREE.MeshBasicMaterial({ color: 0xffffff, envMap: textureCube, refractionRatio: 0.95 });
// Skybox
var shader = THREE.ShaderLib[ "cube" ];
shader.uniforms[ "tCube" ].value = textureCube;
var material = new THREE.ShaderMaterial({
fragmentShader: shader.fragmentShader,
vertexShader: shader.vertexShader,
uniforms: shader.uniforms,
side: THREE.BackSide
}),
mesh = new THREE.Mesh(new THREE.CubeGeometry(1200, 1200, 1200), material);
//mesh.overdraw = false;
// mesh.rotation.x = Math.PI * 0.1;
scene.add(mesh);
Любые идеи?
человек, которого ты так здорово –