WebGL-Demo

栏目: 编程工具 · 发布时间: 5年前

内容简介:最近拖更蛮严重,因为对自己的要求高了一大截。最近玩了个Three.js的Demo,也算了解了一波前端的动画方面的延伸,因为我公司主要业务为大数据,学了很多数据层的东西,动画方面没什么用武之地,但是我是喜欢动画效果的,哎,有没有种逼良为娼的感觉。想入门WebGL的时候就查了很多文章,以前学c++的时候接触过一点OpenGL,查了一下两者的联系。有个图很形象。

最近拖更蛮严重,因为对自己的要求高了一大截。

最近玩了个Three.js的Demo,也算了解了一波前端的动画方面的延伸,因为我公司主要业务为大数据,学了很多数据层的东西,动画方面没什么用武之地,但是我是喜欢动画效果的,哎,有没有种逼良为娼的感觉。

OpenGL

想入门WebGL的时候就查了很多文章,以前学c++的时候接触过一点OpenGL,查了一下两者的联系。有个图很形象。

WebGL-Demo
(图出自: www.cnblogs.com/mirror-pc/p…
WebGL 1.0 基于OpenGL ES 2.0(OpenGL ES是针对移动设备的OpenGL)。
复制代码

为什么是基于2.0呢?

因为OpenGL2.0之前没有着色器。从2.0之后开始才支持了这个非常重要的特性,“可编程着色器方法”。有没有颜色还是很重要的。

那么OpenGL是什么呢。OpenGL并不是一个API或者SDK,而是一组规范,Khronos Group团队维护这个规范(我也不知道是啥团队)。

这组规范定义了一组函数,这组函数传入的是什么参数,传出的是什么结果。由于只是这样的一组规范,所以只要合乎规范,谁都能以不同的方式实现函数。

了解到此感觉已经可以了。

WebGL

WebGL是大部分浏览器直接支持的一种3D绘图标准
复制代码

Google在这个网站上webglsamples.org/发布了一些WebGL做出的样品。

WebGL-Demo

炫酷到让人心动,老司机已经感觉到这个东西没那么好学了。

Three.js

如果直接使用WebGL进行开发的话,十分吃力,然而这个Three.js 已经火了很多年了,Three.js 是WebGL的一个开源框架。封装了很多api,使用方便,节省我们的开发细节。

所以我打算通过Three.js 输出一片Demo来熟悉3D的Javascript.

Start

首先我们先搭建一个本地服务。

WebGL-Demo

根目录下创建index.js服务启动文件,和一个项目文件夹www

WebGL-Demo

然后我们开始写业务文件

WebGL-Demo

想象屏幕里就是个小世界,你就是上帝,你先构建了个空间。

WebGL-Demo

创建相机,就是你看小世界的角度

  • PerspectiveCamera(fov, aspect, near, far)
  • Fov – 相机的视锥体的垂直视野角
  • Aspect – 相机视锥体的长宽比
  • Near – 相机视锥体的近平面
  • Far – 相机视锥体的远平面
WebGL-Demo

渲染器决定了渲染的结果应该画在元素的什么元素上面,并且以怎样的方式来绘制。

WebGL-Demo

就是个单纯的坐标轴3纬长度为200

WebGL-Demo

创建地板,设置纹理参数。这里我选择了以一张grond草坪样式的纹理贴纸。

我们还需要设定一下地板的大小及位置

WebGL-Demo
WebGL-Demo

是的,scene.add方法就是将你创造的任何东西放到场景中去。

WebGL-Demo

我们将渲染器插入到页面中去

WebGL-Demo

开启渲染,看一下效果.

WebGL-Demo

效果大概就是这个样子,一片黑,坐标轴到是有了

因为我们的材质没有光,上帝说要有光,对吧,刚才我的草坪哪去了。

WebGL-Demo

再来看一下效果

WebGL-Demo

空荡荡的草坪上有个坐标系。

这时候我们发现,我们无法移动视角。

WebGL-Demo
WebGL-Demo

孤单的场景,这时候上帝想加入一些东西,后来想想加个立方体也太没创意了,所以就去查了查加入个3D MAX的模型。

three.js支持计入obj数据模型及mlt贴图文件。我就去找了找,好看的模型超级贵,这年头版权意识都起来了,我也很尊重版权这个东西。所以弄了个没那么炫酷的、你们绝对猜不到的。电塔...

话不多说,看一下导入模型代码

WebGL-Demo

看一下效果

WebGL-Demo

看一下动效

WebGL-Demo

有没有种回到苞米地的感觉。

GitHub

附上GitHub地址:

user-gold-cdn.xitu.io/2019/5/17/1…

END

经过初步了解,越发感觉这个东西深不见底,一切皆有可能。如果条件允许的话,我十分愿意在WebGL的海洋里肆意遨游。尤其是本人特别喜欢动画效果。

emmm,不要催我的DIV监控平台下..... 不妥更的作者不是好前端。

我对那篇文章的要求比较高,一直没构思好,这篇文章有一点是为了顶绩效。

先溜了,最近可能是高产母猪,绩效要写8篇。。。。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Introduction to Computation and Programming Using Python

Introduction to Computation and Programming Using Python

John V. Guttag / The MIT Press / 2013-7 / USD 25.00

This book introduces students with little or no prior programming experience to the art of computational problem solving using Python and various Python libraries, including PyLab. It provides student......一起来看看 《Introduction to Computation and Programming Using Python》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具