1、PDF外文:http:/ 基于 WebGL 的在线 书店 模拟现实 书店 的显示方法 Kazuhisa Yanaka and Terumichi Iizuka 摘要 得益于互联网的迅猛发展,近年来使用在线 书店 的机会比以往多了很多。然而对于典型顾客来说,凭直觉去分辨哪些书销量好或者说哪些书是 书店 极力推荐的仍然是一件难事。因此,我们开发出了一套虚拟 书店 展示系统,这套系统可以 使用 WebGL 将在 在书架上摆放好的或者在书桌上堆积的书展示在客户面前。因为被囤积的书目的总数是被服务器端控制的现状需要被改变为由客户来控制,所以我再次介绍一种基于超文本预处理器( P
2、HP)的服务器端技术。 关键词 网络购物 在线书店 WebGL 1.引言 网络购物近些年来逐步完善,而且有潜力在将来的时间里取得更加令人瞩目的成就。由于商店的租金,员工的工资,店铺的供暖供电这些消费对于在线书店来说都是不必要的,所以相对于现实中的书店,创建一个在线书店显得便宜很多。而且,对于网络购物来说现货的供应量十分充足,已经下了的订单货物经常会在一天之内送达。外国产品也可以轻易地在进口或者海外网站上购得。 书是这众多适合网络销售的产品中的一类。事实上,只从网上购书的顾客有很多。但是,尽管在线书店相对于现实书店在很多方面
3、都很方便,很多时候对于顾客来说在线上书店里寻找一本真正适合 自己的书仍然不如在现实书店中那样简单。因为在身处现实书店中的情况先,顾客们可以凭书在书架或书桌上的位置轻易的判断出哪些书是热销的或者是店家极力推荐的,因为那些书目都被放置在优先的显眼的位置,通常来讲那些销量很好的书都会被平铺在靠近过道的桌面的第一线,因为这样这写书就会被顾客优先轻易地看到并拿起阅读。相反,那些并不流行的书目就会被放置在书架上不显眼的位置。 然而在现在的网络书店中,与上述相反,所有统一大小的封面的书目被摆放成一条线。这样一来,顾客就很难挑选出热销的以及店家推荐的书目。我们感觉,如果我们将网络书 店中书目的摆放
4、方式变成和现实书店中的一样,顾客就会很轻易的挑选出那些热销书。因此我们开发出了一套满足一下两个条件的试验系统: 1 在现实书店中展示的书目将通过计算机图形学在网络上再现出来。 2 书目的库存体现在基于计算机图形学的网络在线展示中。 在这篇论文中,我们提出了一种实现以上两个条件的方案,这个方案用到了超文本预处理器( PHP) 【 1】 与网络图形库( WebGL) 【 2】 【 4】 等互联网技术。 2.基于 WebGL 的展示方法 2.1 基于网络的 3D 计算机图形学技术 &nbs
5、p;第一个在网络上描述 3D 物体和场景的技术是虚拟现 实模型语言( VRML),它是在二十世纪九十年代中期被提出的。它在 1997 年被 ISO 标准化为 VRML97(ISO/IEC 14772-1:1997)。这个技术的主要目标是在互联网空间中创造虚拟世界。 VRML 的继承者是 X3D( ISO/IEC 19775-1:2008),它使用的是 XML 的文件格式。 相似的被各种私人公司开发出的基于网络的 3D 计算机图形学技术有很多,它们都被共同识别为 WEB3D,并应用于网络产品宣传,比如汽车,因为通常被渲染的图片的品质非常的高而且计算机图形数据可以被很好的保护,这意味着
6、数据的滥用将会被有效地防止。 然而,上述提及的技术非常遗憾的并不适合我们的系统 ,因为它们均被分类成为文件格式或者数据描述语言而不是用于编程语言的应用程序接口( API),这意味着我们的目标文件需要被提前进行模式化处理。换句话来说,这项技术并不是特别是和动态地交互地创造图形文件,尽管 JAVA 在 VRML 和 X3D 中一定程度上可以控制物体的运动。而且,浏览器提供额特定系统的支持是必须的,或者说一些插件需要被 运用在当下的一些浏览器中。另外在现在的一些 WEB3D 系统中,常规的程序员并不能自己创造出计算机图形数据文件因为这些文件格式并不是开源。 2.2 WebGL
7、 WebGL,是由一个非营利性组织 Khronos Group【 2】 开发的, 它是相对来说比较新的技术 ,它的发展开始于 2006年左右,并在 2011年发行了 1.0版本。 WebGL看起来和现有的很多技术很相似,用视口的方式在浏览器中展示 3D物品,但是它和之前的 VRML不同因为 WebGL是夸平台的javascript API 基于 OpenGL ES 2.0通过 HTML5的 canvas标签引入,总的来说它有以下 5个特点: 1. 和 VRML, X3D一样,网页可以通过文本编辑器创建。没有特别的需要的开发工具。 2. 创建网页的发行非常简单。不需要特别
8、的网页服务器,常规的 HTTP服务器 Apache就可以完成任务。 3. WebGL被近期更新的浏览器所支持,比如 google chrome, firefox, opera和 safari,并不需要插件。 4. HTML的原有功能可以和 3D现实进行同步的实现,因为 3D现实的部分由 canvas标签实现,它只是网页的一部分。 5. WebGL的说明书,其实和 OpenGL2.0一样都是开源的,这里 OpenGL也是由 Khronos Group经营的,它是用来绘制 3D图形的的 API,这意味着程序员可以随意自己创造 3D图形,甚至在服务器端如果使用 P
9、HP的话。 所以基于以上的特点,我们选用 WebGL去创造 3D物品,比如我们的书和书架。 2.3 Three.js 因为 WebGL包含了相对比较低等级 API,所以并不是所有的程序员都可以很好地掌握它,所以很多的 Javascript语言写的免税版的库的开发都是因为这个原因。因为很多低端的 API都从库中抽离了出来,先进的计算机图形学工具可 以方便的用很短的程序区获得他们。在这些工具库中我们采用了 Three.js【 3】 【 5】 因为它是最流行的库之一,是西班牙的一位程序员 Ricardo Cabello编写开发的。 3.服务器端技术 如
10、果用户的操作并不影响存在服务器中的信息,这个操作将会在用户端被执行。然而,书目的总数实在服务器端被控制的并不是之和用户有关,如图 1 展示。这类程序并不能只在用户端进行操作,也需要服务器端的支持。 典型的服务器端技术包括: -服务器端 Java -APS.NET -PHP 这里, PHP 是一种服务器端脚本语言用于网页开发,在这篇论文中,我们选择使用 PHP因为它一直被广泛的使用。 图 1 服务器端技术是必要的 互联网 客户 (浏览器) 客户 (浏览器) 客户 (浏览器) 库存管理系统 服务器 (网络服务器)