1.vue中引入threejs
npm install three --save
// 引入three.js
import * as THREE from 'three';
2.基本几何体创建,不同材质,不同光源,相机,GUI创建,法向量,自定义顶点等示例代码
<template>
<main class="gl-main">
<div id="webgl"></div>
</main>
</template>
<script setup lang="ts">
import { nextTick } from 'vue'
// 引入three.js
import * as THREE from 'three'
// 引入轨道控制器扩展库OrbitControls.js
import { OrbitControls } from 'three/addons/controls/OrbitControls.js'
//引入性能监视器stats.js
import Stats from 'three/addons/libs/stats.module.js'
// 引入dat.gui.js的一个类GUI
import { GUI } from 'three/addons/libs/lil-gui.module.min.js'
// 创建场景
const scene = new THREE.Scene()
//创建一个几何对象Geometry
const geometry = new THREE.BoxGeometry(50, 50, 50)
//创建一个材质对象Material,MeshBasicMaterial:基础材质不受光照影响
// const material = new THREE.MeshBasicMaterial({
// color: 0xff0000, //0xff0000设置材质颜色为红色
// transparent: true, // 开启透明
// opacity: 0.5 //设置透明度
// })
// MeshLambertMaterial:漫反射材质受光照影响
const material = new THREE.MeshLambertMaterial({
color: 0xce21bc
// wireframe: true //线条模式渲染mesh对应的三角形数据
})
// 两个参数分别为几何体geometry、材质material
const mesh = new THREE.Mesh(geometry, material) //网格模型对象Mesh
//设置网格模型在三维空间中的位置坐标,默认是坐标原点
mesh.po