Я просто наткнулся на Three.js, и мне это очень понравилось. Я новичок в JavaScript, но я хотел бы узнать больше об анимации и т. Д.Three.js как применить текстуру как материал
// UPDATE У меня есть этот код, но он ничего не делает. Если я попытаюсь сделать это без специальной текстуры, то он отобразит куб. Таким образом, все в настоящее время работает, кроме текстуры.
var camera, scene, renderer;
var mouseX = 0, mouseY = 0;
var windowHalfX = window.innerWidth/2;
var windowHalfY = window.innerHeight/2;
init();
animate();
function init() {
camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 1, 10000);
camera.position.z = 500;
scene = new THREE.Scene();
container = document.createElement('div');
document.body.appendChild(container);
var cubeTexture = new THREE.texture();
var loader = new THREE.ImageLoader();
loader.addEventListener("load", function(event) {
cubeTexture.image = event.content;
cubeTexture.needsUpdate = true;
});
loader.load("crate.gif");
var geometry = new THREE.CubeGeometry(300, 300, 300);
var material = new THREE.MeshBasicMaterial({ map: cubeTexture, overdraw: true });
renderer = new THREE.CanvasRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
var cube = new THREE.Mesh(geometry, material);
scene.add(cube);
container.appendChild(renderer.domElement);
document.addEventListener('mousemove', onDocumentMouseMove, false);
}
function onDocumentMouseMove(event) {
mouseX = (event.clientX - windowHalfX);
mouseY = (event.clientY - windowHalfY);
}
function animate() {
requestAnimationFrame(animate);
render();
}
function render() {
camera.position.x += (mouseX - camera.position.x) * 0.05;
camera.position.y += (- mouseY - camera.position.y) * 0.05;
camera.lookAt(scene.position);
renderer.render(scene, camera);
}
Любая помощь была бы принята с благодарностью!
Oh my , Спасибо большое! Сейчас почти отлично работает. Знаете ли вы, есть ли способ «ограничить», насколько движется камера? Я бы хотел, чтобы эффект был более тонким, если это возможно. Так что камера движется немного. Я попытался опустить переменные camera.position.x/.y в функции рендеринга, но это только замедляет движение вниз. – Andreas
Вы должны принять этот ответ, нажав на галочку, а затем, если у вас есть дополнительные проблемы, отправьте новый вопрос. Но сначала приложите некоторые серьезные усилия, чтобы попытаться понять это сами. :-) – WestLangley
Ну, я попробовал. Но, увидев, что единственное, что я когда-либо делал в JavaScript, - это проверка формы и отсутствие документации для Three.js, иногда это может быть довольно сложно. В любом случае, ответ теперь принят, извините за то, что он не сделал это немедленно. – Andreas