当前位置:首页 > 编程笔记 > 正文
已解决

【前端知识】Three 学习日志(一)—— Three.js 的简单尝试

来自网友在路上 162862提问 提问时间:2023-09-21 22:04:10阅读次数: 62

最佳答案 问答题库628位专家为你答疑解惑

Three 学习日志(一)—— Three.js 的简单尝试

Three.js是一个使用JavaScript编写的轻量级3D图形库,它可以在浏览器中渲染出3D场景。在学习Three.js的过程中,建立基本场景是一个重要的第一步。通过设置相机、场景和渲染器等组件,可以创建一个简单的3D场景。在建立基本场景之后,可以通过添加模型、材质、光源等元素来丰富场景效果。此外,使用requestAnimationFrame方法可以让场景动起来,实现动画效果。

一、简单尝试 Three.js

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Learn Three.js</title><!-- 引入three,下载地址参考:http://www.webgl3d.cn/pages/aac9ab/#%E7%89%B9%E5%AE%9A%E7%89%88%E6%9C%ACthree-js%E6%96%87%E4%BB%B6%E5%8C%85%E4%B8%8B%E8%BD%BD --><script src="../build/three.js"></script>
</head><body><script>// 任意调用API,为了检测three.js是否引入成功console.log(THREE.Scene);// 创建3D场景对象Sceneconst scene = new THREE.Scene();// 创建一个长方体几何对象Geometryconst geometry = new THREE.BoxGeometry(100, 100, 100);// 创建一个材质对象Material(MeshBasicMaterial 为网格基础材质)const material = new THREE.MeshBasicMaterial({color: 0xff0000,//0xff0000设置材质颜色为红色});// 创建物体:网格模型(Mesh为网格模型)// 两个参数分别为上面创建的几何体geometry、材质materialconst mesh = new THREE.Mesh(geometry, material); //网格模型对象Mesh// 设置网格模型在三维空间中的位置坐标,默认是坐标原点mesh.position.set(0, 10, 0);// 构建好物体后,将物体添加到场景中scene.add(mesh);// 至此,我们的物体已经添加到场景中,但我们并不能立即看到构建的物体,还需要通过虚拟相机进行渲染// 实例化一个透视投影相机对象const camera = new THREE.PerspectiveCamera();// 30:视场角度, width / height:Canvas画布宽高比, 1:近裁截面, 3000:远裁截面// const camera = new THREE.PerspectiveCamera(30, width / height, 1, 3000);// 根据需要设置相机位置具体值camera.position.set(200, 200, 200);//相机观察目标指向Threejs 3D空间中某个位置camera.lookAt(0, 0, 0); //坐标原点// camera.lookAt(mesh.position);//指向mesh对应的位置// 定义相机输出画布的尺寸(单位:像素px)const width = 800; //宽度const height = 500; //高度// 创建渲染器对象const renderer = new THREE.WebGLRenderer();// 设置渲染器宽高renderer.setSize(width, height);// 通过渲染器,将场景和相机进行结合、渲染,得到一个Canvas元素renderer.render(scene, camera); //执行渲染操作// 将渲染结果加入页面中document.body.appendChild(renderer.domElement);</script>
</body></html>

二、效果展示
在这里插入图片描述

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"【前端知识】Three 学习日志(一)—— Three.js 的简单尝试":http://eshow365.cn/6-11004-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!