three实现室内桌上2个三维显示器显示iframe和mp4视频效果代码
代码语言:html
所属分类:三维
代码描述:three实现室内桌上2个三维显示器显示iframe和mp4视频效果代码
代码标签: three 室内 桌上 2 三维 显示器 显示 iframe mp4 视频
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="zh-CN"> <head> <title>Three.js 可交互iframe和视频屏幕 - 增强版</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0"> <style> body { margin: 0; overflow: hidden; } #info { position: absolute; top: 10px; width: 100%; text-align: center; color: white; font-family: Arial, sans-serif; text-shadow: 2px 2px 4px rgba(0,0,0,0.8); } iframe { width: 1024px; height: 768px; border: 0px; } </style> </head> <body> <div id="info">温馨的办公室 - 可交互的iframe和视频纹理显示器</div> <video id="video" loop crossOrigin="anonymous" playsinline style="display:none" muted="muted"> <source src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/127738/loremVideo.mp4" type="video/mp4"> </video> <script type="importmap"> { "imports": { "three": "https://unpkg.com/three@0.160.0/build/three.module.js", "three/addons/": "https://unpkg.com/three@0.160.0/examples/jsm/" } } </script> <script type="module"> import * as THREE from 'three'; import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; import { CSS3DRenderer, CSS3DObject } from 'three/addons/renderers/CSS3DRenderer.js'; let camera, scene, renderer; let scene2, renderer2; let controls; init(); animate(); function init() { // 场景 scene = new THREE.Scene(); scene.background = new THREE.Color(0x87CEEB); // 天蓝色背景 scene2 = new THREE.Scene(); // 相机 camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000); camera.position.set(5, 3, 6); // ========== 增强光照系统 ========== // 环境光 - 提供整体基础亮度 const ambientLight = new THREE.AmbientLight(0xffffff, 0.6); scene.add(ambientLight); // 半球光 - 模拟天空和地面的反射光 const hemisphereLight = new THREE.HemisphereLight(0xffffff, 0x444444, 0.5); hemisphereLight.position.set(0, 10, 0); scene.add(hemisphereLight); // 主方向光 - 模拟窗外阳光 const directionalLight = new THREE.DirectionalLight(0xfff5e6, 1.2); directionalLight.position.set(5, 8, 3); directionalLight.castShadow = true; scene.add(directionalLight); // 点光源1 - 天花板灯光 const pointLight1 = new THREE.PointLight(0xfff5e6, 1, 20); pointLight1.position.set(0, 4.5, 0); scene.add(pointLight1); // 点光源2 - 左侧辅助光 const pointLight2 = new THREE.PointLight(0xffedd0, 0.6, 15); pointLight2.position.set(-3, 3, 2); scene.add(pointLight2); // 点光源3 - 右侧辅助光 const pointLight3 = new THREE.PointLight(0xffedd0, 0.6, 15); pointLight3.position.set(3, 3, 2); scene.add(pointLight3); // WebGL渲染器 (用于3D物体) renderer = new THREE.WebGLRenderer({ antialias: true }); renderer.setSize(window.innerWidth, window.innerHeight); renderer.shadowMap.enabled = true; document.body.appendChild(renderer.domElement); // CSS3DRenderer (用于iframe) renderer2 = new CSS3DRenderer(); renderer2.setSize(window.innerWidth, window.innerHeight); renderer2.domElement.style.position = 'absolute'; renderer2.domElement.style.top = 0; .........完整代码请登录后点击上方下载按钮下载查看
网友评论0