跳到主要内容

可视化(WebGL)

可视化知识结构图:

2241-FwzhiB

可视化的视觉主要涉及四个部分,分别是理论基础、图形系统、图形库和工具。看起来内容很多,但我们没有必要全都深入学习。而是应该把重点放在理论基础上,因为随着技术的发展,工具会改变,而基础不会。视觉部分的理论基础就是数学和图形学,也就是说,我们必须要学会如何运用数学和图形学知识,来绘制各种各样的几何图形,这样才能实现更加酷炫的视觉效果。

Web 开发主要以 HTML 来描述结构,以 CSS 来描述表现,以 JavaScript 来描述行为。而可视化则较少涉及 HTML 和 CSS,它更多地要同浏览器的 Canvas、SVG、WebGL 等其他图形 API 打交道。这是因为,Web 开发以呈现块状内容为主,所以 HTML 是更合适的技术。而可视化开发因为需要呈现各种各样的形状、结构,所以,形状更丰富的 SVG 以及更底层的 Canvas2D 和 WebGL 就是更合适的技术了。

浏览器中实现可视化的四种方式

第 1 种是传统的 HTML+CSS。这种方式通常用来呈现普通的 Web 网页。

第 2 种是使用 SVG(Scalable Vector Graphics,可缩放矢量图,它是浏览器支持的一种基于 XML 语法的图像格式)。SVG 和传统的 HTML+CSS 的绘图方式差别不大。只不过,HTML 元素在绘制矢量图形方面的能力有些不足,而 SVG 恰好弥补了这方面的缺陷。

第 3 种是使用 Canvas2D。这是浏览器提供的 Canvas API 中的其中一种上下文,使用它可以非常方便地绘制出基础的几何图形。在可视化中,Canvas 比较常用。

第 4 种是使用 WebGL。这是浏览器提供的 Canvas API 中的另一种上下文,它是 OpenGL ES 规范在 Web 端的实现。我们可以通过它,用 GPU 渲染各种复杂的 2D 和 3D 图形。值得一提的是,WebGL 利用了 GPU 并行处理的特性,这让它在处理大量数据展现的时候,性能大大优于前 3 种绘图方式。因此,在可视化的应用中,一些数据量大、视觉效果要求高的特殊场景,使用 WebGL 渲染是一种比较合适的选择。

2237-IBpbhC

SVG 是以创建图形元素绘图的“声明式”绘图系统,Canvas 是执行绘图指令绘图的“指令式”绘图系统。

优秀的开源框架

图表库

GIS 库

渲染库