three.js基础概念|当前热文
【资料图】
three.js是在Web端创建3D程序的图形引擎,WebGL是一个只能画点、线、三角形的底层图形系统,直接使用WebGL开发应用往往需要写大量的代码,three.js对其进行了封装大大简化了Web 3D应用的开发。曾经我一直认为用JavaScript写的3D程序性能肯定不怎么样,直到最近在油管上关注了SimonDev这位大神才发现完全是自己的偏见,他仅使用JavaScript就开发了3D角色扮演、3D多人在线、射击等各类游戏,还自己写了一个很完整的Minecraft。
three.js是由场景、相机、网格、渲染器等基本抽象组件构成。Mesh网络表示可见物体,它由几何体和材质构成,几何体表示物体的结构属性、材质表示物体表面的显示属性,如颜色、纹理等;Scene场景表示一个虚拟世界,它由Mesh及其组合、灯光组成;摄像机Canera就类似真实世界的相机,它是场景的观察者,设置不同的观察方式将产生不同的艺术效果;Renderer渲染器负责通过canvas对象在浏览器渲染出一帧帧的摄像机投影出的二维图像。
一个简单的显示旋转立方体的threejs示例代码及效果如下:
import * as THREE from "three";// three.js坐标系为右手坐标系// 创建场景const scene = new THREE.Scene();scene.background = new THREE.Color("black");// 创建摄像机// 视角、长宽比、近裁切面、远裁切面const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000 );camera.position.z = 2;// 添加渲染器const canvas = document.querySelector("#canvas");const renderer = new THREE.WebGLRenderer({antialias: true, canvas});renderer.setSize( window.innerWidth, window.innerHeight );// 创建一个立方体const geometry = new THREE.BoxGeometry(1, 1, 1);// // const material = new THREE.MeshBasicMaterial({color: 0x44aa88});const material = new THREE.MeshPhongMaterial({ color: 0x44aa88 });const cube = new THREE.Mesh(geometry, material );scene.add( cube );// 光源const color = 0xFFFFFF;const intensity = 1const light = new THREE.DirectionalLight(color, intensity);light.position.set(-1, 2, 4);scene.add(light);function animate(time) {time *= 0.001;cube.rotation.x = time;cube.rotation.y = time;renderer.render( scene, camera );requestAnimationFrame( animate );}requestAnimationFrame(animate);
最后,three.js入门我推荐《探索three.js》在线图书[https://discoverthreejs.com/zh/],它的内容清晰易懂,非常适合入门,不仅免费而且支持中文,实在是太棒了。
参考文献
[1]. Three.js基础入门(一) - 掘金 (juejin.cn)
[2]. 你的第一个three.js场景:你好,立方体! | Discover three.js (discoverthreejs.com)
关键词:
推荐阅读
域名抢注是是什么意思?投资角度来看什么域名好?
域名抢注是是什么意思域名抢注是通过抢先注册的方式获得互联网删除的域名的使用权。域名是由点分隔的一串数字,用于标记一台计算机或一组计 【详细】
捷达保养费用是多少?捷达是哪个国家的品牌?
捷达保养费用是多少?全新捷达的保修期为2年或6万公里,以先到者为准,新车可享受一次免费保养,首次免费保养在5000-7500km或1年内进行。如 【详细】
天然气泄露会造成爆炸吗?天然气泄漏怎么办?
天然气泄露会造成爆炸吗?家里用的天然气如果泄露是会发生爆炸的。当空气中含有混合天然气时,在与火源接触的一系列爆炸危险中,就会发生爆 【详细】
四部门明确App收集个人信息范围 个人信息保护范围判断标准
四部门明确App收集个人信息范围近日,国家互联网信息办公室、工业和信息化部、公安部、国家市场监督管理总局联合印发《常见类型移动互联网 【详细】
丰田致炫介绍 致炫威驰对比汇总
丰田致炫介绍参考价格: 6 88ー10 28W,基本参数: 1 3升 1 5升 5mt,5 3升 100公里。YARiS L致炫是YARiS L的替代传统车型,也是我们中国 【详细】
相关新闻
- three.js基础概念|当前热文
- 世界热议:依然是最佳直屏性价比,诉说红米新机背后的价值,到底适合什么人
- 月均增长达“百亿级” 六问快递业如何实现提速发展
- 诺基亚C21 Pro紫色款海外发布 售价约600元人民币
- 天天速看:好家伙!小米又出大招了:米家旅行箱居然想到了这一点
- 阳历12月5日是什么星座(阳历12月5日是什么星座) 世界热讯
- 24GB内存的手机?一加Ace 2 Pro爆料;魅族20 OTA新增双卡双通 全球今头条
- 新冠病毒“实验室泄漏论”这碗冷饭馊透了_环球动态
- 苹果发布visionOS SDK,库克的空间计算时代即将开启 世界滚动
- 董明珠口中的“贴牌”,如今逆袭,618销量破20万台,空调大黑马
- (高质量发展调研行)海南海口:探访美兰国际机场封关运作项目
- 税源管理科是干什么的(国税局中税源管理四科科员具体是做什么工作的?)
- 数字山东的硬核实力,都在这个展览里了!-世界即时看
- 美光推出其首个UFS 4.0移动存储解决方案:采用232层3D TLC NAND闪存
- 馒头是用什么面粉做的(做馒头要用什么面粉)
- 2023年6月,华为手机推荐,仅仅就这三款_世界热文
- 资讯推荐:中兴通讯:云网筑基,数智赋能,助力城轨数字化发展
- COVID-19 的新 Arcturus 菌株可抵抗抗体,在许多国家迅速传播
- 前创业搭档:王慧文在医院,需要一段时间静养和恢复-全球快播
- 世界时讯:三大运营商频频成立子公司,背后隐藏两大问题!