本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《 阿里云开发者社区用户服务协议 》和 《 阿里云开发者社区知识产权保护指引 》。如果您发现本社区中有涉嫌抄袭的内容,填写 侵权投诉表单 进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

创建场景——>创建相机——>创建物体——>把物体放进场景——>通过渲染器进行渲染

2、实例展示

(1)首先导入进来 three 文件(这里是创建了一个项目,通过 npm install 安装的依赖)

(2)创建场景

(3)创建相机对象(透视相机)

(4)设置相机的位置

(5)在场景里面添加相机

(6)创建几何体和材质

(7)根据几何体和材质创建物体

(8)将几何体添加到场景中

(9)初始化渲染器

(10)设置渲染的尺寸大小

(11)将 webgl 渲染的 canvas 内容添加到 body

(12)使用渲染器,通过相机将场景渲染进来

const scene = new THREE.Scene() // 创建相机对象(角度,宽高比,近端,远端) const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000) // 设置相机的位置(x,y,z) camera.position.set(0, 0, 10) // 场景里面添加相机 scene.add(camera) // 添加物体 // 创建几何体 const cubeGeometry = new THREE.BoxGeometry(1, 1, 1) // 创建材质 const cubeMaterial = new THREE.MeshBasicMaterial({color: 0xffff00}) // 根据几何体和材质创建物体 const cube = new THREE.Mesh(cubeGeometry, cubeMaterial) // 将几何体添加到场景当中 scene.add(cube) // 初始化渲染器 const renderer = new THREE.WebGLRenderer() // 设置渲染的尺寸大小 renderer.setSize(window.innerWidth, window.innerHeight) // console.log(renderer) // 将 webgl 渲染的 canvas 内容添加到 body document.body.appendChild(renderer.domElement) // 使用渲染器,通过相机将场景渲染进来 renderer.render(scene, camera)
import * as THREE from 'three'
// 导入轨道控制器
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls'
// 使用控制器查看3d物体
......
// 使用渲染器,通过相机将场景渲染进来
// renderer.render(scene, camera)
// 创建轨道控制器 (domElement->用于事件监听的 HTML元素)
const controls = new OrbitControls(camera, renderer.domElement)
// 渲染函数
function render() {
    renderer.render(scene, camera)
    // 请求动画帧-下一帧的时候重新渲染
    requestAnimationFrame(render)
render()