一、概述

WebGL是基于OpenGL的JavaScript API /库,允许Web浏览器在浏览器中渲染3D / 2D图形,而无需安装额外的插件,桌面应用程序,任何第三方插件或浏览器扩展。WebGL允许通过浏览器使用机器GPU将3D图形渲染为HTML页面。目前,大多数现代网络浏览器(例如Google Chrome,Mozilla Firefox和Safari)都支持WebGL。可以通过浏览器设置或使用特殊插件来禁用或启用WebGL。WebGL框架和库用于创建交互式展示,基于浏览器的游戏,详细的科学和医学可视化/模拟,虚拟现实(VR)和混合现实(MR)应用程序。WebGL已在游戏,工程,数据分析,地理空间分析,科学和医学可视化与模拟等多个行业中使用。

特点:

· 只需要网页浏览器
· 适用于现代浏览器
· 不需要额外的插件或浏览器扩展
· 在移动浏览器上工作

二、常见框架

1、Three.js:JavaScript 3D WebGL库


Three.js是此列表中最著名的3D WebGL JavaScript库,成千上万的开发人员将其用于基于WebGL的游戏,模拟甚至网站。它具有简单的学习曲线,数百个演示和示例,丰富的教程库以及强大的社区。Three.js用作许多WebGL图形引擎和几个支持浏览器的游戏引擎的基础。它具有功能强大的轻量级在线编辑器。Three.js用于许多游戏,科学和医学可视化。它用作2个WebGL医学DICOM可视化框架的基础。

特点:

  1. 在线编辑
  2. 易学曲线
  3. 大型社区
  4. 用作多个WebGL游戏和图形引擎的基础

2、Cesium

Cesium是国外一个基于JavaScript编写的使用WebGL的地图引擎。Cesium支持3D,2D,2.5D形式的地图展示,可以自行绘制图形,高亮区域,并提供良好的触摸支持,且支持绝大多数的浏览器和mobile。

3、Babylon.js:Web3D图形引擎


Babylon.js是一个功能强大,美观,简单且开放的游戏和呈现引擎,打包在一个友好的JavaScript框架中。Babylon.js是一个简单但功能强大的WebGL驱动的3D图形引擎,它为JavaScript开发人员提供了简单易学的曲线,简单的API以及丰富的文档和教程列表。它可用于构建交互式3D展示/演示,3D Web就绪的产品演示,游戏,VR(虚拟现实)应用程序以及复杂的体系结构仿真。Babylon.js有很多开发人员社区,他们提供其代码片段,教程清单,当然还有可重用的扩展,以扩展其核心功能。

特点:

  • 在线编辑
  • 易于设置
  • 丰富的例子列表
  • 支持JavaScript和TypeScript
  • 丰富的摘要库
  • 模块化并包含许多有用的扩展
  • 可扩展的模块化在线查看器
  • 功能丰富的引擎
  • GUI工具

4、长丝:谷歌移动优先的WebGL框架

Filament是为Web构建的开源WebGL实时3D渲染器,是一款Google开发的跨平台的实时渲染引擎,支持PBR材质,并且针对Android平台做了优化(毕竟Google亲儿子)。它使用C ++旨在成为移动优先的3D平台。Filament由Google开发和发布,作为其开源项目的一部分。尽管它以移动设备为目标针对多平台(Android,iOS,Linux,Mac OSX和Windows),但它在开发人员中并不流行。这是一个相当新的库,但随着时间的流逝,它可能会引起游戏开发人员的注意。

特点:

  • 移动优先(Android / iOS)WebGL物理和3D图形引擎
  • 支持Windows,Linux和Mac OSX
  • 材质渲染
  • 为最佳性能而构建的C ++

5、KickJS:Web的开源图形和游戏引擎

KickJS是开放源代码(BSD许可)的WebGL游戏引擎和为现代Web浏览器构建的3D Web图形库。对于新开发者来说,它具有简单的学习曲线,因为它附带了丰富的清晰文档,教程和一些游戏示例。作为游戏引擎,KickJS支持鼠标,键盘和游戏手柄控制器。它为开发人员提供了多种工具,包括着色器编辑器,模型工具,扩展查看器以及一些带有清晰代码的游戏示例。

特点:

  • Collada DAE和Wavefront OBJ模型

  • 内置着色器

  • 持久性模型

  • 查看视锥剔除

  • 阴影贴图

  • 采摘

  • 渲染到纹理

  • 天空盒

  • 电影纹理

  • 方向灯,点光源和环境光

  • 事件队列

  • 键盘和鼠标输入

  • 序列化

  • 上下文丢失处理

6、ClayGL:构建可扩展的Web3D应用程序

