java可视化压缩_web可视化技术发展(1/6)

06aacd672849283448516627cd1e50f0.png

EverCraft一直在关注Web可视化技术的发展,在本系列文章里,小编将对国外一篇感觉很不错的综述性文章进行翻译,供这一领域的爱好者相互学习。这篇paper的信息为:“Mwalongo, F., et al., State-of-the-Art Report in Web-based Visualization. COMPUTER GRAPHICS FORUM, 2016. 35(3): p. 553-575. ”。感兴趣的小伙伴可以直接阅读原文献哈。(关注公众号EverCraft,回复“可视化”可获得原文)


远程可视化技术研究在海量医学数据、社交媒体数据或商业数据的可视化应用方面发挥着重要作用。这一需求源自用户终端计算能力的相对不足,比如手机处理能力不够,或者需要可视化的数据量太大。同时,由于传输带宽、延迟时间或者本地存储的限制,即使终端计算能力足够,这些海量的数据也难以实现高效传输。况且,在某些特殊场景下,一些敏感数据或者保密原始数据也并不适合直接向其他人开放。鉴于带宽、网络延迟等问题成为远程可视化的主要瓶颈,过去有大量研究和技术集中于解决这些问题。

尽管过去的研究成绩斐然,但数据量的不断增长和硬件设备的持续发展,使得远程可视化依然一直是研究的热点。由于天然的跨平台属性、以及成为未来协作平台的潜力,基于Web的可视化技术在该领域表现得尤为突出。

基于Web的方式使得一套可视化工具代码可以跨平台执行,这不仅让团队间的协作和分享更加便捷,并且降低了程序的维护复杂度,使得可视化领域的研究者和其他应用行业领域的研究者可以更专注于研究各自领域的核心问题。更进一步,基于Web的方式使得各应用领域的研究者可以随时获得最新的数据(只需要刷新页面即可)。同时,这种可视化研究者和行业应用研究者的协同工作方式,更有助于促进可视化研究成果的落地应用。

基于Web的可视化方案的另一个明显优势则是用户的便利性。用户(比如各行业应用的研究者)只需要通过网页浏览器,而不需要安装其他任何软件。因浏览器基本上在所有的计算终端均可直接使用,用户可随时随地开展工作(只要能上网,同时其具有数据的访问权限)。因为大多的可视化解决方案均是基于GPU的,着色器代码(本质是文本类文件)可与数据同时存在服务器供多客户端使用。这种可视化方案在某些数据不便分享的场景尤具吸引力。比如用户完全可以把数据存在本地终端,通过从服务器获取着色器代码,以实现数据的可视化,而不需要将数据上传到服务器(尤其是当多用户同时在上传数据时,这将带来极大的传输成本)。显然,对于比较大的数据量而言,传输可执行的代码远比传输数据要来得简单。

早期的Web可视化技术主要利用VRML和浏览器的Java插件,或者服务端的渲染实现,以及其他集成Java、JavaScript和Flash的方式。因带宽和网络延迟的限制,这些方式的体验都比较一般。由于浏览器技术的限制,服务端渲染的方式在当时更受欢迎。

但是,近些年Web技术发展迅速,目前Web可视化技术趋势已是通过WebGL和HTML5以充分利用用户终端的GPU加速渲染,而不需要浏览器加装任何的插件。基于GPU的可视化技术将计算渲染的负担由GPU承担,以改善渲染和交互的体验(否则使用javaSript在CPU上是不可行的)。这种通过用户终端进行渲染计算的方式优点在于其避免了网络延迟带来的影响,因为其不再需要反复与服务端交换交互操作参数和渲染生成的图片。当然,虽然有了上述的进步,将部分渲染计算分流到服务端渲染或预处理依然有助于浏览器端对于复杂场景的渲染。


该系列文章将对Web可视化技术进行综述,包括讨论最新的渲染技术、底层技术、以及优化算法策略等。这些通用技术共同构建了Web可视化应用的基础,因此,本系列文章不仅关注高速、GPU加速的用户终端渲染技术,同样关注服务端渲染技术(比如网格化计算),以及如流媒体、数据压缩等降低带宽需求的技术。同时,我们讨论了各应用领域的一些Web可视化的应用程序,分析这些应用和前文所述基础技术的相关性,并进行了分类。最后,文章讨论了一些特殊的应用场景,并给出了一些落地的应用方案。

