ThingJS:基于WebGL的3D技术在网页中的运用

简介: Three.js、ThingJS这些引擎库可以加载3D制作软件的模型,大幅度提高了制作效率,改变WebGL开发困难的局面,让Web开发者享受便捷的3D开发服务。

Three.js、ThingJS这些引擎库可以加载3D制作软件的模型,大幅度提高了制作效率,改变WebGL开发困难的局面,让Web开发者享受便捷的3D开发服务。三者的难度对比如下:
ThingJS(框架)< Three.js(引擎)< WebGL(接口)
image.png

3D绘图标准 - WebGL

WebGL是一种3D绘图标准,通过结合Javascript和OpenGL ES 2.0,可以为HTML5的Canvas标签提供硬件3D加速渲染,这样Web开发人员可以借助系统显卡在浏览器里更流畅地展示3D场景和模型。利用WebGL进行绘图的流程如下所示:
image.png

由此得知,原生 WebGL进行3D网页制作,其过程非常繁琐,开发难度很多,所使用的开发概念非常底层,严重影响WebGL的开发效率。因此,很多3D图形引擎库应运而生,直接使用Javascript脚本语言开发,将WebGL进行不同程度的封装,例如“three js“、“scenceJS”、“Oak3d”和“simjs”等,这些引擎库能够让用户更加方便地进行3D图形绘制和动画的制作。

3D图形引擎库 - Three.js

以Three.js为例,绘图的流程如下所示:
image.png

threejs是基于WebGL的 3D Javascript库,它封装了场景、相机、几何、3D模型加载器、灯光、材质、着色器、动画、粒子、数学工具等。这样的封装让用户能够更加直观的在网页中制作3D图形和动画。就像是搭乐高一样轻松。
在 threejs中场景、相机和渲染器是3D图形绘制的基础:场景是所有对象放置和展示的平台;相机决定图形展示的角度;渲染器决定了渲染的结果应该画在页面的什么元素上面,并且以怎样的方式来绘制。以下代码给出了图形绘制的具体过程,如果3D模型很复杂,可以在专门的3D绘图软件中进行绘制,然后由 three. js加载图形:

var scene =new THREE.Scene();
//创建相机 
var camera =new THREE. PerspectiveCamera(75, window.inner Width/window. innerHeight,0.1,1000);
//创建渲染器 
var renderer= new THREE. WebGLRenderer(); renderer.setSize( window.innerWidth, window. innerHeight ) ;
document. body.appendChild( renderer. domElement);
//绘制立方体 
var geometry =new THREE. BoxGeometry( 1, 1, 1);
//给立方体贴材质 
var material =new THREE. MeshBasicMaterial ({color: 0x00ff00} );
var cube=new THREE. Mesh( geometry, material);
//将立方体放在场景中 
scene.add(cube); 
camera.position.z=5;
//渲染 
renderer. render( scene, camera)

基于WebGL的3D框架 - ThingJS

ThingJS是新兴的3D框架,2018年诞生,是针对物联网可视化领域的JavaScript 3D Library,旨在简化3D应用开发效率,它封装了3D源码,提供完整的物联网开发概念(建筑、楼层、房间、物、标牌、线路、区域、热图、事件、查询、地图、全景图),利用可视化开发组件在线开发(CampusBuilder【客户端下载】+ThingJS),绘图的流程如下所示:
image.png

ThingJS封装了对模型交互事件的API、对模型的操作及层次关系,一个个具体的模型抽象把初学者从复杂的3D概念中解放出来。例如常见的智慧建筑,ThingJS 平台使用Javascript调用封装好的概念进行开发,比three.js更为顶层,不用关心渲染、mesh、光线等复杂概念,具备一年的javascript基础即可开发3D项目。
image.png

较之于引擎层、接口层,3D框架无疑是更为轻松的开发方式!ThingJS不断简化3D项目开发流程,不久的将来,3D技术将会在物联网领域越来越普及。登录【资源中心】查看demo。

image.png

