还处在比较不成熟的开发阶段,对初学者友好度不够。
three.js是JavaScript编写的WebGL第三方库。提供了非常多的3D显示功能。
Three.js 是一款运行在浏览器中的 3D 引擎,你可以用它创建各种三维场景,包括了摄影机、光影、材质等各种对象。你可以在它的主页上看到许多精彩的演示。
不过,这款引擎还处在比较不成熟的开发阶段,其不够丰富的 API 以及匮乏的文档增加了初学者的学习难度(尤其是文档的匮乏)three.js的代码托管在github上面。
webgl或者说three.js的发展前景怎么样?
在webgl工作一年后,我坚信这将成为前端工程师的主要工作。
酷炫的特效,甚至VR特效。但是,webgl一直有点弱,更不用说在应用方面,即使是在前端程序员中,也没有多少人知道它。因此webgl目前面临的最大问题是缺乏实际应用。第二,支持太差了,除了一些非常新版本的现代浏览器,支持真的很差。
移动端几乎没有支持。试想,现在一个前端技术与手机不兼容,这真的很难应用。我坚信webgl会成为一个很酷很有用的东西,但是它可能需要很长时间。
你可以轻松地跨桌面和移动终端构建现代企业应用程序,而不用担心跨平台兼容性、触摸屏手势交互等棘手问题。
您可以更多地关注业务逻辑功能,而不必关注复杂的3D渲染、数学和其他非业务核心技术细节。
它更适合用作基于web的应用程序的组件框架三.js以及巴比伦.js它的优点是有许多预先开发的控件,这使得编写web界面应用程序非常方便。
这里有一张3D家族图谱,three.js是基于WebGL的3D图形引擎库,和Unity 3D是类似的渲染器。
Three.js解决了WebGL开发复杂的难题,它封装了场景、相机、几何、3D模型加载器、灯光、材质、着色器、动画、粒子、数学工具等概念,开发流程如下:
这里涉及到一个规律,越底层的技术,如OpenGL、DirectX、Vulkan,用起来就越困难,基本上也很少有开发案例,因为这个并不实用。Javascript封装库更简单,以便降低开发门槛,并不存在必须要把所有底层技术学会,才懂用three.js开发的说法。学习新技术要注意:
学习的目的
是技术探索?还是3D项目开发?技术理论知识的学习需要很长时间,而且很枯燥,最好是完成一个3D项目作品,从手动实操中解决问题,连点成面。一个完整的软件生态至关重要,好的软件往往是成千上万个项目淬炼的成果,three.js都有很多优秀的开发项目让你汲取营养。
先做出一个作品
作品是可以为简历加分的,同时也能够验证你的学习能力,现在的软件生态不缺乏学习资源和技术资料,项目案例是非常好的参考素材。出作品的过程也是在解决技术问题,初学者不要怕麻烦!
选择有前景的应用市场
three.js是一个开源技术,重要还是看应用到哪个技术模块,是否产生商业价值,个人的职业前景也会越来越好。推荐物联网3D可视化,面向城市可视化大屏客户端应用开发,常用于安全消防、城市交通领域,更多案例ThingjS客户都有上传到【官网】。
基于three.js的优秀学习资源,在学习three.js之前先问自己这三个问题,相信会事半功倍。
城市可视化大屏项目示例,【3D演示】
请点击输入图片描述