说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

欧朋 CTO 罗志宇:谈Sphinx游戏引擎的前世今生

HTML文档下载 WORD文档下载 PDF文档下载
欧朋CTO罗志宇,在接受我们的采访时讲到:技术方面,如何让H5的体验最好,就是Sphinx游戏引擎负责的事儿。渠道方面,去年年底,欧朋累计有1亿用户,今年预计达到2.5亿。我们可以构建完整的HTML5产业生态。

2013年2月份Sphinx游戏引擎在西班牙巴塞罗那世界移动通信大会上首次亮相,今年7月份该款游戏引擎开发者社区上线。最近,Sphinx游戏引擎已经开放公测。我们可以看到,从今年2月份到现在,在Opera的大力推动之下,Sphinx的发展速度很快,进展很大。现在,合作游戏也已经面市了。

CSDN:Sphinx——“狮身人面像”,它的寓意是什么?

罗志宇:因为在Opera里面,每一个项目程序员都自己取一个项目代号。Sphinx是个项目代号,当时没有更合适的东西了,就拿出来了。当时为什么取Sphinx呢?因为它是狮身人面像,看起来是个人,其实是个狮子,因为你没发现它看起来是个游戏引擎,其实它本质上是个浏览器,它是承载一个HTML5游戏的快速浏览器而已,所以取这个名字。


图:欧朋 CTO 罗志宇

CSDN:它是在哪个层面上的技术呢?浏览器是排版引擎和渲染引擎的结合体。Sphinx算是一个排版引擎?还是一个渲染引擎?

罗志宇:渲染引擎。这个游戏引擎可以打开百度、Google、新浪都可以打开。

CSDN:对于各种手机芯片,比如像Qualcomm、MTK没有经过优化?

罗志宇:我们其实没有对哪一家的厂商进行优化,我们还在和他们谈。因为整个东西很奇怪的,行业里的竞争蛮激烈的,今天根高通讲,你要是比MTK快的话,就跟你合作?明天跟MTK讲你要是比高通快,我就和你合作?

其实行业内现在看起来这方面芯片的差距蛮小的,没有想象那么大,他们的性能差距小,竞争太激烈了。今天你出一个新东西,明天我一定要赶上来。所以整个Sphinx引擎,我们还没有为专门的芯片做优化。我们也觉得没有这个必要,因为你见过为哪个游戏为芯片做优化的吗?没有吧,其实没有必要。但此后,如果说哪个厂商有推进的话,我们也会继续做下去。因为也想做出一个差异点,但这块的工作现在还没开始。

CSDN:Sphinx引擎是通过什么方式做性能优化的,能不能讲具体实现的思路?

罗志宇:至于实现的思路蛮简单的,因为之前所有的浏览器可能更偏向于软的方面。你要知道整个浏览器本身的性能进化,和硬件加速不是同时进行的。在工业里面,和硬件加速GPU同时演进的是游戏。你经常会看到游戏厂商,出个新游戏,需要很高的显卡配置,大家就会去买新显卡。出了新显卡以后,游戏厂商一定会出一些新游戏。因此游戏本身和硬件加速是互相促进的。

浏览器从来都不会加入这种竞赛。浏览器本身是非常晚的时候,可能是前几年才加入到游戏行业中来。这导致大部分的移动浏览器对硬件加速支持都相当不好。现在应该没有一个浏览器是支持全硬件加速的,Chrome属于半硬件加速。如果从技术上讲的话,它属于半硬件加速的过程。为什么呢?浏览器的第一设计原则,最高的设计原则,一定是可以更好的浏览网页。然而看网页和打游戏是矛盾的,这不是一套体系的东西。网页可以是5000个像素可以卷10屏,游戏则完全不然。所以,整个游戏引擎是把设计的坐标从网页浏览,拨向了游戏。这样它可以完全使用所有的硬件加速资源。我们现在所有渲染都是在GPU端运算的。而在浏览器里面的话,现在最好的Chrome结构,也就在50%左右是在GPU端进行的。很多情况下,只要任何一种异常情况发生,它就会回退到CPU端进行渲染。

CSDN:那么它是OpenGL?

罗志宇:对OpenGL!也就是所谓的OpenGL ES,相当于是和GPU进行通讯的协议,这个其实是工业标准。在Android上面就是OpenGL ES。

CSDN:这个引擎最先开发的是哪个部分?比如您可能要出一个原型Demo,可能要给团队的领导演示它。那么最先着手做这个项目的时候,最先做的一块是什么?然后又是从怎样的情况下延展开来,完善周边的支持和优化?

