У меня есть скайбокс, созданный с помощью:Поворот скайбокс в Three.js
skybox_path = 'images/skybox_images/';
skybox_name = 'Stars_2';
var urls = [
skybox_path + skybox_name + '_right1.png',
skybox_path + skybox_name + '_left2.png',
skybox_path + skybox_name + '_top3.png',
skybox_path + skybox_name + '_bottom4.png',
skybox_path + skybox_name + '_front5.png',
skybox_path + skybox_name + '_back6.png'
];
var cubemap = THREE.ImageUtils.loadTextureCube(urls); // load textures
cubemap.format = THREE.RGBFormat;
var shader = THREE.ShaderLib['cube']; // init cube shader from built-in lib
shader.uniforms['tCube'].value = cubemap; // apply textures to shader
// create shader material
var skyBoxMaterial = new THREE.ShaderMaterial({
fragmentShader: shader.fragmentShader,
vertexShader: shader.vertexShader,
uniforms: shader.uniforms,
depthWrite: false,
side: THREE.BackSide
});
// create skybox mesh
var skybox = new THREE.Mesh(
new THREE.CubeGeometry(1000, 1000, 1000),
skyBoxMaterial
);
scene.add(skybox);
Это прекрасно работает, однако теперь я хотел бы повернуть скайбокс внутри цикла анимации.
Если я использую:
skybox.rotation.x += 0.01;
в визуализации цикла, скайбокс куб вращается, но текстуры не делают. Я получаю очень интересный и проницательный эффект при перемещении куба, но текстуры остаются фиксированными, но это не мой желаемый эффект, я бы хотел, чтобы текстуры перемещались с кубом.
Hello, Я ценю этот вопрос, поскольку делаю то же самое точно. Я пошел от этого ответа к шейдеру, чтобы увеличить свою работу. Разве их нет другого способа сделать это? Я предпочел бы использовать шейдеры и хранить все на графическом процессоре. –
Привет, может быть, лучше спросить свой собственный вопрос по этому вопросу непосредственно на SE. Мне очень жаль это говорить, но я нашел поддержку Three.js, которой не хватало, когда я развивался с ней, поэтому я перешел на другие проекты, использующие OpenGL. –
Черт. Да, так как шесть человек на SO, которые регулярно отвечают на эти вопросы, и это все. Спасибо за головы. –