千锋教育-做有情怀、有良心、有品质的职业教育机构

当前位置:首页  >  关于学院  >  技术干货  >  html5技术干货  >  正文

web前端培训教程分享:Three.js基础知识

来源:千锋教育
作者:web前端
2022-03-17
分享

  web前端培训教程分享:Three.js基础知识,学习Three.js需要先了解一下 OpenGL 和 WebGL。OpenGL 是一个跨平台的3D/2D的绘图标准(规范),WebGL(Web Graphics Library)是一种3D绘图协议。WebGL允许把JavaScript和OpenGL 结合在一起运用,但使用WebGL原生的API来写3D程序非常的复杂,同时需要相对较多的数学知识对于前端开发者来说学习成本非常高。

web前端

  WebGL

  WebGL是一种Javascript的3D图形接口,把JavaScript和OpenGL ES 2.0结合在一起。

  OpenGL

  OpenGL是开放式图形标准,跨编程语言、跨平台,Javascript、Java 、C、C++ 、 python 等都能支持OpenGL ,OpenGL的Javascript实现就是WebGL。OpenGL ES 2.0是OpenGL的子集,针对手机、游戏主机等嵌入式设备而设计。

  Canvas

  Canvas是HTML5的画布元素,在使用Canvas时,需要用到Canvas的上下文,可以用2D上下文绘制二维的图像,也可以使用3D上下文绘制三维的图像,其中3D上下文就是指WebGL。

  Three.js是什么?

  官网:Javascript 3D library(JavaScript 3D 库)。

  Three.js是基于webGL的封装的一个易于使用且轻量级的3D库,Three.js对WebGL提供的接口进行了非常好的封装,简化了很多细节,大大降低了学习成本,极大地提高了性能,功能也非常强大。

  用户不需要详细地学习 WebGL,就能轻松创作出三维图形,是前端开发者研发3D绘图的主要工具。

  微信小游戏跳一跳也是在基于Three.js研发的,Threejs现在是独领风骚。

  简言之:Three.js就是能够实现3D效果的JS库

  OpenGL、WebGL、Canvas、Three.js四者关系

  OpenGL:3D绘图标准

  WebGL:OpenGL + JavaScript

  Canvas:WebGL + Canvas 2D

  Three.js:一个基于WebGL封装的库

  类似于:

  ECMAscript:脚本语言规范

  JavaScript:脚本语言

  jQuery: 一个基于JavaScript封装的库

  简单一句话概括:WebGL和Three.js的关系,相当于JavaScript和jQuery的关系。

  Three.js应用场景有哪些?

  Web 3D游戏、3D物体模型展示、数据可视化、Web VR、其它特殊效果展示。

  web前端培训教程分享:Three.js基础知识,以上就是详细介绍了,如果您对web前端技术非常感兴趣,可以来了解一下千锋教育提供的web前端培训课程,千锋教育在全国20多所城市均设有教学基地,欢迎同学们前来咨询了解。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

相关推荐

  • vuex中actions与mutations的区别 总体来说:actions 1、用于通过提交mutation改变数据 2、会默认将自身封装为一个Promise 3、可以包含任意的异步操作mutations 1、通过提交commit改变数据 2、只是一个单纯的函数 3、不要使用异步操作,异步操作会导致变量不能追踪
  • vuex数据丢失怎么解决 vuex的 store 中的数据是保存在运行内存中的,当页面刷新时,页面会重新加载 vue 实例,vuex 里面的数据就会被重新赋值,这样就会出现页面刷新vuex中的数据丢失的问题。 如何解决浏览器刷新数据丢失问题呢?
  • 说说vuex的管理操作或理解 vuex有一个仓库概念,将组件公共的state存储在仓库的state属性中,state是只读的,组件只能使用,不能直接修改,修改需要通过 仓库中的mutations模块来修改,这样的好处是 当数据修改便于溯源,且不会因为 多个组件 直接修改数据,导致 组件间数据的互相影响, 同时 当我们仓库中有一个state 数据需要请求 数据接口才能获取时,vuex 设计了一个action模块,在action模块中发送异步请求,得到数据后,提交mutation来修改state。
  • 说说Vuex的工作流程 我们将组件的公共状态定义在 vuex仓库的state中,state是只读的,无法直接修改,必须调动仓库中的某个mutation才能修改状态,getters可以理解为vuex中的计算属性,当我们在某个组件中使用vuex中的某个state时,不是直接使用原值,而是需要派生出一个新的值,就可以定义getters,可以在组件中获取。
  • vuex—个模块中改变state中数据,其他模块如何获取? 由于使用单一状态树,应用的所有状态会集中到一个比较大的对象。当应用变得非常复杂时,store 对象就有可能变得相当臃肿。为了解决以上问题,Vuex 允许我们将 store 分割成模块(module)。每个模块拥有自己的 state、mutation、action、getter、甚至是嵌套子模块——从上至下进行同样方式的分割:
  • vuex的状态是怎样的,怎么改变状态 vuex的状态储存在仓库的state属性中,state是只读的,无法直接修改必须调用mutation才能修改,const store = new Vuex.Store({,// 在组件中直接出发mutaion,this.$store.commit('ADD_NUM', 10)// 或者助手函数 提交 mutation