前言
- 毕业设计是ThreeJs+Vue2整一个3d粮仓管理系统,还有七天,👴还没有开始做,甚至不会Threejs,开贴记录直接冲!
准备
- "vue": "2.6.10",
- "three": "^0.127.0",
相机、场景、渲染
import * as THREE from 'three'
import { OrbitControls } from "three/examples/jsm/controls/OrbitControls.js";
mounted() {
let scene = new THREE.Scene()
let geometry = new THREE.BoxGeometry(400, 1, 400);
let material = new THREE.MeshLambertMaterial({
color: "rgb(83, 178, 255)"
});
let geometry2 = new THREE.BoxGeometry(60, 20, 30);
let material2 = new THREE.MeshLambertMaterial({
color: "rgb(83, 178, 255)"
});
let mesh2 = new THREE.Mesh(geometry2, material2)
let mesh = new THREE.Mesh(geometry, material);
scene.add(mesh);
mesh2.position.set(120, 10, 10)
scene.add(mesh2)
let point = new THREE.PointLight(0xffffff);
point.position.set(700, 300, 200);
scene.add(point);
let ambient = new THREE.AmbientLight(0x444444);
scene.add(ambient);
let width = window.innerWidth;
let height = window.innerHeight;
let camera = new THREE.PerspectiveCamera(
75,
window.innerWidth / window.innerHeight,
0.1,
1000
);
camera.position.set(200, 300, 200);
camera.lookAt(scene.position);
let renderer = new THREE.WebGLRenderer();
renderer.setSize(width, height);
renderer.setClearColor(0xb9d3ff, 1);
document.body.appendChild(renderer.domElement);
renderer.render(scene, camera);
function render() {
renderer.render(scene, camera);
requestAnimationFrame(render);
}
render();
let controls = new OrbitControls(camera, renderer.domElement);
}
