Three的第一个Demo
- 前言
- 效果图
- 1、导入threejs
- 2、创建场景
- 3、创建相机
- 4、创建渲染器
- 5、创建几何图形
- 6、创建材质
- 7、创建网格
- 8、将网格添加到场景中
- 9、设置相机的位置
- 10、渲染
- 11、整体代码
前言
创建第一个demo实例—旋转的方格
效果图
1、导入threejs
import * as THREE from 'three'
2、创建场景
const scene = new THREE.Scene()
3、创建相机
const camera = new THREE.PerspectiveCamera(
45, //视角
window.innerWidth / window.innerHeight, //宽高比
0.1, // 近平面
1000 // 远平面
)
4、创建渲染器
const renderer = new THREE.WebGLRenderer()
renderer.setSize(window.innerWidth, window.innerHeight)
document.body.appendChild(renderer.domElement)
5、创建几何图形
const geometry = new THREE.BoxGeometry(1, 1, 1)
6、创建材质
const material = new THREE.MeshBasicMaterial({ color: 0x00ff00 })
7、创建网格
const cube = new THREE.Mesh(geometry, material)
8、将网格添加到场景中
scene.add(cube)
9、设置相机的位置
camera.position.z = 5
camera.lookAt(0, 0, 0)
10、渲染
function animate () {
requestAnimationFrame(animate)
cube.rotation.x += 0.01
cube.rotation.y += 0.01
renderer.render(scene, camera)
}
// 开始渲染
animate()
11、整体代码
<template>
</template>
<script setup>
// 导入threejs
import * as THREE from 'three'
// 创建场景
const scene = new THREE.Scene()
// 创建相机
const camera = new THREE.PerspectiveCamera(
45, //视角
window.innerWidth / window.innerHeight, //宽高比
0.1, // 近平面
1000 // 远平面
)
// 创建渲染器
const renderer = new THREE.WebGLRenderer()
renderer.setSize(window.innerWidth, window.innerHeight)
document.body.appendChild(renderer.domElement)
// 创建几何体
const geometry = new THREE.BoxGeometry(1, 1, 1)
// 创建材质
const material = new THREE.MeshBasicMaterial({ color: 0x00ff00 })
// 创建网格
const cube = new THREE.Mesh(geometry, material)
// 将网格添加到场景中
scene.add(cube)
// 设置相机的位置
camera.position.z = 5
camera.lookAt(0, 0, 0)
// 渲染
function animate () {
requestAnimationFrame(animate)
cube.rotation.x += 0.01
cube.rotation.y += 0.01
renderer.render(scene, camera)
}
// 开始渲染
animate()
</script>
<style>
*{
margin: 0;
padding: 0
}
canvas{
display: block;
position: fixed;
left: 0;
top: 0;
width: 100vw;
height:100vh
}
</style>