相关文章
|
数据可视化 前端开发 搜索推荐
数字孪生可视化开发技术(ThingJS)学习笔记
数字孪生可视化开发技术(ThingJS)学习笔记
1478 0
|
5月前
|
编解码 调度
HappyHorse 1.1 来了:把"会动的故事板"喂给视频模型,它真的能拍
HappyHorse 1.1 正式发布!支持故事板→视频(R2V)、文生视频(T2V)、图生视频(I2V)三模式,显著提升运动建模、人物/场景一致性、长prompt调度、面部微表情与音画同步能力,真正实现“能拍短片”。官方Prompt库开源,含14个可复现Demo及完整素材,新用户赠10秒免费额度。
|
人工智能 供应链 安全
暸望塔丨三大投入,为中国企业走向全球铺路搭桥
面对新一轮的历史机遇,阿里云将以战略级的投入,为中国企业出海提供一流的基础设施、一流的技术和一流的服务,与最优秀的中国企业在全球并肩前行,共赴新的大航海时代。
暸望塔丨三大投入,为中国企业走向全球铺路搭桥
|
人工智能 JavaScript 前端开发
分享开源库:AI驱动的JavaScript反编译,针对混淆和压缩的代码
这是一个智能JavaScript反混淆与代码分析工具,通过AST转换和AI深度分析,自动还原变量名、识别依赖库、生成可视化控制流图,并支持多格式导出,提升代码理解与审计效率。访问 [jsunpack.tech](https://www.jsunpack.tech/) 即可在线体验。
2987 0
|
运维 监控 JavaScript
基于 Node.js 图结构的局域网设备拓扑分析算法在局域网内监控软件中的应用研究
本文探讨图结构在局域网监控系统中的应用,通过Node.js实现设备拓扑建模、路径分析与故障定位,提升网络可视化、可追溯性与运维效率,结合模拟实验验证其高效性与准确性。
711 3
|
存储 编解码 缓存
《冬季游戏动态交互的底层逻辑优化全解析》
本文聚焦冬季游戏动态渲染优化,围绕动态积雪、实时气象、物理交互、地形形变及间接光影表现五大核心方向展开。针对初期全场景动态效果导致的帧率卡顿、服务器负载过高问题,提出“交互优先级矩阵”“地形-气象联动模型”“预计算+实时插值”等创新策略,通过核心场景高精度渲染、非核心场景逻辑简化与资源复用,实现动态元素自然呈现与性能稳定的平衡。优化后,主流设备帧率稳定在60帧以上,多人联机延迟可控,玩家沉浸感显著提升。文章结合实战案例拆解底层优化逻辑,为冬季游戏动态渲染提供兼具实用价值与独特视角的进阶方法论,彰显“取舍与协同”的渲染核心思维。
507 0
|
搜索推荐 前端开发 UED
多行业企业官网模板资源| 0代码搭建下载+高性能PC/移动端适配下载
在数字化时代,零代码建站平台与多行业模板让企业无需技术背景也能快速搭建专业官网。成本低、周期短、易维护,支持跨设备适配,助力中小企业高效实现线上转型。源码演示:m.jcedus.top
|
弹性计算 API 文件存储
DeepSeek集群版一键部署
本文介绍如何通过阿里云计算巢一键部署DeepSeek集群版,支持弹性扩缩容。DeepSeek-R1是2025年发布的开源大模型,性能与OpenAI-o1相当。集成Ollama和Open WebUI,用户可通过Web界面管理大模型。计算巢基于阿里云ACK和Knative架构,存储采用NAS,网关使用Kourier,默认拉取deepseek-r1:7B模型。计费涉及GPU规格、节点数量、磁盘容量和公网带宽。RAM账号需具备ECS、VPC等权限。部署流程简单,用户可快速启动并使用服务,支持公网和私网访问,提供API接口及进阶教程,如添加用户、下载其他模型和配置弹性扩缩容。
1362 1
阿里云短信服务的计费方式、规则和欠费说明_短信服务
阿里云短信服务的计费方式、规则和欠费说明_短信服务,阿里云短信服务价格表,阿里云短信0.032元一条,阿里云短信价格?阿里云短信怎么收费?阿里云短信多少钱一条,阿里云短信价格0.032元一条
1410 0
|
弹性计算 分布式计算 监控
祝贺叠纸新游《无限暖暖》全球开服!阿里云全球基础设施持续护航
祝贺叠纸新游《无限暖暖》全球开服!阿里云全球基础设施持续护航
939 5