一种三维图形的切换方法及装置的制造方法

xiaoxiao2020-10-23  15

一种三维图形的切换方法及装置的制造方法
【技术领域】
[0001]本发明涉及互联网通信领域,特别涉及一种三维图形的切换方法及装置。
【背景技术】
[0002]随着图形技术的发展,传统的二维图形已不能满足人们对立体感的要求,于是出现了三维图形。例如,三维地图就是一种三维图形,三维地图可以满足人们不同方向和不同空间的立体感要求。人们浏览三维地图时,有时需要对显示的三维地图进行放大,以看到更精细的三维地图,此时终端需要将当前显示的三维地图切换为更精细的三维地图,以满足人们的需求。
[0003]目前采用一种叫瓦片金字塔的存储模型来存储三维地图,瓦片金字塔是一种四叉树,瓦片金字塔包括多个层级,每个层级存储的三维地图对应的区域相同,但层级越大存储的三维地图越精细,在瓦片金字塔中每个节点叫title (瓦片),一个title对应四个子title。为了满足人们的需求,目前存在一种切换三维地图的方法,包括:终端在显示三维地图时,终端接收用户通过鼠标等输入设备提交的放大命令,根据该放大命令将当前显示的三维地图对应的层级的下一层级作为目标层级,即将三维地图放大一个层级,获取当前显示的三维地图对应的title在目标层级中对应的每个子title的标识,向图形服务器发送每个子title对应的节点请求消息,一个子title对应的节点请求消息携带该子title的标识。图形服务器根据每个子title对应的节点请求消息获取每个子title,将获取的子title发送给终端。终端接收图服务器发送的子title,并等待接收完图形服务器发送的该title在目标层级中对应的所有子title时,根据接收的子title构造一个三维图形,将当前显示的三维图形切换为构造的三维图形。
[0004]在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
[0005]由于网络带宽等因素终端不可能同时接收到该title在目标层级中对应的所有子title,然则目前终端需要等待接收完图形服务器发送的该title在目标层级中对应的所有子title才进行三维图形的切换,导致切换效率较低。

【发明内容】

