3D и VR/AR Интерактивный сайт
import * as THREE from 'three'; // Сцена, камера и рендерер const scene = new THREE.Scene(); const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000); camera.position.z = 5; const renderer = new THREE.WebGLRenderer(); renderer.setSize(window.innerWidth, window.innerHeight); document.getElementById('scene-container').appendChild(renderer.domElement); // Освещение const ambientLight = new THREE.AmbientLight(0xffffff, 0.6); scene.add(ambientLight); const directionalLight = new THREE.DirectionalLight(0xffffff, 0.8); directionalLight.position.set(1, 1, 0); scene.add(directionalLight); // Загрузка модели const loader = new THREE.GLTFLoader(); loader.load('path/to/model.gltf', function (gltf) { scene.add(gltf.scene); }, undefined, function (error) { console.error(error); }); // Анимация function animate() { requestAnimationFrame(animate); renderer.render(scene, camera); } animate(); // Реализация WebXR для VR и AR async function setupXR() { renderer.xr.enabled = true; if ('xr' in navigator) { const xrSession = await navigator.xr.requestSession('immersive-vr'); renderer.xr.setSession(xrSession); } } setupXR();