一种3d模型的浏览实现方法、系统和服务器的制作方法

文档序号:6332737阅读:167来源:国知局
专利名称:一种3d模型的浏览实现方法、系统和服务器的制作方法
技术领域
本发明涉及3D(三维)显示技术领域,尤其涉及一种3D模型的浏览实现方法、系统和服务器。
背景技术
随着网络的普及以及人们对互联网展示业务体验的要求逐渐提高,传统的网络页面展示已经难以给用户心理上带来冲击和震撼的感觉,3D图形将在互联网上占有重要地位。Web3D技术是目前的一门热门技术,大量应用于在线展示、在线游戏、在线互动等各种应用领域。智能手机性能在逐渐提高,手机操作系统也在不断完善,越来越多的用户习惯于通过手机上网浏览网页,而目前手机的网页展现仍是和PC类似的图文信息呈现方式,用户体验较差,需要一种全新的展现形式来吸引用户。3D图形技术在PC机上已经比较成熟。但是目前ffeb3D技术使用上需要插件、且仅使用于PC上,在手机等嵌入式终端支持性不强,尚未能在手机等嵌入式终端中普遍使用。

发明内容
本公开要解决的一个技术问题是提供一种3D模型的浏览实现方法,能够支持不同性能的终端。本公开提供一种3D模型的浏览实现方法,包括服务器接收来自终端的页面访问请求,从请求访问的页面中解析3D模型文件;服务器根据所述终端的性能确定3D模型的精度;服务器获得与精度对应的简化3D模型;服务器将简化3D模型的参数发送给终端以便终端绘制3D模型。根据本公开的一个方面,该方法中服务器根据3D模型简化算法获得与精度对应的简化3D模型;具体包括获得3D模型的三角面片的权重;根据精度确定简化3D模型包含的三角面片数量;根据三角面片的权重选择简化3D模型包含的三角面片。根据本公开的一个方面,该方法还包括响应于用户的交互操作,终端根据简化3D模型的参数对3D模型进行变换和/或旋转。本公开要解决的一个技术问题是提供一种3D模型服务器,能够支持不同性能的终端。本公开提供一种3D模型服务器,包括模型解析单元,用于接收来自终端的页面访问请求,从请求访问的页面中解析3D 模型文件;
3
精度确定单元,用于根据终端的性能确定3D模型的精度;简化模型获取单元,用于获得与精度对应的简化3D模型;模型参数发送单元,用于将简化3D模型的参数发送给终端以便终端绘制3D模型。根据本公开的一个方面,简化模型获取单元包括权重获取模块,获得3D模型的三角面片的权重;数量确定模块,根据精度确定所述简化3D模型包含的三角面片数量;面片选择模块,根据三角面片的权重选择所述简化3D模型包含的三角面片。本公开还提供一种3D模型的浏览实现系统,包括上述服务器以及终端;该终端, 用于发送页面访问请求;接收来自服务器的简化3D模型的参数,根据简化3D模型的参数绘制3D模型。本公开提供的3D模型的浏览实现方法、系统和服务器,能够根据终端性能提供对应的简化3D模型,从而支持不同性能的终端。