罗志宇:其实这个技术是蛮奇怪的,这个技术如果从最初说起的话,不是从去年开始的。整个引擎的技术先进行了验证,从2007年就开始了。2007年我在Opera总部的时候,整个技术已经被验证过一次了。第一版是用在了Opera 移动浏览器上面,然后这是第二版,所以,从Symbian时代就开始搞这个了。

你会发现一个很好玩的事情,如果你看Opera  mobile的发布史的话,它发了一个Opera mobile10  beta,然后就直接发Opera11正式版了,中间是没有Opera10正式版的。那块就是我做的,因为这种渲染技术引入之后,我们发现性能提升非常大,就不再发Opera10了。因为整个项目结构都变了,就直接发Opera11。这也是第一个使用这种渲染技术的产品。

在同期产品里你可能记得很清楚,所有的浏览器在卷动页面的时候都会有花格子阶段,这时浏览器在做渲染,如iPhone上面。实际上Opera11是没有的。

就是说,页面下面面有马赛克一样的方格,而后系统才慢慢填充过来。但Opera11不必有马赛克,这就是我们渲染技术。这种渲染技术,可以说是第一次在尝试硬加速。这个技术本来已经验证好了,所以今天的Sphinx开发其实没有像你说的,从一个点,像做实验一样扩散的过程。它更像是一个技术的演进,这个技术沉淀的时期是蛮长的。

