这段代码使用Three.js库来创建一个3D场景,其中包含一个由视频纹理贴图的立方体,并且使用了自定义的着色器(shader)来修改立方体的渲染效果。效果体验地址如上链接,以下是代码的详细解释:
初始化
-
引入OrbitControls:
javascript复制代码
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js'
引入OrbitControls模块,用于实现摄像机的轨道控制,允许用户通过拖拽来旋转、缩放和平移视图。
-
获取DOM元素:
javascript复制代码
const box = document.getElementById('box')
获取页面中用于渲染3D场景的DOM元素。
-
创建场景:
javascript复制代码
const scene = new THREE.Scene()
创建一个新的3D场景。
-
设置摄像机:
javascript复制代码
const camera = new THREE.PerspectiveCamera(75, box.clientWidth / box.clientHeight, 0.1, 1000)
camera.position.set(0, 10, 10)
创建一个透视摄像机,并设置其位置。
-
初始化渲染器:
javascript复制代码
const renderer = new THREE.WebGLRenderer()
renderer.setSize(box.clientWidth, box.clientHeight)
box.appendChild(renderer.domElement)
创建一个WebGL渲染器,并设置其大小,然后将渲染器的DOM元素添加到页面中。
-
添加轨道控制:
javascript复制代码
new OrbitControls(camera, renderer.domElement)