从2D到3D,仿佛开始一个新的世界
因为客户的一个需求,开始了解3D技术。
虽然之前也了解3D,比如AR、VR,但主要都是停留在了解阶段,直到真正开始进入其中,才发现,这是一个全新的世界。
http://wjceo.com/three.js/examples/#webgl_animation_skinning_blending
【OpenGL】
说到3D,就不得不说OpenGL,1992年成立的一个组织,成员都是科技巨头,包括3Dlabs、Apple Computer、ATI Technologies、Dell Computer、Evans & Sutherland、Hewlett-Packard、IBM、Intel、Matrox、NVIDIA、SGI和Sun Microsystems,不过微软不在其中,微软有自己独有的DirectX技术。
下面是来自百度百科的定义:
OpenGL(英语:Open Graphics Library,译名:开放图形库或者“开放式图形库”)是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API)。这个接口由近350个不同的函数调用组成,用来从简单的图形比特绘制复杂的三维景象。而另一种程序接口系统是仅用于Microsoft Windows上的Direct3D。OpenGL常用于CAD、虚拟实境、科学可视化程序和电子游戏开发。
OpenGL的高效实现(利用了图形加速硬件)存在于Windows,部分UNIX平台和Mac OS。这些实现一般由显示设备厂商提供,而且非常依赖于该厂商提供的硬件。开放源代码库Mesa是一个纯基于软件的图形API,它的代码兼容于OpenGL。但是,由于许可证的原因,它只声称是一个“非常相似”的API。
【WebGL】
OpenGL在桌面级应用(游戏、科学)很多,但直到WebGL的出现,直接在浏览器上运行的3D技术,借助互联网,忽然就火爆起来了。
当然,新的技术,往往最早应用在娱乐领域,WebGL就造就了无数的网页游3D戏。
历史:
WebGL起源于Mozilla员工弗拉基米尔·弗基西维奇的一项称为Canvas 3D实验项目。2006年,弗基西维奇首次展示了Canvas 3D的原型。2007年底在Firefox和Opera被实现。
在2009年初,非营利技术联盟Khronos Group启动了WebGL的工作组,最初的工作成员包括Apple、Google、Mozilla、Opera等。2011年3月发布WebGL 1.0规范。截至2012年3月,工作组的主席由肯·罗素(Ken Russell,全名“Kenneth Bradley Russell”)担任。
WebGL的早期应用包括Zygote Body。
WebGL 2规范的发展始于2013年,并于2017年1月完成。该规范基于OpenGL ES 3.0。首度实现在Firefox 51、Chrome 56和Opera 43中。
现在主流浏览器,甚至包括微软的IE都已经支持WebGL,已经是实施标准了。
【Three.js】
直接基于WebGL开发当然没有问题,但借助开源的Three.js,就会犹如借助jQuery开发网页程序一样,不需要重复建立所有轮子。
当然,类似的库还有不少,利用好开发工具,事半功倍!
【建模】
3D可以直接在代码中手工填写好数组——但别忘了,3D的数据量比2D高了一个指数级别,除了搭建简单的标准几何图形,稍微复杂一些的模型,就需要借助工具。
庆幸的是,所有Win10自带了3D建模,就是新版的画图吧【画图 3D】
随便画些东西导出成建模文件 *.glb,就可以任意在WebGL中使用了。
【链接】
WebGL:https://developer.mozilla.org/zh-CN/docs/Web/API/WebGL_API
Three.JS:http://wjceo.com/three.js/docs/#manual/zh/introduction/Creating-a-scene