第一个示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>three.js</title>
<style>
body {
margin: 0;
overflow: hidden;
}
</style>
</head>
<body>
<div id="sence"></div>
<script src="./three.min.js"></script>
<script type="module">
/**
* 创建场景
*/
const scene = new THREE.Scene(); // 场景对象
/**
* 创建网格模型
*/
const gemometry = new THREE.BoxGeometry(100, 100, 100); // 几何对象
const material = new THREE.MeshLambertMaterial({
color: 0x000ff
}); // 材质
const mesh = new THREE.Mesh(gemometry, material); // 网格对象
scene.add(mesh);
/**
* 光源设置
*/
const point = new THREE.PointLight(0xffffff); // 点光源
point.position.set(400, 200, 300);
scene.add(point);
const ambient = new THREE.AmbientLight(0x444444); // 环境光
scene.add(ambient);
/**
* 相机设置
*/
let width = window.innerWidth;
let height = window.innerHeight;
let k = width / height; // 窗口宽高比
let s = 200; // 二维场景显示范围控制系数,系数越大,显示的范围越大
/**
* 创建相机
*/
const camera = new THREE.OrthographicCamera(-s * k, s * k, s, -s, 1, 1000);
camera.position.set(200, 300, 200);
camera.lookAt(scene.position); // 设置相机方向(指向场景对象)
/**
* 场景渲染器对象
*/
const renderer = new THREE.WebGLRenderer();
renderer.setSize(width, height);
document.body.appendChild(renderer.domElement);
renderer.render(scene, camera); // 执行渲染操作,指定场景、相机作为参数
</script>
</body>
</html>
渲染结果如下图
Three.js 程序结构
![image.png](/uploads/projects/houyusheng@frontend/68721109ad1f47c311721fae300bf2ec.png)
参考
【1】three.js官方中文文档