根据小编的翻译水平和时间,本系列文章基本将按如下顺序连载(某些部分内容比较多,可能又会分为子系列,大家可以随时回本页面查看目录更新):

  • 系列1:概述(也就是本文了)
  • 系列2:作为Web服务的可视化
  • 系列3:基于网格计算的可视化&基于云计算的可视化
  • 系列4:浏览器的本地渲染
  • 系列5:数据编码与传输技术&基于Web可视化的应用
  • 系列6:Web可视化技术的分类&总结

EverCraft.co(关注公众号EverCraft,获取更多信息)

我们相信。每个人都具有创新的力量,每一份对未来的设计都将让生活变得更有趣。

417fe81e8aacc3d72a0759077d38cf90.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/346442.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

suse11 rpm 安装mysql_SuSE11安装MySQL5.7.22:RPM安装方式

摘要:SuSE11sp3 64位操作系统、 MySQL5.7.22 rpm安装包5.7版本与先前版本安装有所区别,需要注意注:kingtry是我的主机名一、环境准备操作系统:SuSE版本11sp3,64位kingtry:~ # uname -aLinux kingtry 3.0.76-0.11-defau…

python有多少库存_库存究竟多少才算合理?

本文摘自以上刘宝红老师著作。作为库存计划人员,不管你的库存周转多快,总有人挑战你,说你的库存不合理。不合理,其实是太高的代名词。不过想想看,每一分钱的库存都不是凭空而来,都是为了特定的业务需求而设…

java中iterator_如何在Java中读取CSV文件-Iterator和Decorator的案例研究

java中iterator在本文中,我将讨论如何使用Apache Common CSV读取CSV(逗号分隔值)文件。 从这个案例研究中,我们将学习如何在设计模式的上下文中使用Iterator和Decorator来提高不同情况下的可重用性。 但是在开始之前,我…

屏幕坏点检测图片_电视屏幕出现坏点?行家会这样做!

液晶电视经常会有几个亮点或暗点,这些通常被称为电视坏点。作为强迫症患者,面对这些屏幕坏点我们应该怎么做?下面跟小智聊聊这个问题吧!首先,坏点形成的原因首先是因为液晶屏幕由很多点组成,每个点由RGB三原…

python中int函数的用法浅析_Python中int()函数的用法浅析

int()是Python的一个内部函数Python系统帮助里面是这么说的>>> help(int)Help on class int in module __builtin__:class int(object)| int(x[, base]) -> integer|| Convert a string or number to an integer, if possible. A floating point| argument will be…

Java:GraalVM数据库流性能

GraalVM是JVM块的新成员。 它是一个开源虚拟机,能够同时运行多种编程语言,例如Java,Rust和JavaScript。 GraalVM还有一个新的内部代码优化器管道,在某些情况下,与其他JVM相比,它可以显着提高性能。 了解如何…

kubelet启动失败_kubelet 架构浅析

