关于使用three.js将3D模型转换成图片方法

JavaScript023

关于使用three.js将3D模型转换成图片方法,第1张

在使用three.js加载3D模型之后,项目中遇到一个问题:需要将3D模型旋转之后的位姿转换成图片并保存下来,尝试了两种方法:

问题:由于canvas中加载的是3D模型,导致转换出来的图片一片漆黑,方法失败

经过尝试之后,成功将模型转换成图片(base64编码图片)

方法如下:

转换之后,imgData为base64编码的图片,可以直接进行显示

这里有一张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演示】

请点击输入图片描述