canvas js 绘图插件_看完这篇,你也可以实现一个360度全景插件(一)原理篇

本文从基础开始讲解如何使用Three.js开发360度全景插件,涵盖OpenGL、WebGL、Canvas及Three.js的关系,以及Three.js的基本概念,如场景、元素、相机、渲染器和动画。文章提供了项目GitHub链接和简单的代码示例。
摘要由CSDN通过智能技术生成

导读

本文从绘图基础开始讲起,详细介绍了如何使用Three.js开发一个功能齐全的全景插件。

我们先来看一下插件的效果:

03bb26d17d13d43455c5215c427744a0.gif
883737eb5988cfcd3b5122cb83bc1e87.gif

如果你对Three.js已经很熟悉了,或者你想跳过基础理论,那么你可以直接从全景预览开始看起。

本项目的github地址:https://github.com/ConardLi/tpanorama

68264398e21f50019307b7c29d0cbbb5.png

#一、理清关系

#1.1 OpenGL

e17f228e6f7a622e10fb99f45add5dbe.png

OpenGL是用于渲染2D、3D量图形的跨语言、跨平台的应用程序编程接口(API)。

这个接口由近350个不同的函数调用组成,用来从简单的图形比特绘制复杂的三维景象。

OpenGL ES 是OpenGL三维图形API的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。

基于OpenGL,一般使用C或Cpp开发,对前端开发者来说不是很友好。

#1.2 WebGL

WebGL把JavaScript和OpenGL ES 2.0结合在一起,从而为前端开发者提供了使用JavaScript编写3D效果的能力。

WebGL为HTML5 Canvas提供硬件3D加速渲染,这样Web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3D场景和模型了,还能创建复杂的导航和数据视觉化。

#1.3 Canvas

Canvas是一个可以自由制定大小的矩形区域,可以通过JavaScript可以对矩形区域进行操作,可以自由的绘制图形,文字等。

一般使用Canvas都是使用它的2d的context功能,进行2d绘图,这是其本身的能力。

和这个相对的,WebGL是三维,可以描画3D图形,WebGL,想要在浏览器上进行呈现,它必须需要一个载体,这个载体就是Canvas,区别于之前的2dcontext,还可以从Canvas中获取webglcontext。

#1.4 Three.js

9c50e6d4d8f83f445c7baa1569a57650.png

我们先来从字面意思理解下:Three代表3D,js代表JavaScript,即使用JavaScript来开发3D效果。

Three.js是使用JavaScript对 WebGL接口进行封装与简化而形成的一个易用的3D库。

直接使用WebGL进行开发对于开发者来说成本相对来说是比较高的,它需要你掌握较多的计算机图形学知识。

Three.js在一定程度上简化了一些规范和难以理解的概念,对很多API进行了简化,这大大降低了学习和开发三维效果成本。

下面我们来具体看一下使用Three.js必须要知道的知识。

#二、Three.js基础知识

使用Three.js绘制一个三维效果,至少需要以下几个步骤:

  • 创建一个容纳三维空间的场景 — Sence
  • 将需要绘制的元素加入到场景中,对元素的形状、材料、阴影等进行设置
  • 给定一个观察场景的位置,以及观察角度,我们用相机对象(Camera)来控制
  • 将绘制好的元素使用渲染器(Renderer)进行渲染,最终呈现在浏览器上

拿电影来类比的话,场景对应于整个布景空间,相机是拍摄镜头,渲染器用来把拍摄好的场景转换成胶卷。

#2.1 场景

场景允许你设置哪些对象被three.js渲染以及渲染在哪里。

我们在场景中放置对象、灯光和相机。

很简单,直接创建一个Scene的实例即可。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值