ThreeJS创建一个3D物体的基本流程

**1.创建场景:**创建一个THREE.Scene实例,它将作为所有3D对象的容器。

javascript 复制代码
// 创建场景
const scene = new THREE.Scene();

**2.创建相机:**创建一个相机对象,通常是THREE.PerspectiveCamera,用于定义观察场景的视角和位置。

javascript 复制代码
//创建相机
const camera = new THREE.PerspectiveCamera(
  45, // 视角
  window.innerWidth / window.innerHeight, // 宽高比
  0.1, // 近平面
  1000 // 远平面
)

**3.设置相机位置 :**通过camera.position.set()设置相机坐标

javascript 复制代码
// 设置相机位置
camera.position.set(0, 0, 5);

**4.创建渲染器:**创建一个THREE.WebGLRenderer实例来渲染场景。

javascript 复制代码
// 创建渲染器
const renderer = new THREE.WebGLRenderer();

**5.设置渲染器尺寸:**使用renderer.setSize(width, height)根据需要设置渲染器的宽度和高度。

javascript 复制代码
renderer.setSize(window.innerWidth, window.innerHeight);

**6.添加渲染器的DOM元素到页面:**使用document.body.appendChild(renderer.domElement)将渲染器的DOM元素添加到HTML页面中。

javascript 复制代码
document.body.appendChild(renderer.domElement);

**7.创建几何体:**使用THREE.Geometry类或其子类来创建物体的几何形状。

javascript 复制代码
// 创建几何体
const geometry = new THREE.BoxGeometry(1, 1, 1);

**8.创建材质:**创建一个THREE.Material实例来定义物体的外观,包括颜色、纹理等。

javascript 复制代码
// 创建材质
const material = new THREE.MeshBasicMaterial({ color: 0x00ff00 });

**9.创建网格:**将几何体和材质结合起来创建一个实例,这是一个实际的3D物体。

javascript 复制代码
// 创建网格
const cube = new THREE.Mesh(geometry, material);

**10.添加物体到场景:**使用scene.add(cube)将创建的网格添加到场景中。

javascript 复制代码
// 将网格添加到场景中
scene.add(cube);

**11.渲染场景:**使用renderer.render(scene, camera)来渲染场景和相机。

javascript 复制代码
// 渲染到页面上
renderer.render(scene, camera);

**12.添加动画(可选):**如果需要,可以通过修改物体的位置、旋转或缩放属性,并在每次动画帧中重新渲染来创建动画效果。

javascript 复制代码
// 渲染函数
function animate() {
  requestAnimationFrame(animate);
  // 旋转
  cube.rotation.x += 0.01;
  cube.rotation.y += 0.01;
  // 渲染到页面上
  renderer.render(scene, camera);
}
animate();
相关推荐
答案answer8 小时前
VibeCoding 能做到什么程度?我用它做了一座 3D 数字博物馆
ai编程·three.js·vibecoding
chaoyuanl11 小时前
悬空玻璃剧场源头厂家选型全解析|270°裸眼3D悬空玻璃剧场投资避坑指南
大数据·人工智能·3d·xr·娱乐·mr
在下胡三汉14 小时前
GLTF vs OBJ vs FBX vs GLB:选择合适的 3D 文件格式,怎么获取下载
3d
fanfan_hongyun14 小时前
Cesium for unity (可加载3dTileset)
3d
鲲穹AI种草14 小时前
家装设计工具记录:多款室内 3D 设计工具能力边界整理
3d·家装设计工具
杀生丸学AI1 天前
【前馈三维重建】SAF3R:前馈式3D重建Transformer的动态稀疏注意力(加速)
深度学习·3d·transformer
2601_950760791 天前
3D细胞活力检测技术:从传统方法到三维体系的跨越
人工智能·3d·蛋白
牛企老板俱乐部1 天前
广东手板3D打印三大核心产区 采购视角看珠海深圳东莞
3d
数智工坊2 天前
SAMosaic3D:以可学习马赛克组装实现实时在线3D实例分割 | CVPR 2026 论文精读
学习·3d
tzc_fly2 天前
KDD 2026 | PRIME:一种用于从头设计binder的 3D 分子模型
3d·binder