ClayGL是一个Web 3D图形库,用于构建支持3D Web的应用程序,例如在真实的地理地图上绘制交互式3D街道地图。ClayGL可作为开源项目使用。

  • 特点:
  • 轻巧的
  • 缩放图形
  • 可配置高质量的图形
  • 支持缩放
  • 高级Web查看器(Clay Viewer)
  • 易于启动和学习,易于使用和学习
  • 具有高度详细的图形以及先进而详细的材料
  • 丰富的示例集。

7、PlayCanvas:网络游戏和3D图形引擎

PlayCanvas是一款轻巧的功能齐全的3D网络游戏和图形引擎。它是开发人员中最喜欢的WebGL 3D游戏引擎。它具有令人印象深刻的功能列表,可为游戏开发人员提供构建网络优先的图形丰富游戏所需的一切。PlayCanvas被许多游戏开发商使用,市场上有几款成功的游戏。PlayCanvas不仅用于游戏,还可以用于构建AR(增强现实)和VR(虚拟现实)应用程序。

特点:

  • 轻巧的
  • 快速加载
  • 移动浏览器支持
  • 基于Web的图形编辑器
  • AR(增强现实)和VR(虚拟现实)应用
  • 带编辑器的GPU粒子引擎
  • 静态,蒙皮和变形网格
  • Maya,3DS Max,Blender的完整模型导出管道
  • 强大的音频库
  • 与3D刚体物理引擎ammo.js完全集成
  • 输入:鼠标,键盘,触摸,游戏板,VR
  • 丰富的API文档
  • 带有源代码的几个游戏示例

8、WebGLStudio.js和Litescene.js:开源Web 3D图形编辑器和创建器

Litescene.js是一个简单但功能强大的WebGL库,它提供了基于组件的节点层次结构,它提供了简单的JSON代码,该代码易于嵌入到Web项目中并在WebGLStudio.js编辑器中使用,该编辑器是基于Web的开源高级3D WebGL编辑。使用WebGLStudio,您可以导出包含所有信息的JSON文件,并在LiteScene中使用它。Litescene.js使用其自己的微型库“ Litegl.js”来扭曲WebGL组件,从而通过创建用于管理不同项(例如Buffer,Mesh,Texture,Shader和任何WebGL应用程序的其他常见方面)的类,使WebGL组件更加用户友好。

特点:

  • 易学曲线
  • 强大的在线
  • 基于组件的节点系统
  • 逼真的渲染管线,它支持所有属性的阴影,反射,纹理等
  • 自动计算最佳着色器的材质系统,使其易于控制属性
  • 资源管理器以加载和存储任何类型的资源(纹理,网格等)
  • 序列化方法以将任何场景转换为JSON
  • 解析器用于最常见的文件格式
  • 容易嵌入

9、 Luma:Uber的3D WebGL可视化库

Luma是一个开源高性能WebGL2组件,用于GPU驱动的数据可视化和计算。它由Uber作为开放源项目发布和维护。它正在不断更新,它被用作2个框架的核心WebGL引擎:Kepler.gl是与数据无关的高性能基于Web的应用程序,用于可视化大规模地理定位数据集。

特点:

  • 适用于地理空间数据(大型数据集)可视化

10、A-Frame是用于构建VR(虚拟现实)体验的Web框架

A-Frame是用于构建虚拟现实(VR)应用程序的开源WebGL框架。迪士尼,谷歌,Mozilla,NASA,三星,索尼和丰田等世界顶级公司都在使用它。它非常易于使用,因为它对于经验丰富的初学者来说也很容易学习。A-Frame可在Vive,Rift等多个VR平台上正常运行,并在桌面上使用Mozilla Firefox,&Google Chrome等现代浏览器以及性能稳定的手机。

特点:

  • 专为虚拟现实(VR)和混合现实(MR)设计
  • 在Mozilla Firefox和Google Chrome上表现良好
  • 在手机上工作
  • 适用于许多VR平台
  • 大公司和品牌在其VR / MR项目中使用

11、X3DOM:在任何Web项目中构建和嵌入3D元素

X3DOM是一个WebGL框架,用于为网站和Web应用程序构建可嵌入3D Web的图形。它提供了可以添加到任何HTML5项目中的简单标记代码。

特点:

  • 易于使用
  • 准备嵌入任何HTML项目
  • 简单的可嵌入代码
  • 适用于许多浏览器,包括旧版IE和现代浏览器,例如Google Chrome,Firefox,Safari
  • 在移动浏览器(Safari IiOS),谷歌浏览器和Mozilla Firefox上均可正常运行
  • 可以在Python服务器或IIS Windows服务器上运行