Android 3.0开发用的平板推荐 android.resource://这个Uri你知道吗 ADT插件的10.0.1必须要Eclipse 3.5才能升级 Android线程优先级设置方法 Android Zip文件解压缩代码 Android开发之设置断点单步调试 Android裁剪图片最简单方法 Android平台待开发软件列表 Android开发知识-3月13日总结 Android平板开发注意点 Android 3.0自带的天气预报例子代码 Loader和Fragment使用示例代码 LoaderManager - Android 3.0新特性 帮助ADT改进DDMS中的Logcat中文乱码问题 Fragment API将兼容Android 1.6到3.0 通过Linux Shell实现Android横竖屏切换 Android高手应该精通哪些内容? Android 2.2开始resources.arsc有改变 分析你的Android ANR错误 API Level对照表,更新至2.3.3 ProcessDialog结合Thread处理耗时操作 Fragment示例代码 DialogFragment示例代码 ActionBar示例代码 (二) Action Bar示例代码 (一) ActionBar使用方法 - Android活动栏(二) Action Bar使用方法 - Android活动栏(一) DialogFragment类介绍 Android Fragment使用详解 Fragment对比Activity - Android碎片介绍 Android 3.0新增日历控件CalendarView 急!急:如何使用链接来调用运行本地应用程序(exe文件)?请高手指教,多谢! 如何将一个ip捆绑多个域名,并且将域名与虚拟主机一一对应?这样作dns或路游等设置较普通设置有何异样??请高手指点,谢谢!!! 如何在一个win2k server的服务器上创建一个MSMQ队列! 请大家帮忙看一下,这个问题怎么办???? 请问vb里面的直方图用哪个控件,怎么画? vc和java,哪一个更有钱途? 請問哪里有條碼字體下載??? 看<windows程序设计>(第五版)章节上有什么顺序吗? 关于windows 可执行文件的结构问题! 如何才能得知当前路径?比如VB的App.Path? 能否向asscess添加图像字段,如果可以,那么要怎样写入和读出,请各位关注 谁知道用代码在treeview web控件中,添加node的方法? 关于金山公司的词霸那样的弹出菜单怎么做? 我从哪里可以买到powerbuilder8的多媒体教学光盘?thanks! 哪伟大侠有GB2322的汉字内码表啊? 关于对眼球经济的探讨(请各联盟盟主来看看!!!) 错在哪里? 如何才能实现将ListView的一列拖到另外一列的位置? 在VC#中订阅消息要手工输入,为什么不做成VB一样?有简单方法吗? 请问网吧管理软件是如何使屏幕变暗,并显示自己的对话框,禁止其他操作的? 第一次用VB,请指教 多线程中如何申请一块存储空间 Code Guard是什么东东?在线等待,马上给分! 这个错误是什么原因啊? 请问怎样获得默认打印机名! 哪位大虾能给小弟一点有关汉诺塔问题的资料呀?! ShellExecute(this.Handle,null,"c:\\",null,null,1)问题再探 PB6.5如何实现选择文件路径对话匡?急!在线等待。 为什么下面的enum定义要有一个方括号? dot menu是什么意思? 请教大侠为什么(333)这句不执行 如何将olecontainer载入的word文件全部显示,而不只显示第一页? 简单问题! 高手帮忙!如何通过服务器来自动查找、替换客户端文件 为何timer控件失效? @这个字符在C#中有何具体意义?不解 如何将sql server的检查约束延迟到Commit时 ado连接sql库问题 为何无法ping自己的地址呢? 滚动条判断 单个窗口程序可以运行,但是几个窗体连在一起就不可以了,好像是多线程的问题,请教各位 关于DBgrid再次求救 今天我好失败——斑竹过两天删除吧,让我宣泄一下 哎呀!!各位何必拉帮结派呢!!!这样不好啦!!影响水园大团结啊~~~没有加入帮派的人就很难在水园呆下去啦。。猪猪。。只有和他们沦为 CreateBitmap 与 CreateCompatibleBitmap 弹出一个窗体但是又不抢占其他窗体得焦点,怎么办? 利用DW-MX制作ASP.NET程序教程! vc中 调用 VB dll 时参数类型如何确定? 谢谢! 如何才能得知当前路径?比如VB的App.Path? Conn.OpenSchema怎么得到字段的信息? 一个进程写在共享内存中的数据被另一个进程读出去后的问题 不同温度的液体经过相同的管道空间,是低温物体吸热多还是高温物体吸热多液体为水,温度分别为25度,35度?液体为原油,温度分别为25度,35度?在这四种情况下,液体经过相同的管道空 铜的 摩尔质量是6.35*10的-2次方kg,密度为8.9*10的3次方kg/立方米,求(1)铜原子的 质量和 体积.(2)1m³铜所含的 原子数.(3)估算铜原子的直径 matlab中使用多个矩阵的问题用matlab做题,编了个程序,但程序中需要用到两个自变量,而且每个自变量的取值都给出来了,例如函数 y=(x1,x2);现在x1=[1,2,3,4,5,6,7,8,9]; x2=[2,3,4]; 如何将y的值都列出 表示水美的词 西藏现在的温度是多少 在matlab中,如何读出矩阵中所需要的列,将其保存在新的矩阵中?例如:x=[1 1 1 1 11 1 1 2 31 1 2 1 41 2 1 1 31 2 1 2 81 2 2 1 41 2 2 2 32 1 1 2 72 1 2 1 32 1 2 2 52 2 1 1 42 2 1 2 62 2 2 1 71 1 1 1 11 1 1 2 31 1 2 1 41 1 2 2 51 2 几个描写水美的词 西藏地区温度多少海拔多高 铁受到磁体吸引,是磁场的作用吗,与带电体在磁场中运动受力相同吗? 把一元硬币放在不透明碗的碗底,移动碗的位置,使自己恰好看不见硬币.缓慢地将水倒入碗底,你会发现什么?请解释的清晰一点,别设什么ABC的, 关于pV=nkT的问题1.k值与什么有关?2.气体分子平均动能与哪个量有关?3.气体分子势能与哪个量有关? 库房温湿度超标应采取什么措施 本来碗里没有硬币,后来往碗中慢慢倒水就会有一枚硬币在水中.怎么回事?怎么变? 西藏夏季的温度暑假想去趟西藏,不知道西藏的温度,顺便说说带些什么衣服比较合适呢?(需要带毛衣么?秋裤呢?) 化学品存放温湿度超标怎么办譬如我们公司有一些化学品,如次氯酸钠,三氯氧磷,PH标准液等有存放温湿度要求,如果温湿度超标了,应该怎么办?除了调整温湿度,是不是还要对库存品进行重检? 在碗里放硬币加水的折射现象,硬币会升高吗加水后眼睛会看见硬币,看上去碗底的硬币会升高还是下降 请问三月份西藏的气候、温度是怎样的? 并联电阻的等效电阻的倒数等于()之和 在桌子上放一只空碗,在碗底放一枚硬币,移动视线,直到刚好看不到硬币,停止移动视线,保持不动,请 一道物理题求助 草,羊,老虎这些生物形成了草原生态系统的一条食物链.这条食物链是;生产者是;消费者是; 诗歌的知识要短 现代诗歌文学常识不是古代古诗!是现代诗歌! 求函数f(x)=2x^3-9x²+12x-3的单调区间和极值点. 请写明步骤谢谢还有一问。试问a为何值时,函数f(x)=asinx+(1/3)sin3x在x=兀/3处取得极值?它是极大值还是极小值?一样请写出步骤 谢谢! 两立方水水温40度,用3000度的火加热水到100度需要多长时间 PV=nRT的理解其中n为物质的量,物质的量代指什么啊?能不能把压强理解为气压啊? 磁铁的磁场强度可以计算吗哪些磁铁的磁场强度大 怎样计算 是永磁铁 3相380伏动力电,4500安培的设备,功率是2961千瓦吧,用多粗的电缆?怎么计算急! 已知函数f(x)=x^3+mx^2+nx-2的图像过点(-1,-6),且函数g(x)=f'(x)+6x的图像关于y轴对称.求m,n的值.我做出来是m=3,n=6 f ' (x)=3x^2+2mx+n,g(x)为偶函数,所以满足g(x)=g(-x),g(x)=3x^2+2mx+n+6x,所以就有3x^2+(2m+6)x+n=3x^2-(2m 磁体周围的磁场大小怎么算?就是比如半径r的球形永磁体,在距球心xm处的磁场大小怎么算?最好有公式推导和数据.另,一个永磁体和一个相同半径的无磁性的钢球相距x米的话怎么算? 实验题(月球上的环形山是怎样形成的) 我的假设:实验所需的材料:实验步骤设计:怎样使模拟的环形山大小不一,深浅不同?方法是: 为什么函数f(x)=(x-1)(x+1)²(x-2)³的极值点有三个? 地球磁场强度有多大? 关于古诗的知识,短一点! 函数f(x)=(x²-1)³+2的极值点是( ) 并联电路总电阻等于各个并联电阻倒数之和的倒数对不对 已知三相表的三根线电流怎么算功率?A线30.3安 B线28.5安 C线23.7安.怎么算功率啊? 高一数学必修一函数的性质已知f(x)=-4x的平方+4ax-4a-a的平方在区间[0,1]内有一最大值-5,求a的值. 下图是某生态系统中三种生物数量的直方图 若甲乙丙构成一条食物链 则可以表示为为什么呢 有没有规定生产者 消费者和分解者的数量 哪个最多 哪个最少呢 哪些固体与液体的反应是吸热反应 湖北省的枣阳市为什么叫“枣阳” 函数性质y=4sin(X+30°)是什么函数. 不用热字描写景物 表现天气炎热和人们的心情 湖北枣阳 请教一道一直以来都不懂的物理题.一直都没有弄懂..如果在竖直方向将弹簧测力计调零,再拉木块做匀速直线运动,弹簧测力计的示数是大于木块实际所受摩擦力还是小于?标答说是小于,可是为 两段用写景的文字表达心情,写出表达了什么心情.200字左右,要表现出心情...从别的文中摘抄... 在室温下,冰熔化成水后所具有的能量与水的能量那个高? 一道物理题.懂进.随着人们环保意识的日益提高,节水型洁具逐渐进入百姓家庭.所谓节水型洁具,是指每冲洗一次的耗水量在6L以内的洁具.某家庭新安装了一套耗水量为5L的节水洁具,而原有 请教三相电与单相电混合怎么计算电流现在一个电箱,进线是380V的,电箱分给其他支路有的是接三相电机,有的是接照明、单相插座的,请问在电箱的系统图中要计算Ijs电流是怎么算?是看成全部 若函数y=mx2-6x+2的图像与x轴只有一个公共点,求m的值. 推理得出并联电路中总电阻的倒数,等于各并联电阻的倒数之和. 单相电流计算公式 .(09·广安)小聪家最近正在装修,爸爸去订了纯铜电线,并带回了样品.小聪用手弯曲点线,感到很硬.他猜想,这种电线未出如商家所言是纯铜制成.小聪想帮助爸爸鉴别材料的真实性:他觉得只要测 为什么并联电路的总电阻是分电阻的倒数和 今天看到一个收硬币的.价格非常高,请问.目前市面上关于硬币的价格? 问一道物理难题一根一头粗一头细的木料,让细的一端着地抬起粗的一端,需用120n,让粗端着地抬起细端,需用力80n,这根木料受到的重力是 A400n B200n C100n D40n 如果有答案,请说明一下理由, matlab把多个矩阵保存在同一个文件中matlab中如何将多个矩阵保存到同一个文本文件中?我有17个同维矩阵A,B,C.想保存为以下格式,并且相邻矩阵间要有一行空行:ABC.请问您用dlmwrite怎么写的, 固体变成液体一定吸热吗(假设反应前后物质温度不变)固体变成液体,分子间距增大.但是分子间距增大,分子势能可能减小也可能增大.也就是说,固体变成液体,可能吸热也可能放热咯? 问一道关于物理的问题.今天上课老师说 因为地心引力的原因,在同一高度,把一个球扔出去,同时再向下放出一个球,两个球会同时落地.可是我就奇怪了,要使用一把枪打出一颗子弹,在同时向地 matlab中如何将多个矩阵保存到同一个文本文件中?我有17个同维矩阵A,B,C.想保存为以下格式,并且相邻矩阵间要有一行空行:ABC.
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