[0006]为了提高切换效率,本发明提供了一种三维图形的切换方法及装置。所述技术方案如下:
[0007]一种三维图形的切换方法,所述方法包括:
[0008]接收第一节点集合,所述第一节点集合包括第一节点在目标层级中对应的至少一个子节点,所述第一节点为当前显示的第一帧三维图形对应的节点;
[0009]根据所述目标层级和所述第一节点获取第二节点集合中的每个子节点的标识对应的数据块,所述第二节点集合包括所述第一节点在所述目标层级中对应的所有子节点中除所述第一节点集合以外的其他每个子节点的标识;
[0010]根据所述第二节点集合中的每个子节点的标识对应的数据块和所述第一节点集合构造第二帧三维图形;
[0011]将当前显示的所述第一帧三维图形切换为所述第二帧三维图形。
[0012]一种三维图形的切换装置,所述装置包括:
[0013]接收模块,用于接收第一节点集合,所述第一节点集合包括第一节点在目标层级中对应的至少一个子节点,所述第一节点为当前显示的第一帧三维图形对应的节点;
[0014]获取模块,用于根据所述目标层级和所述第一节点获取第二节点集合中的每个子节点的标识对应的数据块,所述第二节点集合包括所述第一节点在所述目标层级中对应的所有子节点中除所述第一节点集合以外的其他每个子节点的标识;
[0015]构造模块,用于根据所述第二节点集合中的每个子节点的标识对应的数据块和所述第一节点集合构造第二帧三维图形;
[0016]切换模块,用于将当前显示的所述第一帧三维图形切换为所述第二帧三维图形。
[0017]在本发明实施例中,当接收到部分子节点时,即接收到第一节点集合时,获取未收到的每个子节点对应的数据块,即第二节点集合中的每个子节点的标识对应的数据,将第一节点集合和第二节点集合中的每个子节点的标识对应的数据块构造成第二帧三维图形,将当前显示的第一帧三维图形切换为第二帧三维图形,如此不需要等待接收完所有子节点后再进彳丁切换,提尚切换效率。
【附图说明】
[0018]图1是本发明实施例1提供的一种三维图形的切换方法流程图;
[0019]图2-1是本发明实施例2提供的一种三维图形的切换方法流程图;
[0020]图2-2是本发明实施例2提供的一种存储模型结构示意图;
[0021]图2-3是本发明实施例2提供的目标层级的结构示意图;
[0022]图2-4是本发明实施例2提供的节点及节点包括的数据块的结构示意图;
[0023]图3是本发明实施例3提供的一种三维图形的切换方法流程图;
[0024]图4是本发明实施例4提供的一种三维图形的切换装置结构示意图;
[0025]图5是本发明实施例5提供的一种终端结构示意图。
【具体实施方式】
[0026]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0027]实施例1
[0028]参见图1,本发明实施例提供了一种三维图形的切换方法,包括:
[0029]步骤101:接收第一节点集合,第一节点集合包括第一节点在目标层级中对应的至少一个子节点,第一节点为当前显示的第一帧三维图形对应的节点。
[0030]步骤102:根据目标层级和第一节点获取第二节点集合中的每个子节点的标识对应的数据块,第二节点集合包括第一节点在目标层级中对应的所有子节点中除第一节点集合以外的其他每个子节点的标识。
[0031]步骤103:根据第二节点集合中的每个子节点的标识对应的数据块和第一节点集合构造第二帧三维图形。
[0032]步骤104:将当前显示的第一帧三维图形切换为第二帧三维图形。
[0033]在本发明实施例中,当接收到部分子节点时,即接收到第一节点集合时,获取未收到的每个子节点对应的数据块,即第二节点集合中的每个子节点的标识对应的数据,将第一节点集合和第二节点集合中的每个子节点的标识对应的数据块构造成第二帧三维图形,将当前显示的第一帧三维图形切换为第二帧三维图形,如此不需要等待接收完所有子节点后再进彳丁切换,提尚切换效率。
[0034]实施例2
[0035]本发明实施例提供了一种三维图形的切换方法。三维图形包括三维地图、三维模型和三维点云等,本发明实施例通过如下方法切换除三维模型以外其他三维图形,参见图2-1,包括:
[0036]步骤201:当用户需要放大终端显示的第一帧三维图形时,终端获取层级偏移量。
[0037]其中,在执行本步骤之前终端可以从图形服务器中请求获取三维图形,并显示获取的三维图形,为了便于说明将当前显示的三维图形称为第一帧三维图形,第一帧三维图形为除三维模型以外的其他三维图形数据,例如可以为三维地形、三维地图或三维点云等。
[0038]如果用户想要放大终端显示的第一帧三维图形以看到更精细的三维图形,则用户可以滚动鼠标的滚轮或在终端的显示屏幕上进行两手指的捏合操作,来请求终端放大显示的第一帧三维图形。
[0039]终端获取滚轮滚动的距离或两手指进行捏合操作时移动的距离,根据获取的距离,计算出层级偏移量,计算出的层级偏移量实质是一种放大第一帧三维图形的放大倍数。
[0040]三维图形的图形数据存储在图形服务器中。在图形服务器中可以使用四叉树或八叉树等存储模型来存储三维图形。例如,瓦片金字塔就是一种四叉树或八叉树的存储模型。
[0041]接下来以四叉树的存储模型为例来说明在图形服务器中是如何存储三维图形,对于像八叉树等存储模型的结构与四叉树的存储模型相同,就不一一详细介绍。其中,对于四叉树的存储模型,该存储模型包括多个层级,每个层级存储同一个区域的三维图形,但层级越大,该层级中存储的三维图形就越精细。在存储模型中每个层级包括至少一个节点,存储模型中的最顶层的层级中包括一个节点,其他层级包括多个节点,除最底层的层级以外的其他层级中的每个节点在下一层级中对应有四个子节点,该节点存储的三维图形对应的区域与该四个子节点中的每个子节点存储的三维图形对应的区域之和相等,但该四个子节点中存储的三维图形比该节点存储的三维图形更精细。
[0042]例如,如图2-2所示,该存储模型存储包括四个层级,分别为层级1、层级2、层级3和层级4,层级I为最顶层的层级,层级4为最底层的层级。假设该存储模型存储的是“北京”三维地图,在层级I只有一个节点,为节点(1,0,0),其中,(1,0,0)中的1,0,0分别表示节点的层级、节点在该层级中的列号和行号,在本发明实施例中其他地方出现这种形式的数据的含义与此相同,就一一说明,节点(1,0,0)的存储的三维地图为“北京”的三维地图。在层级2中包括节点(1,0,0)的四个子节点,分别为节点(2,0,0)、(2,0,1)、(2,1,0)和(2,1,1);将北京划分成不同的四个区域,分别为区域21、22、23和24,节点(2,0,0)用于存储区域21的三维地图,节点(2,0,1)用于存储区域22的三维地图,节点(2,1,0)用于存储区域23的三维地图和节点(2,1,I)用于存储区域24的三维地图;位于层级2中的每个节点存储的三维地图要比位于层级I中的节点存储的三维地图更精细。
[0043]在层级3中包括节点(2,0,0)、(2,0,1)、(2,1,0)和(2,1,1)分别对应的四个子节点,即层级3中包括16个节点;如,对于层级2中的节(2,0,0)在层级3中对应的四个子节点分别为节点(3,0,0)、(3,0,1)、(3,1,0)和(3,1,1),将节点(2,0,0)对应的区域21划分成四个区域分别为区域31、32、33和34,节点(3,0,0)用于存储区域31的三维地图,节点(3,0,1)用于存储区域32的三维地图,节点(3,1,0)用于存储区域33的三维地图,节点(3,1,1)用于存储区域34的三维地图,位于层级3的节点(3,0,0)、(3,0,1)、(3,1,0)和
(3,1,1)存储的三维地图要比位于层级2的节点(2,0,0)存储的三维地图更精细;对于层级3中的其他每个节 点就不--介绍。在层级4中包括层级3中的每个节点对应的四个子节点,即层级4中包括64个节点,由于每个节点的含义与上述节点的含义相同,对于层级4中包括的64个节点的含义就不--介绍。
[0044]在执行本步骤之前,终端可以向图形服务器请求第一三维地图并显示请求的第一三维地图,具体过程为:
[0045]终端向图形服务器发送图形请求消息,该图形请求消息可以携带位置信息。服务器根据根据该位置信息获取一个层级中的某一个或多个节点,向终端发送图形响应消息,该图形响应消息携带获取的节点。终端接收该图形响应消息,根据该图形响应消息携带的这些节点中包括的三维图形数据显示第一帧三维图形。
[0046]终端显示出第一帧三维图形后,如果用户想看更精细的三维图形,则可以通过鼠标滚动滚轮或手指在屏幕上的进行捏合操作来请求终端放大第一帧三维图形,然后终端从上述步骤201开始执行本发明实施例提供的三图形的切换方法,以将当前显示的第一帧三维图形切换为更加精细的三维图形。
[0047]步骤202:终端根据该层级偏移量和第一节点所在的当前层级确定目标层级,第一节点是第一帧三维图形对应的任一节点。
[0048]第一帧三维图形由一个或多个节点中存储的三维图形数据组成,第一节点即为该一个或多个节点中的任一节点。
[0049]本步骤可以为:计算该层级偏移量和第一节点所在的当前层级之和得到目标层级。
[0050]例如,假设,终端当前显示的第一帧三维图形对应的第一节点为节点(1,0,0),以及终端获取的层级偏移量为2,节点(1,0,0)所在的当前层级为层级1,计算层级I与层级偏移量2之和得到目标层级为层级3。
[0051]步骤203:终端向图形服务器发送第一节点在目标层级中对应的每个子节点的节点请求消息,一子节点的节点请求消息携带该子节点的标识。
[0052]图形服务器接收每个节点请求消息,根据每个节点请求消息携带的子节点的标识,从存储模型中获取对应的子节点,向终端发送获取的子节点。
[0053]例如,终端确定节点(1,0,0)在层级3中对应16个子节点,如图2_3所示,分别为节点(3,0,0)、(3,0,1)、(3,0,2)、(3,0,3)、(3,1,0)、(3,1,1)、(3,1,2)、(3,1,3)、(3,2,0)、(3,2,I)、(3,2,2)、(3,2,3)、(3,3,O)、(3,3,I)、(3,3,2)、(3,3,3),向图形服务器发送该 16个子节点中在每个子节点对应的节点请求消息,子节点对应的节点请求消息携带该子节点的标识。
[0054]图形服务器接收该16个节点请求消息,根据该16节点请求消息携带的子节点的标识,分别获取该16个子节点,向终端发送该16个子节点。
[0055]步骤204:终端接收第一节点集合,第一节点集合包括第一节点在目标层级中对应的至少一个子节点。
[0056]由于网络带宽等因素,导致图形服务器不能同时将第一节点在目标层级中对应的所有子节点发送给终端,而是要经过一段时间将第一节点在目标层级中对应的所有子节点发送给终端。所以终端首次接收到的第一节点集合中只包括第一节点在目标层级中对应的部分子节点。
[0057]例如,图形服务器发送获取的16个子节点后,终端接收到第一节点集合,假设,第一节点集合包括节点(3,0,0)、(3,0,1)、(3,0,2)和(3,0,3),由于网络带宽等因素的限制,终端不可能同时接收图形服务器发送的16个子节点,所以第一节点集合中只包括节点(3,0,0)、(3,0,1)、(3,0,2)、(3,0,3),在当前之后终端会陆续接收到其他每个子节点。
[0058]步骤205:终端根据目标层级和第一节点获取第三节点集合,第三节点集合包括第一节点在目标层级中对应的所有子节点的标识。
[0059]例如,终端根据层级3和节点(1,0,),获取第三节点集合,第三节点集合包括节点(1,0,)在层级3中对应的16个子节点的标识。
[0060]步骤206:终端从第三节点集合中去除第一节点集合中的各子节点的标识得到第二节点集合。
[0061]其中,第二节点集合中的每个子节点的标识对应的节点都为终端未接收到子节点。
[0062]例如,第一节点集合中包括子节点(3,0,0)、(3,0,1)、(3,0,2)和(3,0,3)、,从第三节点集合中去除第一节点集合中的子节点,得到第二节点集合,第二节点集合包括子节点(3,1,0)的标识、(3,I,I)的标识、(3,I,2)的标识、(3,I,3)的标识、(3,2,O)的标识、(3,
2,1)的标识、(3,2,2)的标识、(3,2,3)的标识、(3,3,0)的标识、(3,3,1)的标识、(3,3,2)的标识和(3,3,3)的标识。
[0063]步骤207:终端获取第三节点集合中包括的子节点的标识的数目,根据该数目对第一节点进行划分得到第一节点包括的数据块。
[0064]其中,第一节点包括的数据块的数目与第三节点集合中的子节点的标识的数目相等。由于第一节点中的三维图形为除三维模型以外的三维图形数据,这类三维图形数据都为规则的三维图形数据,对三维图形划分所需要的计算资源较少且划分的速度较快,所以终端可以直接对第一节点进行划分。划分的每个数据块对应一个位置,该位置可以用数据块所在的列和行来表示。
[0065]例如,参见图2-4左图所示的节点(1,0,0),根据第三节点集合中包括的节点数目16,将节点I划分成16个数据块,参见图2-4右图所示分别为数据块(0,0)、(0,I)、(0,2)、(0,3)、(1,0)、(1,1)、(1,2)、(1,3)、(2,O)、(2,I)、(2,2)、(2,3)、(3,O)、(3,I)、(3,2)、(3,3)。
[0066]步骤208:终端根据第二节点集合中的每个子节点的标识对应的节点在目标层级中的位置,从第一节点包括的数据块中获取第二节点集合中的每个子节点的标识对应的数据块。
[0067]第二节点集合中的每个子节点的标识对应的节点在目标层级中的位置也可以用在目标层级中所在的列和行表示。本步骤可以为:获取第二节点集合中的每个子节点的标识对应的节点在目标层级中的位置,将第二节点集合中的每个子节点的标识对应的节点在目标层级中的位置转换为相对位置,根据第二节点集合中的每个子节点的标识对应的相对位置,从第一节点包括的数据块中获取第二节点集合中的每个节点的标识对应的数据块。
[0068]例如,假设某节点在目标层级中存在四个子节点分别为节点A、B、C和D,该节点包括四个数据块,分别为数据块1、2、3、4,且数据块1、2、3、4的位置分别为(0,O)、(0,I)、(1,0)、(1,1),其中,(0,0)表示O列O行,其他的含义相同,就不一一说明。节点A、B、C、D在目标层级中的位置分别为(4,4)、(4,5)、(5,4)、(5,5),将节点A、B、C、D在目标层级中的位置转为相对位置,分别为(0,0)、(0,1)、(1,0)、(1,1),根据节点A、B、C、D的相对位置,可以获取到节点A对应数据块1,节点B对应数据块2,节点C对应数据块3,节点D对应数据块4。
[0069]再如,参见图2-3,节点(1,0,0)在层级3中对应的16个节点的位置,根据第二节点集合中的每个子节点的标识对应的节点在目标层级中的位置,从第一节点包括的16个数据块中获取每个子节点的标识对应的数据块分别为数据块(1,0)、(1,1)、(1,2)、(1,3)、(2,O)、(2,I)、(2,2)、(2,3)、(3,O)、(3,I)、(3,2)、(3,3) ο
[0070]步骤209:终端根据第二节点集合中的每个子节点的标识对应的数据块和第一节点集合构造第二帧三维图形。
[0071]例如,根据第二节点集合中每个子节点的标识对应的数据块5、6、……、16和第一节点集合中的子节点31、32、33、34,构造第二帧三维图形。
[0072]步骤210:终端将当前显示的第一帧三维图形切换为构造的第二帧三维图形。
[0073]由于在接收第一节点在目标层级对应的部分子节点就对当前显示的第一帧三维图形进行切换,不需要等待接收到第一节点在目标层级中对应的所有子节点后再进行切换,从提高了切换三维图形的效率。
[0074]然后,每当终端接收到服务器发送的第一节点在目标层级中对应的一个子节点,终端都执行如下操作直到接收完第一节点在目标层级中对应的所有子节点为止,包括:
[0075]终端接收图形服务器发送的子节点,将接收的子节点添加到第一节点集合,以及从第二节点集合中去除接收的子节点的标识得到第三节点集合;根据第三节点集合中的每个子节点的标识对应的数据块和第一节点集合构造第三帧三维图形;将当前显示的第二帧三维图形切换为构造的第三帧三维图形。
[0076]在本发明实施例中,当接收到部分子节点时,即接收到第一节点集合时,获取未收到的每个子节点对应的数据块,即第二节点集合中的每个子节点的标识对应的数据,将第一节点集合和第二节点集合中的每个子节点的标识对应的数据块构造成第二帧三维图形,将当前显示的第一帧三维图形切换为第二帧三维图形,如此不需要等待接收完所有子节点后再进行切换,提高切换效率。另外,目标层级和第一节点所在当前层级可以相隔多个层级,如此不需要一级一级的切换,如此进一步提高切换效率,位于当前层级与目标层级之间的层级中的节点不需要向图形服务器请求,从而节省了网络资源。
[0077]实施例3
[0078]本发明实施例提供了一种三维图形的切换方法。三维图形包括三维地图、三维模型和三维点云等,本发明实施例通过如下方法切换图形数据为三维模型的三维图形,参见图3,包括:
[0079]步骤301:当用户需要放大终端显示的第一帧三维图形时,终端获取层级偏移量。
[0080]其中,在执行本步骤之前终端可以从图形服务器中请求获取三维图形,并显示获取的三维图形,为了便于说明将当前显示的三维图形称为第一帧三维图形,第一帧三维图形为除三维模型以外的其他三维图形数据,例如可以为三维地形、三维地图或三维点云等。
[0081]如果用户想要放大终端显示的第一帧三维图形以看到更精细的三维图形,则用户可以滚动鼠标的滚轮或在终端的显示 屏幕上进行两手指的捏合操作,来请求终端放大显示的第一帧三维图形。
[0082]终端获取滚轮滚动的距离或两手指进行捏合操作时移动的距离,根据获取的距离,计算出层级偏移量,计算出的层级偏移量实质是一种放大第一帧三维图形的放大倍数。
[0083]三维图形的图形数据存储在图形服务器中。在图形服务器中可以使用四叉树或八叉树等存储模型来存储三维图形。例如,瓦片金字塔就是一种四叉树或八叉树的存储模型。
[0084]接下来以四叉树的存储模型为例来说明在图形服务器中是如何存储三维图形,对于像八叉树等存储模型的结构与四叉树的存储模型相同,就不一一详细介绍。其中,对于四叉树的存储模型,该存储模型包括多个层级,每个层级存储同一个区域的三维图形,但层级越大,该层级中存储的三维图形就越精细。在存储模型中每个层级包括至少一个节点,存储模型中的最顶层的层级中包括一个节点,其他层级包括多个节点,除最底层的层级以外的其他层级中的每个节点在下一层级中对应有四个子节点,该节点存储的三维图形对应的区域与该四个子节点中的每个子节点存储的三维图形对应的区域之和相等,但该四个子节点中存储的三维图形比该节点存储的三维图形更精细。
[0085]例如,如图2-2所示,该存储模型存储包括四个层级,分别为层级1、层级2、层级3和层级4,层级I为最顶层的层级,层级4为最底层的层级。假设该存储模型存储的是“北京”三维地图,在层级I只有一个节点,为节点(1,0,0),其中,(1,0,0)中的1,0,0分别表示节点的层级、节点在该层级中的列号和行号,在本发明实施例中其他地方出现这种形式的数据的含义与此相同,就一一说明,节点(1,0,0)的存储的三维地图为“北京”的三维地图。在层级2中包括节点(1,0,0)的四个子节点,分别为节点(2,0,0)、(2,0,1)、(2,1,0)和(2,1,1);将北京划分成不同的四个区域,分别为区域21、22、23和24,节点(2,0,0)用于存储区域21的三维地图,节点(2,0,1)用于存储区域22的三维地图,节点(2,1,0)用于存储区域23的三维地图和节点(2,1,I)用于存储区域24的三维地图;位于层级2中的每个节点存储的三维地图要比位于层级I中的节点存储的三维地图更精细。
[0086]在层级3中包括节点(2,0,0)、(2,0,1)、(2,1,0)和(2,1,1)分别对应的四个子节点,即层级3中包括16个节点;如,对于层级2中的节(2,0,0)在层级3中对应的四个子节点分别为节点(3,0,0)、(3,0,1)、(3,1,0)和(3,1,1),将节点(2,0,0)对应的区域21划分成四个区域分别为区域31、32、33和34,节点(3,0,0)用于存储区域31的三维地图,节点(3,0,1)用于存储区域32的三维地图,节点(3,1,0)用于存储区域33的三维地图,节点(3,1,1)用于存储区域34的三维地图,位于层级3的节点(3,0,0)、(3,0,1)、(3,1,0)和
(3,1,1)存储的三维地图要比位于层级2的节点(2,0,0)存储的三维地图更精细;对于层级3中的其他每个节点就不--介绍。在层级4中包括层级3中的每个节点对应的四个子节点,即层级4中包括64个节点,由于每个节点的含义与上述节点的含义相同,对于层级4中包括的64个节点的含义就不--介绍。
[0087]在执行本步骤之前,终端可以向图形服务器请求第一三维地图并显示请求的第一三维地图,具体过程为:
[0088]终端向图形服务器发送图形请求消息,该图形请求消息可以携带位置信息。服务器根据根据该位置信息获取一个层级中的某一个或多个节点,向终端发送图形响应消息,该图形响应消息携带获取的节点。终端接收该图形响应消息,根据该图形响应消息携带的这些节点中包括的三维图形数据显示第一帧三维图形。
[0089]终端显示出第一帧三维图形后,如果用户想看更精细的三维图形,则可以通过鼠标滚动滚轮或手指在屏幕上的进行捏合操作来请求终端放大第一帧三维图形,然后终端从上述步骤301开始执行本发明实施例提供的三图形的切换方法,以将当前显示的第一帧三维图形切换为更加精细的三维图形。
[0090]步骤302:终端根据该层级偏移量和第一节点所在的当前层级确定目标层级,第一节点是第一帧三维图形对应的任一节点。
[0091]第一帧三维图形由一个或多个节点中存储的三维图形数据组成,第一节点即为该一个或多个节点中的任一节点。
[0092]本步骤可以为:如果该层级偏移量小于或等于预设层数,则计算该层级偏移量和第一节点所在的当前层级之和得到目标层级;如果该层级偏移量大于预设层数,则计算预设层数与第一节点所在的当前层级之和得到目标层级。
[0093]例如,假设,终端当前显示的第一帧三维图形对应的第一节点为节点(1,0,0),终端获取的层级偏移量为2,以及预设层数为3,由于层级偏移量2小于预设层数3,节点(1,0,0)所在的当前层级为层级1,计算层级I与层级偏移量2之和得到目标层级为层级3。
[0094]步骤303:终端向图形服务器发送第一节点在目标层级中对应的每个子节点的节点请求消息,一子节点的节点请求消息携带该子节点的标识。
[0095]图形服务器接收每个节点请求消息,根据每个节点请求消息携带的子节点的标识,从存储模型中获取对应的子节点,向终端发送获取的子节点。
[0096]例如,终端确定节点(1,0,0)在层级3中对应16个子节点,如图2_3所示,分别为节点(3,0,0)、(3,0,1)、(3,0,2)、(3,0,3)、(3,1,0)、(3,1,1)、(3,1,2)、(3,1,3)、(3,2,0)、(3,2,I)、(3,2,2)、(3,2,3)、(3,3,O)、(3,3,I)、(3,3,2)、(3,3,3),向图形服务器发送该 16个子节点中在每个子节点对应的节点请求消息,子节点对应的节点请求消息携带该子节点的标识。
[0097]图形服务器接收该16个节点请求消息,根据该16节点请求消息携带的子节点的标识,分别获取该16个子节点,向终端发送该16个子节点。
[0098]步骤304:终端接收第一节点集合,第一节点集合包括第一节点在目标层级中对应的至少一个子节点。
[0099]由于网络带宽等因素,导致图形服务器不能同时将第一节点在目标层级中对应的所有子节点发送给终端,而是要经过一段时间将第一节点在目标层级中对应的所有子节点发送给终端。所以终端首次接收到的第一节点集合中只包括第一节点在目标层级中对应的部分子节点。
[0100]例如,图形服务器发送获取的16个子节点后,终端接收到第一节点集合,假设,第一节点集合包括节点(3,O,O)、(3,O,I)、(3,O,2)和(3,O,3),由于网络带宽等因素的限制,终端不可能同时接收图形服务器发送的16个子节点,所以第一节点集合中只包括节点(3,0,0)、(3,0,1)、(3,O,2)、(3,O,3),在当前之后终端会陆续接收到其他每个子节点。
[0101]步骤305:终端根据目标层级和第一节点获取第三节点集合,第三节点集合包括第一节点在目标层级中对应的所有子节点的标识。
[0102]例如,终端根据层级3和节点(1,0,),获取第三节点集合,第三节点集合包括节点(1,0,)在层级3中对应的16个子节点的标识。
[0103]步骤306:终端从第三节点集合中去除第一节点集合中的各子节点的标识得到第二节点集合。
[0104]其中,第二节点集合中的每个子节点的标识对应的节点都为终端未接收到子节点。
[0105]例如,第一节点集合中包括子节点(3,0,0)、(3,0,1)、(3,0,2)和(3,0,3)、,从第三节点集合中去除第一节点集合中的子节点,得到第二节点集合,第二节点集合包括子节点(3,1,0)的标识、(3,I,I)的标识、(3,I,2)的标识、(3,I,3)的标识、(3,2,O)的标识、(3,
2,1)的标识、(3,2,2)的标识、(3,2,3)的标识、(3,3,0)的标识、(3,3,1)的标识、(3,3,2)的标识和(3,3,3)的标识。
[0106]步骤307:终端获取第二节点在第一层级中对应的子节点的标识并组成第四节点集合,第二节点为第二节点集合中的任一节点的标识对应的节点,第一层级为第一节点所在的当前层级与预设层级之和。
[0107]例如,对于第二节点集合中任一子节点的标识对应的节点,假设为节点(3,1,0),其中,第一层级为节点(1,10,0)所在的层级I和预设层数3之和4,即第一层级为层级4,获取节点(3,1,0)在层级4中对应的子节点的标识分别为子节点A的标识,B的标识,C的标识和D标识,将子节点A的标识,B的标识,C的标识和D标识组成第四节点集合。
[0108]步骤308:终端根据第四节点集合中的每个子节点的标识对应的节点在目标层级中的位置,从第一节点包括的数据块中获取第四节点集合中的每个子节点的标识对应的数据块,第一节点包括的数目块的数目与第一节点在第一层级中对应的子节点的节点数目相等。
[0109]由于第一节点为三维模型,三维模型是由众多形状为三角形的图形组成的三维图形数据,对三维模型进行划分所需要的计算资源较多且划分速度较慢,一般在终端上无法对三维模型进行划分,所以在图形服务器侧事先对第一节点进行划分,得到第一节点包括的数据块,具体划分过程为:
[0110]图形服务器计算第一节点所在的层级和预设层数之和得到第一层级,获取第一节点在第一层级中对应的子节点的节点数目,根据该节点数目对第一节点进行划分,得到第一节点包括的数据块。
[0111]图形服务器发送给终端的第一节点是一个已经划分的数据块,终端在显示第一节点对应的三维图形时,将第一节点包括的数据块进行组装形成一块数据并显示。
[0112]其中,第四节点集合中的每个子节点的标识对应的节点都为目标层级中的节点,且这些节点都是第一节点在目标层级中的子节点。本步骤可以为:获取第四节点集合中的每个子节点的标识对应的节点在目标层级中的位置,将第四节点集合中的每个子节点的标识对应的节点在目标层级中的位置转换为相对位置,根据第四节点集合中的每个子节点的标识对应的相对位置,从第一节点包括的数据块中获取第四节点集合中的每个节点的标识对应的数据块。
[0113]步骤309:终端将第四节点集合中的每个子节点的标识对应的数据块组成一个数据块,将组成的数据块确定为第二节点的标识为对应的数据块。
[0114]对于第二节点集合中的其他每个子节点的标识同第二节点的标识一样执行上述步骤307、308和309分别得到各自对应的数据块、
[0115]步骤310:终端根据第二节点集合中的每个子节点的标识对应的数据块和第一节点集合构造第二帧三维图形。
[0116]步骤311:终端将当前显示的第一帧三维图形切换为构造的第二帧三维图形。
[0117]由于在接收第一节点在目标层级对应的部分子节点就对当前显示的第一帧三维图形进行切换,不需要等待接收到第一节点在目标层级中对应的所有子节点后再进行切换,从提高了切换三维图形的效率。
[0118]然后,每当终端接收到服务器发送的第一节点在目标层级中对应的一个子节点,终端都执行如下操作直到接收完第一节点在目标层级中对应的所有子节点为止,包括:
[0119]终端接收图形服务器发送的子节点,将接收的子节点添加到第一节点集合,以及从第二节点集合中去除接收的子节点的标识得到第三节点集合;根据第三节点集合中的每个子节点的标识对应的数据块和第一节点集合构造第三帧三维图形;将当前显示的第二帧三维图形切换为构造的第三帧三维图形。
[0120]在本发明实施例中,当接收到部分子节点时,即接收到第一节点集合时,获取未收到的每个子节点对应的数据块,即第二节点集合中的每个子节点的标识对应的数据,将第一节点集合和第二节点集合中的每个子节点的标识对应的数据块构造成第二帧三维图形,将当前显示的第一帧三维图形切换为第二帧三维图形,如此不需要等待接收完所有子节点后再进行切换,提高切换效率。另外,目标层级和第一节点所在当前层级可以相隔多个层级,如此不需要一级一级的切换,如此进一步提高切换效率,位于当前层级与目标层级之间的层级中的节点不需要向图形服务器请求,从而节省了网络资源。
[0121]实施例4
[0122]参见图4,本发明实施例提供了一种三维图形的切换装置,包括:
[0123]接收模块401,用于接收第一节点集合,所述第一节点集合包括第一节点在目标层级中对应的至少一个子节点,所述第一节点为当前显示的第一帧三维图形对应的节点;
[0124]获取模块402,用于根据所述目标层级和所述第一节点获取第二节点集合中的每个子节点的标识对应的数据块,所述第二节点集合包括所述第一节点在所述目标层级中对应的所有子节点中除所述第一节点集合以外的其他每个子节点的标识;
[0125]构造模块403,用于根据所述第二节点集合中的每个子节点的标识对应的数据块和所述第一节点集合构造第二帧三维图形;
[0126]切换模块404,用于将当前显示的所述第一帧三维图形切换为所述第二帧三维图形。
[0127]可选的,获取模块402包括:
[0128]第一获取单元,用于根据所述目标层级和所述第一节点获取第三节点集合,所述第三节点集合包括所述第一节点在所述目标层级中对应的各子节点的标识;
[0129]去除单元,用于从所述第三节点集合中去除所述第一节点集合中的各子节点的标识得到第二节点集合;
[0130]第二获取单元,用于根据所述第二节点集合中的每个子节点的标识对应的节点在所述目标层级中的位置,从所述第一节点中获取所述第二节点集合中的每个子节点的标识对应的数据块。
[0131]可选的,所述第二获取单元包括:
[0132]第一获取子单元,用于如果所述第一节点对应的三维图形为除三维模型以外的其他图形数据,则获取所述第三节点集合中包括的子节点的标识的数目;
[0133]划分子单元,用于根据所述子节点的标识的数目对所述第一节点进行划分得到所述第一节点包括的数据块;
[0134]第二获取子单元,用于根据所述第二节点集合中的每个子节点的标识对应的节点在所述目标层级中的位置,从所述第一节点包括的数据块中获取所述第二节点集合中的每个子节点的标识对应的数据块。
[0135]可选的,所述第二获取单元包括:
[0136]第三获取子单元,用于如果所述第一节点对应的图形为三维模型,则获取第二节点在第一层级中对应的子节点的标识并组成第四节点集合,所述第一层级等于所述第一节点所在的当前层级与预设层数之和,所述第二节点为所述第二节点集合中的任一子节点的标识对应的节点;
[0137]第四获取子单元,用于根据所述第四节点集合中的每个子节点标识对应的节点在所述第一层级中的位置,从所述第一节点包括的数据块中获取所述第四节点集合中的每个子节点的标识对应的数据块,所述第一节点包括的数据块的数目与所述第一节点在所述第一层级中对应的子节点的节点数目相等;
[0138]组成子单元,用于将所述第四节点集合中的每个子节点的标识对应的数据块组成为一个数据块,并将所述组成的数据块确定所述第二节点的标识对应的数据块。
[0139]进一步地,所述装置还包括:
[0140]发送模块,用于获取层级偏移量,根据所述层级偏移量和所述第一节点所在的当前层级确定目标层级,确定所述第一节点在目标层级中对应的每个子节点的标识,向图形服务器发送所述每个子节点的标识对应的节点请求消息,使所述图形服务器所述每个子节点对应的节点请求消息分别获取并发送所述每个子节点。
[0141]可选的,所述发送模块包括:
[0142]计算单元,用于如果所述第一节点对应的三维图形为除三维模型以外的其他图形数据,则计算所述层级偏移量和所述第一节点所在的当前层级之和得到目标层级;
[0143]确定单元,用于如果所述第一节点对应的三维图形为三维模型,则根据所述层级偏移量、所述第一节点所在的当前层级和预设层数,确定目标层级。
[0144]可选的,所述确定单元包括:
[0145]第一计算子单元,用于如果所述层级偏移量小于或等于预设层数,则计算所述层级偏移量和所述第一节点所在的当前层级之和得到目标层级;
[0146]第二计算子单元,用于如果所述层级偏移量大于所述预设层数,则计算所述层级偏移量和所述预设层数之和得到目标层级。
[0147]可选的,所述接收模块401,还用于接收服务器发送的子节点,将所述接收的子节点添加到所述第一节点集合,以及从所述第二节点集合中去除所述接收的子节点的标识得到第五节点集合;
[0148]所述构造模块403,还用于根据所述第五节点集合中的每个子节点的标识对应的数据块和所述第一节点集合构造第三帧三维图形;
[0149]所述切换模块404,还用于将当前显示的所述第二帧三维图形切换为所述第三帧三维图形。
[0150]在本发明实施例中,当接收到部分子节点时,即接收到第一节点集合时,获取未收到的每个子节点对应的数据块,即第二节点集合中的每个子节点的标识对应的数据,将第一节点集合和第二节点集合中的每个子节点的标识对应的数据块构造成第二帧三维图形,将当前显示的第一帧三维图形切换为第二帧三维图形,如此不需要等待接收完所有子节点后再进行切换,提高切换效率。另外,目标层级和第一节点所在当前层级可以相隔多个层级,如此不需要一级一级的切换,如此进一步提高切换效率,位于当前层级与目标层级之间的层级中的节点不需要向图形服务器请求,从而节省了网络资源。
[0151]实施例5
[0152]请参考图5,其示出了本发明实施例所涉及的终端结构示意图,该终端可以用于实施上述实施例中提供的显示视频的海报信息的方法。具体来讲:
[0153]终端900可以包括RF (Rad1 Frequency,射频)电路110、包括有一个或一个以上计算机可读存储介质的存储器120、输入单元130、显示单元140、传感器150、音频电路160、WiFi (wireless fidelity,无线保真)模块170、包括有一个或者一个以上处理核心的处理器180、以及电源190等部件。本领域技术人员可以理解,图5中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
[0154]RF电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器180处理;另外,将涉及上行的数据发送给基站。通常,RF电路110包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、親合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobilecommunicat1n,全球移动通讯系统)、GPRS (General Packet Rad1 Service,通用分组无线服务)、CDMA (Code Divis1n Multiple Access,码分多址)、WCDMA (Wideband CodeDivis1n Multiple Access,宽带码分多址)、LTE (Long Term Evolut1n,长期演进)、电子邮件、SMS (Short Messaging Service,短消息服务)等。
[0155]存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端900的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器120还可以包括存储器控制器,以提供处理器180和输入单元130对存储器120的访问。
[0156]输入单元130可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元130可包括触敏表面131以及 其他输入设备132。触敏表面131,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面131上或在触敏表面131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面131。除了触敏表面131,输入单元130还可以包括其他输入设备132。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
[0157]显示单元140可用于显示由用户输入的信息或提供给用户的信息以及终端900的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元140可包括显示面板141,可选的,可以采用IXD (Liquid Crystal Display,液晶显示器)、OLED (Organic Light-Emitting D1de,有机发光二极管)等形式来配置显示面板141。进一步的,触敏表面131可覆盖显示面板141,当触敏表面131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。虽然在图5中,触敏表面131与显示面板141是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面131与显示面板141集成而实现输入和输出功能。
[0158]终端900还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在终端900移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端900还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
[0159]音频电路160、扬声器161,传声器162可提供用户与终端900之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路110以发送给比如另一终端,或者将音频数据输出至存储器120以便进一步处理。音频电路160还可能包括耳塞插孔,以提供外设耳机与终端900的通信。
[0160]WiFi属于短距离无线传输技术,终端900通过WiFi模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图5示出了 WiFi模块170,但是可以理解的是,其并不属于终端900的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
[0161]处理器180是终端900的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行终端900的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器180可包括一个或多个处理核心;优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。
[0162]终端900还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源190还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
[0163]尽管未示出,终端900还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端900的显示单元是触摸屏显示器,终端900还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行述一个或者一个以上程序包含用于进行以下操作的指令:
[0164]接收第一节点集合,所述第一节点集合包括第一节点在目标层级中对应的至少一个子节点,所述第一节点为当前显示的第一帧三维图形对应的节点;
[0165]根据所述目标层级和所述第一节点获取第二节点集合中的每个子节点的标识对应的数据块,所述第二节点集合包括所述第一节点在所述目标层级中对应的所有子节点中除所述第一节点集合以外的其他每个子节点的标识;
[0166]根据所述第二节点集合中的每个子节点的标识对应的数据块和所述第一节点集合构造第二帧三维图形;
[0167]将当前显示的所述第一帧三维图形切换为所述第二帧三维图形。
[0168]可选的,所述根据所述目标层级获取第二节点集合中的每个子节点的标识对应的数据块,包括:
[0169]根据所述目标层级和所述第一节点获取第三节点集合,所述第三节点集合包括所述第一节点在所述目标层级中对应的各子节点的标识;
[0170]从所述第三节点集合中去除所述第一节点集合中的各子节点的标识得到第二节点集合;
[0171]根据所述第二节点集合中的每个子节点的标识对应的节点在所述目标层级中的位置,从所述第一节点中获取所述第二节点集合中的每个子节点的标识对应的数据块。
[0172]可选的,所述根据所述第二节点集合中的每个子节点的标识对应的节点在所述目标层级中的位置,从所述第一节点中获取所述第二节点集合中的每个子节点的标识对应的数据块,包括:
[0173]如果所述第一节点对应的三维图形为除三维模型以外的其他图形数据,则获取所述第三节点集合中包括的子节点的标识的数目;
[0174]根据所述子节点的标识的数目对所述第一节点进行划分得到所述第一节点包括的数据块;
[0175]根据所述第二节点集合中的每个子节点的标识对应的节点在所述目标层级中的位置,从所述第一节点包括的数据块中获取所述第二节点集合中的每个子节点的标识对应的数据块。
[0176]可选的,所述根据所述第二节点集合中的每个子节点的标识对应的节点在所述目标层级中的位置,从所述第一节点中获取所述第二节点集合中的每个子节点的标识对应的数据块,包括:
[0177]如果所述第一节点对应的图形为三维模型,则获取第二节点在第一层级中对应的子节点的标识并组成第四节点集合,所述第一层级等于所述第一节点所在的当前层级与预设层数之和,所述第二节点为所述第二节点集合中的任一子节点的标识对应的节点;
[0178]根据所述第四节点集合中的每个子节点标识对应的节点在所述第一层级中的位置,从所述第一节点包括的数据块中获取所述第四节点集合中的每个子节点的标识对应的数据块,所述第一节点包括的数据块的数目与所述第一节点在所述第一层级中对应的子节点的节点数目相等;
[0179]将所述第四节点集合中的每个子节点的标识对应的数据块组成为一个数据块,并将所述组成的数据块确定所述第二节点的标识对应的数据块。
[0180]进一步地,所述接收第一节点集合之前,还包括:
[0181]获取层级偏移量,根据所述层级偏移量和所述第一节点所在的当前层级确定目标层级,确定所述第一节点在目标层级中对应的每个子节点的标识,向图形服务器发送所述每个子节点的标识对应的节点请求消息,使所述图形服务器所述每个子节点对应的节点请求消息分别获取并发送所述每个子节点。
[0182]可选的,所述根据所述层级偏移量和所述第一节点所在的当前层级确定目标层级,包括:
[0183]如果所述第一节点对应的三维图形为除三维模型以外的其他图形数据,则计算所述层级偏移量和所述第一节点所在的当前层级之和得到目标层级;
[0184]如果所述第一节点对应的三维图形为三维模型,则根据所述层级偏移量、所述第一节点所在的当前层级和预设层数,确定目标层级。
[0185]可选的,所述根据所述层级偏移量、所述第一节点所在的当前层级和预设层数,确定目标层级,包括:
[0186]如果所述层级偏移量小于或等于预设层数,则计算所述层级偏移量和所述第一节点所在的当前层级之和得到目标层级;
[0187]如果所述层级偏移量大于所述预设层数,则计算所述层级偏移量和所述预设层数之和得到目标层级。
[0188]进一步地,所述将当前显示的所述第一帧三维图形切换为所述第二帧三维图形之后,还包括:
[0189]接收服务器发送的子节点,将所述接收的子节点添加到所述第一节点集合,以及从所述第二节点集合中去除所述接收的子节点的标识得到第五节点集合;
[0190]根据所述第五节点集合中的每个子节点的标识对应的数据块和所述第一节点集合构造第三帧三维图形;
[0191]将当前显示的所述第二帧三维图形切换为所述第三帧三维图形。
[0192]在本发明实施例中,当接收到部分子节点时,即接收到第一节点集合时,获取未收到的每个子节点对应的数据块,即第二节点集合中的每个子节点的标识对应的数据,将第一节点集合和第二节点集合中的每个子节点的标识对应的数据块构造成第二帧三维图形,将当前显示的第一帧三维图形切换为第二帧三维图形,如此不需要等待接收完所有子节点后再进行切换,提高切换效率。另外,目标层级和第一节点所在当前层级可以相隔多个层级,如此不需要一级一级的切换,如此进一步提高切换效率,位于当前层级与目标层级之间的层级中的节点不需要向图形服务器请求,从而节省了网络资源。
[0193]本领域普通技术人员可以 理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0194]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种三维图形的切换方法,其特征在于,所述方法包括: 接收第一节点集合,所述第一节点集合包括第一节点在目标层级中对应的至少一个子节点,所述第一节点为当前显示的第一帧三维图形对应的节点; 根据所述目标层级和所述第一节点获取第二节点集合中的每个子节点的标识对应的数据块,所述第二节点集合包括所述第一节点在所述目标层级中对应的所有子节点中除所述第一节点集合以外的其他每个子节点的标识; 根据所述第二节点集合中的每个子节点的标识对应的数据块和所述第一节点集合构造第二帧三维图形; 将当前显示的所述第一帧三维图形切换为所述第二帧三维图形。2.如权利要求1所述的方法,其特征在于,所述根据所述目标层级获取第二节点集合中的每个子节点的标识对应的数据块,包括: 根据所述目标层级和所述第一节点获取第三节点集合,所述第三节点集合包括所述第一节点在所述目标层级中对应的各子节点的标识; 从所述第三节点集合中去除所述第一节点集合中的各子节点的标识得到第二节点集合; 根据所述第二节点集合中的每个子节点的标识对应的节点在所述目标层级中的位置,从所述第一节点中获取所述第二节点集合中的每个子节点的标识对应的数据块。3.如权利要求2所述的方法,其特征在于,所述根据所述第二节点集合中的每个子节点的标识对应的节点在所述目标层级中的位置,从所述第一节点中获取所述第二节点集合中的每个子节点的标识对应的数据块,包括: 如果所述第一节点对应的三维图形为除三维模型以外的其他图形数据,则获取所述第三节点集合中包括的子节点的标识的数目; 根据所述子节点的标识的数目对所述第一节点进行划分得到所述第一节点包括的数据块; 根据所述第二节点集合中的每个子节点的标识对应的节点在所述目标层级中的位置,从所述第一节点包括的数据块中获取所述第二节点集合中的每个子节点的标识对应的数据块。4.如权利要求2所述的方法,其特征在于,所述根据所述第二节点集合中的每个子节点的标识对应的节点在所述目标层级中的位置,从所述第一节点中获取所述第二节点集合中的每个子节点的标识对应的数据块,包括: 如果所述第一节点对应的图形为三维模型,则获取第二节点在第一层级中对应的子节点的标识并组成第四节点集合,所述第一层级等于所述第一节点所在的当前层级与预设层数之和,所述第二节点为所述第二节点集合中的任一子节点的标识对应的节点; 根据所述第四节点集合中的每个子节点标识对应的节点在所述第一层级中的位置,从所述第一节点包括的数据块中获取所述第四节点集合中的每个子节点的标识对应的数据块,所述第一节点包括的数据块的数目与所述第一节点在所述第一层级中对应的子节点的节点数目相等; 将所述第四节点集合中的每个子节点的标识对应的数据块组成为一个数据块,并将所述组成的数据块确定所述第二节点的标识对应的数据块。5.如权利要求1至4任一项权利要求所述的方法,其特征在于,所述接收第一节点集合之前,还包括: 获取层级偏移量,根据所述层级偏移量和所述第一节点所在的当前层级确定目标层级,确定所述第一节点在目标层级中对应的每个子节点的标识,向图形服务器发送所述每个子节点的标识对应的节点请求消息,使所述图形服务器所述每个子节点对应的节点请求消息分别获取并发送所述每个子节点。6.如权利要求5所述的方法,其特征在于,所述根据所述层级偏移量和所述第一节点所在的当前层级确定目标层级,包括: 如果所述第一节点对应的三维图形为除三维模型以外的其他图形数据,则计算所述层级偏移量和所述第一节点所在的当前层级之和得到目标层级; 如果所述第一节点对应的三维图形为三维模型,则根据所述层级偏移量、所述第一节点所在的当前层级和预设层数,确定目标层级。7.如权利要求6所述的方法,其特征在于,所述根据所述层级偏移量、所述第一节点所在的当前层级和预设层数,确定目标层级,包括: 如果所述层级偏移量小于或等于预设层数,则计算所述层级偏移量和所述第一节点所在的当前层级之和得到目标层级; 如果所述层级偏移量大于所述预设层数,则计算所述层级偏移量和所述预设层数之和得到目标层级。8.如权利要求1至4任一条权利要求所述的方法,其特征在于,所述将当前显示的所述第一帧三维图形切换为所述第二帧三维图形之后,还包括: 接收服务器发送的子节点,将所述接收的子节点添加到所述第一节点集合,以及从所述第二节点集合中去除所述接收的子节点的标识得到第五节点集合; 根据所述第五节点集合中的每个子节点的标识对应的数据块和所述第一节点集合构造第三帧三维图形; 将当前显示的所述第二帧三维图形切换为所述第三帧三维图形。9.一种三维图形的切换装置,其特征在于,所述装置包括: 接收模块,用于接收第一节点集合,所述第一节点集合包括第一节点在目标层级中对应的至少一个子节点,所述第一节点为当前显示的第一帧三维图形对应的节点; 获取模块,用于根据所述目标层级和所述第一节点获取第二节点集合中的每个子节点的标识对应的数据块,所述第二节点集合包括所述第一节点在所述目标层级中对应的所有子节点中除所述第一节点集合以外的其他每个子节点的标识; 构造模块,用于根据所述第二节点集合中的每个子节点的标识对应的数据块和所述第一节点集合构造第二帧三维图形; 切换模块,用于将当前显示的所述第一帧三维图形切换为所述第二帧三维图形。10.如权利要求9所述的装置,其特征在于,所述获取模块包括: 第一获取单元,用于根据所述目标层级和所述第一节点获取第三节点集合,所述第三节点集合包括所述第一节点在所述目标层级中对应的各子节点的标识; 去除单元,用于从所述第三节点集合中去除所述第一节点集合中的各子节点的标识得到第二节点集合; 第二获取单元,用于根据所述第二节点集合中的每个子节点的标识对应的节点在所述目标层级中的位置,从所述第一节点中获取所述第二节点集合中的每个子节点的标识对应的数据块。11.如权利要求10所述的装置,其特征在于,所述第二获取单元包括: 第一获取子单元,用于如果所述第一节点对应的三维图形为除三维模型以外的其他图形数据,则获取所述第三节点集合中包括的子节点的标识的数目; 划分子单元,用于根据所述子节点的标识的数目对所述第一节点进行划分得到所述第一节点包括的数据块; 第二获取子单元,用于根据所述第二节点集合中的每个子节点的标识对应的节点在所述目标层级中的位置,从所述第一节点包括的数据块中获取所述第二节点集合中的每个子节点的标识对应的数据块。12.如权利要求10所述的装置,其特征在于,所述第二获取单元包括: 第三获取子单元,用于如果所述第一节点对应的图形为三维模型,则获取第二节点在第一层级中对应的子节点的标识并组成第四节点集合,所述第一层级等于所述第一节点所在的当前层级与预设层数之和,所述第二节点为所述第二节点集合中的任一子节点的标识对应的节点; 第四获取子单元,用于根据所述第四节点集合中的每个子节点标识对应的节点在所述第一层级中的位置,从所述第一节点包括的数据块中获取所述第四节点集合中的每个子节点的标识对应的数据块,所述第一节点包括的数据块的数目与所述第一节点在所述第一层级中对应的子节点的节点数目相等; 组成子单元,用于将所述第四节点集合中的每个子节点的标识对应的数据块组成为一个数据块,并将所述组成的数据块确定所述第二节点的标识对应的数据块。13.如权利要求9至12任一项权利要求所述的装置,其特征在于,所述装置还包括: 发送模块,用于获取层级偏移量,根据所述层级偏移量和所述第一节点所在的当前层级确定目标层级,确定所述第一节点在目标层级中对应的每个子节点的标识,向图形服务器发送所述每个子节点的标识对应的节点请求消息,使所述图形服务器所述每个子节点对应的节点请求消息分别获取并发送所述每个子节点。14.如权利要求13所述的装置,其特征在于,所述发送模块包括: 计算单元,用于如果所述第一节点对应的三维图形为除三维模型以外的其他图形数据,则计算所述层级偏移量和所述第一节点所在的当前层级之和得到目标层级; 确定单元,用于如果所述第一节点对应的三维图形为三维模型,则根据所述层级偏移量、所述第一节点所在的当前层级和预设层数,确定目标层级。15.如权利要求14所述的装置,其特征在于,所述确定单元包括: 第一计算子单元,用于如果所述层级偏移量小于或等于预设层数,则计算所述层级偏移量和所述第一节点所在的当前层级之和得到目标层级; 第二计算子单元,用于如果所述层级偏移量大于所述预设层数,则计算所述层级偏移量和所述预设层数之和得到目标层级。16.如权利要求9至12任一条权利要求所述的装置,其特征在于, 所述接收模块,还用于接收服务器发送的子节点,将所述接收的子节点添加到所述第一节点集合,以及从所述第二节点集合中去除所述接收的子节点的标识得到第五节点集合; 所述构造模块,还用于根据所述第五节点集合中的每个子节点的标识对应的数据块和所述第一节点集合构造第三帧三维图形; 所述切换模块,还用于将当前显示的所述第二帧三维图形切换为所述第三帧三维图形。
【专利摘要】本发明公开了一种三维图形的切换方法及装置,属于互联网通信领域。所述方法包括:接收第一节点集合,所述第一节点集合包括第一节点在目标层级中对应的至少一个子节点,所述第一节点为当前显示的第一帧三维图形对应的节点;根据所述目标层级和所述第一节点获取第二节点集合中的每个子节点的标识对应的数据块,所述第二节点集合包括所述第一节点在所述目标层级中对应的所有子节点中除所述第一节点集合以外的其他每个子节点的标识;根据所述第二节点集合中的每个子节点的标识对应的数据块和所述第一节点集合构造第二帧三维图形;将当前显示的所述第一帧三维图形切换为所述第二帧三维图形。本发明能够提高切换效率。
【IPC分类】G06F17/30, G06T15/00
【公开号】CN104881421
【申请号】CN201410776655
【发明人】王斌, 李成军
【申请人】深圳市腾讯计算机系统有限公司
【公开日】2015年9月2日
【申请日】2014年12月15日
转载请注明原文地址:https://www.famiwei.com/read-8138654.html

最新回复(0)