索爱率先宣布在 Xperia 机型上支持 WebGL

在10月28日的一次大规模软件更新中,索爱为Xperia系列的手机增添了WebGL支持。至此,索尼爱立信成为第一个在Android浏览器中支持WebGL的手机生产厂商。

今天,索爱在开发者频道公布了这一消息,并同时放出了一段在Xperia arc S手机上运行WebGL的视频,以及3个专门为此开发的WebGL在线Demo。分别是:

如果你有2011年发布的Xperia手机,并且已经更新了最新的软件,可以在浏览器中点击上面的地址查看。以下是演示视频。

同时,索爱技术研发部的工程师Anders Isberg还介绍了WebGL技术和如何开发支持触摸交互的WebGL应用。

目前我们所能见到的绝大部分WebGL Demo都是为桌面环境开发的,并不支持触摸交互,这一点在我们之前报道iOS上支持WebGL的浏览器时提到过。这些Demo都是使用了W3C DOM鼠标和键盘事件来进行交互的。但是在移动设备上,必须使用触摸事件。Android浏览器支持以下几种基本的触摸事件:

  • Touchstart:当手指放置到一个被选择的DOM元素时触发。
  • Touchmove:当手指一个DOM元素之上移动时触发。
  • Touchend:当手指从一个DOM元素离开时触发。

下面是一段示例代码,演示了如何监听Canvas标签的Touchmove事件。

1
2
3
4
5
6
7
8
9
10
// Add an event listener on the WebGL™ canvas
webglcanvas.addEventListener('touchmove', onTouchMove);
 
function onTouchMove (event) {
// Cancel the default event handler
event.preventDefault();
// Readout the current X and Y coordinate relative the viewport
var currentX = event.targetTouches[0].clientX;
var currentY = event.targetTouches[0].clientY;
}

大部分情况下,用来处理鼠标事件的代码可以重用于处理触摸事件。目前也有一些可用的框架,能够大大简化处理触摸事件的开发难度,比如jQuery的一个触摸插件Mobile jQuery,前者同时支持触摸事件和鼠标事件,后者甚至支持类似滑动等等的很多高级触摸事件。

因为目前Android浏览器不支持web worker,而很多WebGL图形库都是使用web worker来载入资源的,所以在这一点上还是限制了WebGL的运行效率。在索爱公布的WebGL Demo中,开发者使用了一个JavaScript中间层来模拟web worker。

另外,即使现在手机的硬件配置日新月异,但是仍然不能和桌面电脑媲美,所以在为移动设备开发WebGL应用时,性能还是重中之重。开发者必须小心的编写着色器代码,注意3D模型的面数和纹理贴图的尺寸大小。索爱推荐开发者阅读他们的文章《在Xperia PLAY上优化着色器性能》

好了,总之这应该是WebGL技术发展历程上的一个值得纪念的日子,WebGL第一次官方的从桌面环境跨入了广阔的移动天地!开发者们,让你我一起加油!

 

HiWebGL编译报道,转载请注明出处!

分享到: 更多
Posted in WebGL新闻. Bookmark the permalink.

2 trackbacks

WebGL新闻 | 索爱宣布将 Android 4.0 上的 WebGL 后端实现开源HiWebGL | HiWebGL | 最好的HTML5 WebGL中文资讯站
2012 年 1 月 27 日 下午 6:54
WebGL新闻 | WebGL All in One 全傻瓜简介HiWebGL | HiWebGL | 最好的HTML5 WebGL中文资讯站
2012 年 2 月 29 日 下午 12:08

Post a Comment

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>