图1示出本发明的3D模型的浏览实现系统的一个实施例的系统示意图;图2示出本发明的3D模型的浏览实现方法的一个实施例的流程图;图3示出本发明的3D模型的浏览实现方法的另一个实施例的流程图;图4示出本发明的3D模型简化的示例;图5示出一个长方体的图示;图6示出本发明的3D模型服务器的一个实施例的结构图;图7示出本发明的3D模型服务器的另一个实施例的结构图。
具体实施例方式下面参照附图对本发明进行更全面的描述,其中说明本发明的示例性实施例。图1示出本发明的3D模型的浏览实现系统的一个实施例的系统示意图。如图1所示,该实施例的浏览实现系统包括服务器11和各种终端12。终端12例如是手机、掌上电脑、 PDA或者智能手机等各种具有不同性能的移动终端。终端12—般安装有浏览器(Browser), 通过浏览器向服务器11请求访问的页面,服务器11接收到页面访问请求后随即解析页面中的3D模型文件,根据终端11的性能确定3D模型的精度,获得与终端的精度对应的简化 3D模型,然后将简化3D模型的参数发送到终端12,终端12根据接收的数据按照3D模型参数将相应的3D模型绘制出来。图2示出本发明的3D模型的浏览实现方法的一个实施例的流程图。如图2所示,在步骤202,服务器接收来自终端的页面访问请求,从请求访问的页面中解析3D模型文件。步骤204,服务器根据终端的性能确定3D模型的精度。例如,服务器根据终端的屏幕分辨率和/或终端的数据处理能力确定3D模型的精度。步骤206,服务器获得与精度对应的简化3D模型。步骤208,服务器将简化3D模型的参数发送给终端以便终端绘制3D模型。终端收到简化3D模型的参数,简化3D模型的参数包括了整个3维模型所有需要的核心数据,终端
4根据收到的参数绘制3D模型。根据终端的性能或者应用的需要,可采用无插件方式或有插件方式重构3D模型。 对于无插件方式重构,主要通过html脚本进行编程绘图,其优点是无插件,可以直接使用, 但是是对复杂图形支持度较差。对于有插件方式重构,例如可以调用目前针对嵌入式设备的标准的开源的OpenGL ES,将OpenGL ES全部代码封装到一个类中,然后将此类添加到 Active-X插件中。在OpenGL ES类中,可将OpenGL ES的初始化流程、渲染流水线的关闭、 3D模型的渲染、互操作等功能分别封装到不同的函数中。上述实施例中,支持多种客户端形式,对于高端终端可支持带3D图形绘制的客户端,对于低端终端可用不需要插件的方式支持低配置客户端。传统方式在服务器端开发3D模型,对于不同的显示终端需要做多次适配,而一次改动,需要对多个终端同时改动,耗资巨大。在本发明的的实施例中,服务器可以根据终端的性能获取与3D模型对应的简化模型,从而支持各个不同性能的终端,一次改动,多个终端受用。图3示出本发明的3D模型的浏览实现方法的另一个实施例的流程图。如图3所示,在步骤302,终端向服务器发送页面访问请求。步骤304,服务器从请求访问的页面中解析出3D模型;服务器例如通过页面访问请求(例如,http request)的消息中获得终端的能力相关信息(例如,手机型号、浏览器版本号、屏幕分辨率等),判断终端性能,根据终端性能确定3D模型显示的精度;通过三维模型简化算法对3D模型进行简化,获得简化的3D模型。稍后将介绍一种对3D模型进行简化的具体实现。步骤306,服务器对简化的3D模型的参数进行例如HTML基础语言封装。步骤308,服务器传输简化3D模型的参数数据到终端。步骤310,终端从接收的数据中解析获得简化3D模型的参数,进行3D模型重构。步骤312,用户与终端进行交互,终端对3D模型进行变换和/或旋转。下面介绍三维模型简化实现的一个例子。将3D模型划分为三角面片(三角网格),获得3D模型三角面片的权重。三角面片的权重例如是角度与曲率的乘积,或者三角形面积与曲率等因素的乘积。这样,细长且低曲率的三角面片权重较小,可以优先被删除。可以将3D模型上的所有三角面片根据其权重从小到大进行排序。根据终端的屏幕分辨率确定三维模型需要显示的三角面片的数目。例如某三维模型由1000个三角面片组成,根据手机屏幕分辨率确定只显示前100个三角网格。根据三角面片的权重选择简化3D模型包含的三角面片。按照权重从小到大的顺序删除三角面片,即三角形折叠操作,一般地,一次三角形折叠操作可删除四个三角形,两个顶点。重复删除操作直到该3D模型简化为100个三角网格。在上述实施例中,通过三角面片(三角网格)的简化处理方法,可以对3D模型进行简化处理,实现方便,具有很强的适应性。图4示出3D模型在通过本发明的3D模型简化处理前和处理后的示例。图4(a) 是简化处理前的人头部的3D模型,包含较多的三角网格。图4(b)是人头部的简化的3D模型,三角网格数量减少。
下面以.WRL格式的长方体为例进行详细说明。(1)服务器端3D模型文件的解析与传送长方体的WRL文件内容如下“#VRML V2. 0utf8#Produced by 3D Studio MAX VRML97 exporter, Version 9,Revision 1#Date :Wed Nov 0421:21:30 2009DEF BoxOl Transform {translation 0 100 0children [Transform {translation 0 19.83 0children [Shape {appearance Appearance {material Material {diffuseColor 0.1059 0.6941 0.1059}}geometry Box {size 58.11 10.66 30.27}}
]}
]},,在服务器端通过PHP进行读文件和字符串操作解析出3D模型的类型为“长方体”、 它的长、宽、高分别为58. 11、10.66、30. 27。然后通过下面的几条PHP语句echo 〃< SCRIPT LANGUAGE = \ 〃 javascript\" >〃 ;echo" var model =' Box' ;\n〃 ;echo" var datal =" . $datal. " ;\n〃 ;echo" var data2 = " . $data2. " ;\n〃 ;echo" var data3 = " . $data3. " ;\n〃 ;echo" </SCRIPT〉"”把参数传送到客户端,其中,datal、data2、data3分别表示长、宽、高。(2)客户端3D模型的绘制与显示客户端接收到服务器端的参数,即可确定出长方体的八个顶点的三维坐标为(datal * 0. 5,data2 * 0. 5, _data3 * 0· 5)、(datal * 0· 5, data2 * 0· 5, data3*0. 5)、(datal * 0. 5, _data2 ~k 0. 5, data3 * 0· 5)、(datal * 0. 5, _data2 * 0. 5, _data3
*0. 5)、(-datal * 0. 5,data2 * 0. 5,_data3 * 0. 5)、(-datal * 0. 5,data2 * 0. 5, data3 女 0· 5)、(-datal -k 0. 5, -data2 -k 0. 5, data3 女 0· 5)、(-datal -k 0. 5, -data2 -k 0. 5, -data3 * 0. 5),并将八个顶点的序号分别标为1、2、3、4、5、6、7、8,具体如图5所示。(3)坐标变换为了加强长方体的交互性,引入了一个变换矩阵
W0mxm2
M =m3m4ms(1)m,YH1nio 设八个顶点中任意一顶点为( ,y0,、),则变换后的坐标(X,y,ζ)为
X,m{m2{ V Λο
y=m3m4m5X(2).ζm7ι zO〉 在屏幕上看到的只能是3D模型的透视图,因此还需-一顶点在屏幕上的透视坐标,为此,采用以下的转换
X
… (3)
ν
少=t + ·
-水
卜透视转换才能计算出任
X=I + -
zxO.OOl + 1.25
y
ζ X 0.001+ 1.25其中(1,t)是调整3D模型显示在屏幕中位置的两个参数。(4)确定可见面由图5可知这个长方体的6个面可以用顶点号分别表示为(1,2,3,4)、(1,4,8, 5)、(1,5,6,2), (7,3,2,6), (7,8,4,3), (7,6,5,8) 判断某个面是否为可见面,采用以下规则对任一面,设顶点号为(a, b,c, d),相对应的四个顶点分别为(Va, Vb, Vc, Vd),计算该面的^ = F4IxFi;,若;;与向量(0,0,1)同向,则该面为可见面,否则为不可见面。(5)绘制可见面绘制可见面包括图元填充,图元填充需要找出相应的跨段。为了减小误差,需要恰当选择主坐标轴。设某一个可见面的四个项点为(Va,Vb,V。,Vd),相应的坐标分别为(xa, ya)、(xb' yb)、(xC' yc)禾口( , yd)。设 Xmin = Min (xa, xb, xc, xd), xmax = Max (xa, xb, xc, xd),Ymin = Min (ya, yb, yc, yd),ymax = Max (ya, yb, yc, yd)如果(Xmax^min)彡(ymax_ymin),则以χ轴为主坐标轴,进行填充。填充的伪代码如下for(i = Xmin ;i <= Xmax ;i++) {设当χ = i时,计算跨段的上、下端的y坐标,分别记为yl,y2 ;使用下面的DIV代码进行颜色填充<div style = “ overflowhidden ;left: ‘ +i+' px ; top: ‘ +Math, round (yl)
7
+' px ;height:' +Math, round(y2-yl)+' px ;width:Ipx ;position!absolute ;background-color:' +clr+' ; “ ></div> ;}否则,以y轴为主坐标轴进行填充,填充的伪代码如下for(i = Ymin ;i <= Ymax ;i++){当y = i吋,计算跨段的左、右端的X坐标,分别记为xl,x2 ;使用下面的DIV代码进行颜色填充<div style = “ overflow:hiaden ;top:‘ +i+' px ;left: ‘ +Math, round (xl)+' px ;width: ' +Math, round(x2_xl)+' px ;height:Ipx ;position!absolute ;background-color: ' +clr+' ;〃 ></div>}(6)人机交互性设计为了增加Web3D模型的交互性,为模型増加了绕x轴、y轴的旋转功能,实现原理 即为修改变换矩阵。修改的方式具体如下绕X轴旋转e角度后,
权利要求
1.一种3D模型的浏览实现方法,其特征在于,包括服务器接收来自终端的页面访问请求,从请求访问的页面中解析3D模型文件; 所述服务器根据所述终端的性能确定所述3D模型的精度; 所述服务器获得与所述精度对应的简化3D模型;所述服务器将所述简化3D模型的参数发送给所述终端以便所述终端绘制所述3D模型。
2.根据权利要求1所述的3D模型的浏览实现方法,其特征在于,所述服务器根据3D模型简化算法获得与所述精度对应的简化3D模型。
3.根据权利要求2所述的3D模型的浏览实现方法,其特征在于,所述服务器根据3D模型简化算法获得与所述精度对应的简化3D模型包括获得3D模型的三角面片的权重;根据所述精度确定所述简化3D模型包含的三角面片数量; 根据所述三角面片的权重选择所述简化3D模型包含的三角面片。
4.根据权利要求1所述的3D模型的浏览实现方法,其特征在于,所述终端通过脚本或者插件绘制所述3D模型。
5.根据权利要求1所述的3D模型的浏览实现方法,其特征在于,还包括响应于用户的交互操作,所述终端根据所述简化3D模型的参数对所述3D模型进行变换和/或旋转。
6.一种3D模型服务器,其特征在于,包括模型解析单元,用于接收来自终端的页面访问请求,从请求访问的页面中解析3D模型文件;精度确定单元,用于根据所述终端的性能确定所述3D模型的精度; 简化模型获取单元,用于获得与所述精度对应的简化3D模型; 模型参数发送单元,用于将所述简化3D模型的参数发送给所述终端以便所述终端绘制所述3D模型。
7.根据权利要求6所述的3D模型服务器,其特征在于,所述简化模型获取单元根据3D 模型简化算法获得与所述精度对应的简化3D模型。
8.根据权利要求72所述的3D模型服务器,其特征在于,所述简化模型获取单元包括 权重获取模块,获得3D模型的三角面片的权重;数量确定模块,根据所述精度确定所述简化3D模型包含的三角面片数量; 面片选择模块,根据所述三角面片的权重选择所述简化3D模型包含的三角面片。
9.一种3D模型的浏览实现系统,其特征在于,包括权利要求6至8中任意一项所述的服务器,以及所述终端;所述终端,用于发送所述页面访问请求;接收来自所述服务器的所述简化3D模型的参数,根据所述简化3D模型的参数绘制所述3D模型。
10.根据权利要求9所述的3D模型的浏览实现系统,其特征在于,所述终端通过脚本或者插件绘制所述3D模型。
11.根据权利要求1所述的3D模型的浏览实现系统,其特征在于,所述终端响应于用户的交互操作,根据所述简化3D模型的参数对所述3D模型进行变换和/或旋转。
全文摘要
本发明公开一种3D模型的浏览实现方法、系统和服务器。该方法包括服务器接收来自终端的页面访问请求,从请求访问的页面中解析3D模型文件;服务器根据所述终端的性能确定3D模型的精度;服务器获得与精度对应的简化3D模型;服务器将简化3D模型的参数发送给终端以便终端绘制3D模型。本公开的方法、系统和服务器,基于Web3D原理,采用的三维模型简化算法,实现了三维模型能够适应多屏浏览,并且能够适配终端性能,根据终端性能进行3D模型的调整,终端可以采用插件的方式显示3D模型,也可以不采用插件显示3D模型,克服了目前的Web3D模型的交互式浏览主要采用插件技术,在手机等嵌入式终端支持性不强的缺陷。
文档编号G06T17/20GK102420839SQ20101029320
公开日2012年4月18日 申请日期2010年9月27日 优先权日2010年9月27日
发明者张路宜, 李江崴, 梁洁, 武娟, 陈学亮, 陈戈, 韩晓梅 申请人:中国电信股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1