WebGL开源框架列举概述相关推荐

  1. 基于MVS的三维重建算法学习笔记(一)— MVS三维重建概述与OpenMVS开源框架配置

    基于MVS的三维重建算法学习笔记(一)- MVS三维重建概述与OpenMVS开源框架配置 声明 1. MVS(Multi-view stereo)概述 稀疏重建与稠密重建的区别 稀疏重建--SFM(S ...

  2. python框架大全_常用的Python开源框架有哪些?列举这3个

    随着人工智能快速发展,不仅在各个领域应用日益广泛,同时也引发了教学内容的变革和创新.人工智能的火热得益于成功的开源以及深度学习框架的不断涌现.而Python作为一种脚本语言,具有易学.易维护等优点,它 ...

  3. Android_开源框架_Volley实例

    2019独角兽企业重金招聘Python工程师标准>>> 1.自定义相关类 在 Android_开源框架_Volley(Google IO 2013)源代码及内部实现过程分析一文中,简 ...

  4. 各种SmartPhone上的跨平台开源框架的总结

    目前SmartPhone的开发语言 Apple iPhone Objective-C C/C++ Google Android JAVA 可以使用NDK进行C/C++的开发 Windows Phone ...

  5. 【完结】12大深度学习开源框架(caffe,tf,pytorch,mxnet等)快速入门项目

    这是一篇总结文,给大家来捋清楚12大深度学习开源框架的快速入门,这是有三AI的GitHub项目,欢迎大家star/fork. https://github.com/longpeng2008/yousa ...

  6. 【完结】给新手的12大深度学习开源框架快速入门项目

    文/编辑 | 言有三 这是一篇总结文,给大家来捋清楚12大深度学习开源框架的快速入门,这是有三AI的GitHub项目,欢迎大家star/fork. https://github.com/longpen ...

  7. 【NLP】FedNLP: 首个联邦学习赋能NLP的开源框架,NLP迈向分布式新时代

    文 | 阿毅 两周前,南加大Yuchen Lin(PhD student @USC and ex-research intern @GoogleAI)所在的团队在Twitter官宣开源首个以研究为导向 ...

  8. aop拦截mybatis执行sql_Java进阶架构之开源框架面试题系列:Spring+SpringMVC+MyBatis

    开源框架 Spring5 Framework体系结构 spring5概述 Spring5环境搭建 Spring MVC AOP源码解析 IOC源码解析 Mybatis spring 什么是Spring ...

  9. Android常用开源框架

    快速索引 框架名称 上榜关键字 1.Retrofit 网络 2.okhttp 网络 3.Butter Knife 代码模板 4.MPAndroidChart 图表 5.glide 图片 6.leakc ...

最新文章

  1. 万能头文件#include<bits/stdc++.h>更新GCC10.2.0版本
  2. 国际顶刊《PNAS》:爱发朋友圈的人,更容易长寿
  3. Docker mongodb Dockerfile ubuntu
  4. 深度学习tensorflow框架的会话
  5. mysql中独立表空间与共享表空间之前如何切换
  6. arcgis将点的属性赋值给面
  7. python递归查找_[Python]递归查找文件(最简洁)
  8. NLP将迎来黄金十年,7个案例带你入门(附Python代码)
  9. python通信编程_python 通信编程
  10. 基础算法 —— 贪心算法
  11. Codeforces Round #387 (Div. 2) A+B+C+D!
  12. 用vscode创建一个c项目_Visual Studio Code创建C#项目
  13. MOSS中集成各个子网站的数据到一个页面,做决策支持页面的首选: Web Capture
  14. python : sha256 、ripemd160
  15. 2020年下半年软考中级——软件设计师考试总结感想(已过!!!)
  16. 126邮箱手机登录服务器密码怎么办,魅族手机登录网易126邮箱提示账号密码或协议设置不正确解决办法...
  17. 【热点】印度年轻人跟中国年轻人有什么不同
  18. 企业微信老是服务器异常,添加好友提示”操作异常”,企业微信需要养号吗?...
  19. pytho_抓取下载音乐歌曲
  20. 服务器开机一进系统就黑屏,win7系统开机在欢迎界面直接黑屏怎么办

热门文章

  1. 业务系统成功微服务化改造的实施步骤
  2. 关于登录时验证码无法显示
  3. 《Free Pascal 语言与基础算法》_数据排序_9_士兵站队问题题解
  4. 强、弱、一般、健壮等价类区别
  5. 删除浏览器浏览器删除cookie方法
  6. 二分图/二部图(bipartite graph)
  7. 两招教你添加滚动水印并修改视频尺寸
  8. js 苹果手机点击事件 兼容
  9. C++中的typeid关键字
  10. Java练习题12.1