一、概要kubelet 是运行在每个节点上的主要的“节点代理”,每个节点都会启动 kubelet进程,用来处理 Master 节点下发到本节点的任务,按照 PodSpec 描述来管理Pod 和其中的容器(PodSpec 是用来描述一个 pod 的 YAML 或者 JSON 对象…

shell 提取sql 的字段名表名_SQL代码风格规范

作为新时代SQL Boy,大部分时间都是在写sql,很多时候看到别人写的代码实在是不规范,命名随便写,没有缩进,看起来很没有逻辑性,今天分享下我自己的一些规范,从这里修改而来。--名称:xx…

亚马逊ec2 实例删除_亚马逊免费使用套餐:在EC2 Linux实例上安装Tomcat 7

亚马逊ec2 实例删除Amazon Web Services提供了12个月的免费使用期限,使开发人员可以在云中运行任何他们想要的东西。 免费层包括14个服务,其中Web开发人员最关注EC2服务。 EC2是一项服务,通过停止和启动Windows和/或Linux的虚拟实例来提供可调…

carbondata与mysql_Apache CarbonData 1.4.0 中文文档

故障排除本教程旨在为正在构建,部署和使用 CarbonData 的用户和开发人员提供故障排除。当加载数据时,遇到 tablestatus.lock 问题:现象17/11/11 16:48:13 ERROR LocalFileLock: main hdfs:/localhost:9000/carbon/store/default/hdfstable/tablestatus.l…

使用混合多云每个人都应避免的3个陷阱(第4部分)

每天都在肆意宣传云,但每个人都应避免三个陷阱。 从云,混合云到混合多云,您被告知这是确保业务数字化未来的一种方式。 您必须做出的这些选择不会排除提高客户体验和敏捷交付这些应用程序的日常工作。 让我们开始一段旅程,仔细研…

mysql语句使用_Mysql基本使用语句

数据库端口号:Mysql:3306 Orasle:1521 Sqlserver:1443DML: 数据操作语言(检索或者修改数据)DDl:数据定义语言(定义数据结构,比如创建、修改或删除数据库的对象)DCl:数据控制语言(用于定义数据库用户的权限)DML&#xf…

python getattr_Python中的getattr()函数详解:

标签:Python中的getattr()函数详解:getattr(object, name[, default]) -> valueGet a named attribute from an object; getattr(x, ‘y‘) is equivalent to x.y.When a default argument is given, it is returned when the attribute doesn‘texist; without …

python内核死亡的原因_Python的内核由于DLL而死亡

对于机器学习课程,我正在用python做练习。我们的作业必须使用Jupyter笔记本。虽然这在我的笔记本电脑和我的办公桌上运行得很好,但我不能在家里的桌面上运行任何东西。在因为我不确定是否允许我发布给我们的样板代码,我不会这样做。但无论如何…

Java,JavaFX的流畅设计风格拨动开关

嗨,这次我将在新版本的JMetro中讨论新的Toggle Switch样式。 拨动开关是一种近年来变得非常流行的控件。 我前一段时间在ControlsFX库中添加了JavaFX实现。 刚刚发布的JMetro版本4.1中提供了此新样式。 什么是拨动开关 在以前的文章中,我谈到了切换开…

python登录页面_Python:简单的登陆GUI界面

import tkinterimport sysimport retop tkinter.Tk()top.geometry(‘400x170350150‘)top.wm_title(‘综合实例‘)def validateText():val entry1.get()if re.findall(‘^[0-9a-zA-Z_]{1,}$‘,str(val)):return Trueelse:label3[‘text‘] ‘用户名只能包含字母、数字、下划…

python解析多层嵌套json_Python爬虫解析多个嵌套JSON,多级,json

Python爬虫解析多级嵌套json最近刚接触Python爬虫,正好最近肺炎在全国蔓延,所以准备从网站爬取肺炎实时数据,并解析自己想要的数据。获取json数据网址为 https://m.look.360.cn/events/feiyan爬取网址:def main():urlhttps://m.lo…

python __call__一般用在哪些地方_Python __call__内置函数的作用和用法

开学了进入了实验室,需要协助大师兄做事,主要是OpenStack中的代码解析,但是涉及很多python高级用法,一时间有点麻烦,在做项目的同时慢慢更新博客。这次先写一下__call__的用法,因为经常看到它却不知道到底是…

如何使用vps 异地组网_使用ZEROTIER异地组建内网(局域网)

一、注册账号(该网站打开比较慢,但并不影响组网后的网速)二、建立虚拟局域网网(获取Network ID)1.选择菜单栏的Networks菜单2.选择创建网络3.注意获取到的Network ID(需要在每台组网的电脑上加入这个network id)4.大部分设置默认就可以了.三、下载软件点菜单中的Dow…

编写一个watchdog.sh脚本_五大原因!为何要将Jupyter Notebook转换为python脚本?

全文共3360字,预计学习时长9分钟图源:unsplash大多数数据科学在线课程都把Jupyter Notebook作为教学媒介,这是因为初学者在Jupyter Notebook的单元格中编写代码,比编写包含类和函数的脚本更容易。另一个原因在于它使浏览和绘制数据…