body {
margin: 0;
}
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(60, innerWidth / innerHeight, 1, 1000);
camera.position.set(0, 0, 10);
var renderer = new THREE.WebGLRenderer({
antialias: true
});
renderer.setSize(innerWidth, innerHeight);
document.body.appendChild(renderer.domElement);
var controls = new THREE.OrbitControls(camera, renderer.domElement);
var tex = new THREE.TextureLoader().load(
"https://threejs.org/examples/textures/uv_grid_opengl.jpg"
);
var sphereGeom = new THREE.SphereBufferGeometry(1, 32, 32, 5);
// сфера
var innerSphere = new THREE.Mesh(
sphereGeom,
new THREE.MeshBasicMaterial({
map: tex
})
);
innerSphere.scale.setScalar(3);
scene.add(innerSphere);
window.addEventListener("mousemove", rotating, false);
var clock = new THREE.Clock();
// крутить сферу
let rotationFactorY = 0;
let rotationFactorX = 0;
const maxRotationSpeed = 0.1;
function rotating(e) {
rotationFactorY = 2 * (e.clientX - window.innerWidth / 2) / window.innerWidth;
rotationFactorX = 2 * (e.clientY - window.innerHeight / 2) / window.innerHeight;
}
renderer.setAnimationLoop(() => {
innerSphere.rotation.y += maxRotationSpeed * rotationFactorY;
// innerSphere.rotation.x += maxRotationSpeed * rotationFactorX;
renderer.render(scene, camera);
});
This Pen doesn't use any external CSS resources.