CN104182999A - 一种全景内动画跳转方法及*** - Google Patents
一种全景内动画跳转方法及*** Download PDFInfo
- Publication number
- CN104182999A CN104182999A CN201310190421.0A CN201310190421A CN104182999A CN 104182999 A CN104182999 A CN 104182999A CN 201310190421 A CN201310190421 A CN 201310190421A CN 104182999 A CN104182999 A CN 104182999A
- Authority
- CN
- China
- Prior art keywords
- scene
- current
- animation
- redirect
- distance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明提供了一种全景内动画跳转方法及***,该方法包括:触发场景跳转时,利用预先生成的过渡矩阵对当前场景的模型矩阵进行模型修改处理,并对当前场景进行透明度修改处理和拉伸处理;在当前场景开始移动和拉伸时,加载目标场景的缩略图和可视范围内图片,并在加载完毕后渲染目标场景;当前场景移动和拉伸完毕且目标场景渲染完毕时,展现出目标场景。根据本发明提供的技术方案,能够实现从当前场景自然、平滑地切换到目标场景。
Description
【技术领域】
本发明涉及互联网应用领域,尤其涉及一种全景内动画跳转方法及***。
【背景技术】
街景是地图服务中增加的一个新功能,目前SOSO地图、***地图和naver地图已经在地图服务中增加了该功能,街景功能可以显示所选城市街道的360度全景图像,当用户搜索到某个地点,并点击进入街景模式后,就可以看到该地点及周边环境的实景图像。
全景图像在场景切换时如果没有过渡动画,整个切换过程会非常突兀和生硬,用户体验比较差。目前,国内多数地图服务的街景功能在场景跳转时都没有过渡动画,都是生硬的跳转到目标场景。SOSO街景在场景跳转时由过渡动画,但是从当前场景进入目标场景时有一定的顿挫感,场景切换过程比较生硬,不够柔和;国外naver地图中的街景功能中,过渡动画的拉伸幅度非常大,导致过渡动画非常模糊;daum街景在场景切换时需要等目标场景的图像加载完成后才能进行场景切换,因此场景切换有明显的停顿感。
【发明内容】
本发明提供了一种全景内动画跳转方法及***,能够实现从当前场景自然、平滑地切换到目标场景。
本发明的具体技术方案如下:
根据本发明一优选实施例,一种全景内动画跳转方法,包括:
触发场景跳转时,利用预先生成的过渡矩阵对当前场景的模型矩阵进行模型修改处理,并对当前场景进行透明度修改处理和拉伸处理;
在当前场景开始移动和拉伸时,加载目标场景的缩略图和可视范围内图片,并在加载完毕后渲染目标场景;
当前场景移动和拉伸完毕且目标场景渲染完毕时,展现出目标场景。
上述方法中,生成过渡矩阵的方法为:
依据移动前位置的三维坐标和鼠标点击位置的三维坐标计算当前场景与目标场景之间实际的移动距离,依据所述移动距离计算得到跳转动画的总帧数;
将移动距离和当前场景的模型矩阵作为参数输入预设的模型矩阵生成函数,生成移动后的模型矩阵;
将当前场景的模型矩阵、移动后的模型矩阵、当前帧数和跳转动画的总帧数作为参数输入预设的过渡矩阵生成函数,生成从当前场景的模型矩阵转换到移动后的模型矩阵的过渡矩阵。
上述方法中,利用如下公式得到跳转动画的总帧数:
其中,Nframe为跳转动画的总帧数,Nshortest为预设的跳转动画的最短时长,Nlongest为预设的跳转动画的最长时长,MAX_DISTANCE为预设的移动距离的最大值,DISTANCE为实际的移动距离。
上述方法中,当前场景的透明度等于1减去0.2乘以当前帧数与跳转动画的总帧数的比值。
上述方法中,对当前场景进行拉伸处理的方法为:
在当前场景的模型的下半部分中,对于y≥0且y≤球模型半径/16的点,沿x轴拉伸的距离等于当前帧数乘以x轴拉伸的单位距离,沿z轴拉伸的距离等于当前帧数乘以z轴拉伸的单位距离;对于y>球模型半径/16的点,沿x轴拉伸的距离等于1.5乘以当前帧数乘以x轴拉伸的单位距离,沿z轴拉伸的距离等于1.5乘以当前帧数乘以z轴拉伸的单位距离;所述x轴拉伸的单位距离等于常数乘以x轴方向的移动距离除以跳转动画的总帧数,z轴拉伸的单位距离等于常数乘以z轴方向的移动距离除以跳转动画的总帧数。
上述方法中,所述加载目标场景的缩略图和可视范围内图片具体为:
依据点击的前进箭头或后退箭头、箭头与场景id的对应关系获得场景id;或依据点击位置的经纬度从服务器获得对应的场景id;
依据目标场景的场景id从服务器获取目标场景的场景数据;
依据场景id与缩略图的对应关系,加载获得的场景id对应的缩略图;
缩略图加载完毕后,遍历目标场景的球模型的所有三角形,对每个三角形进行三维到二维的屏幕投影,当依据场景数据中的目标场景所在道路的方向以及预设的屏幕大小判断出三角形的屏幕投影位于屏幕范围内时,判断出三角形对应的图片为可视范围内图片;
加载所述三角形对应的可视范围内图片,加载的可视范围内图片替换已经加载的缩略图。
上述方法中,该方法还包括:
当前场景移动和拉伸完毕,但目标场景的场景数据或缩略图加载出错时,重新显示当前场景;
或,当前场景移动和拉伸完毕,但目标场景的场景数据处于请求中,未能完成渲染时,停止当前场景的跳转动画,等待目标场景的缩略图渲染完成后再展现目标场景。
一种全景内动画跳转***,包括:模型处理单元、场景加载单元、场景展现单元;其中,
模型处理单元,用于在触发场景跳转时,利用预先生成的过渡矩阵对当前场景的模型矩阵进行模型修改处理,并对当前场景进行透明度修改处理和拉伸处理;
场景加载单元,用在当前场景开始移动和拉伸时,加载目标场景的缩略图和可视范围内图片,并在加载完毕后渲染目标场景;
场景展现单元,用于当前场景移动和拉伸完毕且目标场景渲染完毕时,展现出目标场景。
上述***中,该***还包括:
矩阵生成单元,用于依据移动前位置的三维坐标和鼠标点击位置的三维坐标计算当前场景与目标场景之间实际的移动距离,依据所述移动距离计算得到跳转动画的总帧数;将移动距离和当前场景的模型矩阵作为参数输入预设的模型矩阵生成函数,生成移动后的模型矩阵;将当前场景的模型矩阵、移动后的模型矩阵、当前帧数和跳转动画的总帧数作为参数输入预设的过渡矩阵生成函数,生成从当前场景的模型矩阵转换到移动后的模型矩阵的过渡矩阵。
上述***中,所述矩阵生成单元利用如下公式得到跳转动画的总帧数:
其中,Nframe为跳转动画的总帧数,Nshortest为预设的跳转动画的最短时长,Nlongest为预设的跳转动画的最长时长,MAX_DISTANCE为预设的移动距离的最大值,DISTANCE为实际的移动距离。
上述***中,当前场景的透明度等于1减去0.2乘以当前帧数与跳转动画的总帧数的比值。
上述***中,模型处理单元在对当前场景进行拉伸处理时,具体为:
在当前场景的模型的下半部分中,对于y≥0且y≤球模型半径/16的点,沿x轴拉伸的距离等于当前帧数乘以x轴拉伸的单位距离,沿z轴拉伸的距离等于当前帧数乘以z轴拉伸的单位距离;对于y>球模型半径/16的点,沿x轴拉伸的距离等于1.5乘以当前帧数乘以x轴拉伸的单位距离,沿z轴拉伸的距离等于1.5乘以当前帧数乘以z轴拉伸的单位距离;所述x轴拉伸的单位距离等于常数乘以x轴方向的移动距离除以跳转动画的总帧数,z轴拉伸的单位距离等于常数乘以z轴方向的移动距离除以跳转动画的总帧数。
上述***中,所述场景加载单元在加载目标场景的缩略图和可视范围内图片时,具体为:
依据点击的前进箭头或后退箭头、箭头与场景id的对应关系获得场景id;或依据点击位置的经纬度从服务器获得对应的场景id;
依据目标场景的场景id从服务器获取目标场景的场景数据;
依据场景id与缩略图的对应关系,加载获得的场景id对应的缩略图;
缩略图加载完毕后,遍历目标场景的球模型的所有三角形,对每个三角形进行三维到二维的屏幕投影,当依据场景数据中的目标场景所在道路的方向以及预设的屏幕大小判断出三角形的屏幕投影位于屏幕范围内时,判断出三角形对应的图片为可视范围内图片;
加载所述三角形对应的可视范围内图片,加载的可视范围内图片替换已经加载的缩略图。
上述***中,所述场景展现单元,还用于当前场景移动和拉伸完毕,但目标场景的场景数据或缩略图加载出错时,重新显示当前场景;或,当前场景移动和拉伸完毕,但目标场景的场景数据处于请求中,未能完成渲染时,停止当前场景的跳转动画,等待目标场景的缩略图渲染完成后再展现目标场景。
由以上技术方案可以看出,本发明提供的具有以下有益效果:
在由当前场景到目标场景的跳转动画中,移动和拉伸当前场景,并在跳转动画开始时就开始加载目标场景的图像,跳转动画的衔接使得当前场景到目标场景的切换更加连贯,能够从当前场景自然、平滑的过渡到下一个场景,给用户正在朝着目的地移动的感受,向街景用户提供全景的沉浸感。
【附图说明】
图1是本发明实现全景内动画跳转方法的优选实施例的流程示意图;
图2是本发明实现全景内动画跳转***的优选实施例的结构示意图。
【具体实施方式】
本发明的基本思想是:触发场景跳转时,利用预先生成的过渡矩阵对当前场景的模型矩阵进行模型修改处理,并对当前场景进行透明度修改处理和拉伸处理;在当前场景开始移动和拉伸时,加载目标场景的缩略图和可视范围内图片,并在加载完毕后渲染目标场景。
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
本发明提供一种全景内动画跳转方法,图1是本发明实现全景内动画跳转方法的优选实施例的流程示意图,如图1所示,该方法包括以下步骤:
步骤101,触发场景跳转时,利用预先生成的过渡矩阵对当前场景的模型矩阵进行模型修改处理,并对当前场景进行透明度修改处理和拉伸处理。
具体的,场景切换的整个跳转动画过程中,同时存在两个场景,即当前场景和目标场景;在当前场景下,当用户点击前进箭头、后退箭头或地面道路时,触发场景跳转,则依据移动前的位置的三维坐标和鼠标点击位置的三维坐标计算当前场景与目标场景之间实际的移动距离;然后,依据移动距离计算得到跳转动画的总帧数,可以利用如下公式计算得到跳转动画的总帧数:
该公式中,Nframe为跳转动画的总帧数,Nshortest为预设的跳转动画的最短时长,Nlongest为预设的跳转动画的最长时长,MAX_DISTANCE为预设的移动距离的最大值,DISTANCE为实际的移动距离。
例如,街景功能中预设的跳转动画时长最短为2帧,最长是12帧,实际的移动距离为MAX_DISTANCE/2时,跳转动画的总帧数Nframe等于8。
三维应用中的每个物体都是通过一系列三角形组成,比如一个立方体,由6个面,共12个三角形组成,因此街景中的每个场景都是一个三维物体,这个三维物体是一个球体,因此每个场景都有一个独立的球模型,模型矩阵用于控制整个场景的展现,当调整场景时只需要利用模型矩阵对这个场景的球模型进行改变,例如通过模型矩阵实现模型转换或移动等。
对于当前场景,保存当前场景的模型矩阵M1,然后依据移动距离生成移动后的模型矩阵M2,移动后的模型矩阵M2指的是当跳转动画结束时,当前场景的模型矩阵;本优选实施例中,通过调用预设的模型矩阵生成函数M1.appendTranslation(xdistance,0,zdistance)来生成移动后的模型矩阵M2;其中,M1表示当前场景的模型矩阵,xdistance表示场景沿x轴的移动距离,zdistance表示场景沿z轴的移动距离,0表示场景沿y轴没有移动,这里,沿y轴没有移动是因为街景功能中,场景的移动都是平移,只会在x轴和z轴上产生移动距离。
在当前场景切换到目标场景的跳转动画的每一帧中,对当前场景的模型矩阵M1和移动后的模型矩阵M2进行插值处理,生成从模型矩阵M1转换到模型矩阵M2的转换过程中的过渡矩阵Mn,本优选实施例,可以通过调用过渡矩阵生成函数,如ActionScript3.0的Matrix对象内置的interpolateTo函数,来实现依据模型矩阵M1和移动后的模型矩阵M2得到过渡矩阵Mn,即Mn=M1.InterpolateTo(M2,当前帧数/跳转动画的总帧数),其中,当前帧数指的是当前相对于跳转动画开始时的帧数;将模型矩阵M1和模型矩阵M2作为参数输入到函数后就可以得到跳转动画中每一帧图像对应的矩阵,即过渡矩阵Mn。
对于当前场景的模型矩阵M1转换到模型矩阵M2的跳转动画的每一帧,都进行如下处理:
首先,将当前帧对应的过渡矩阵Mn作为模型矩阵赋值给当前场景的模型,也就是利用过渡矩阵Mn来修改当前场景的外观,在跳转动画中,修改场景的外观能够形成前进、后退的视觉效果;其中,将过渡矩阵Mn作为模型矩阵赋值给当前场景的模型的方法是用过渡矩阵Mn乘以构成当前场景的模型的一系列点的坐标,就能够实现修改当前场景的外观。
然后,需要对当前场景的透明度进行修改,本优选实施例中,依据当前帧数并利用如下公式得到实时的当前场景的透明度:
透明度=1-0.2×(当前帧数/跳转动画的总帧数)
其中,依据该公式可以获知,当前场景的透明度随着跳转动画的变化而产生变化,透明度是渐变的过程,当前帧为跳转动画的最后一帧时,当前场景的透明度为0.8,也就是说当前场景的透明度的范围是80%~100%。
最后,需要对当前场景进行拉伸处理,使当前场景产生畸变,形成视觉上正在向目标场景移动的感觉。本优选实施例中,对当前场景的下半部分进行拉伸处理的方法是:将当前场景的模型的下半部分分为若干部分,这里,当前场景的模型的下半部分具体分成的份数可以依据需求进行配置,只需要保证每个部分的拉伸程度不一致即可,例如可以分成两部分、三部分、四部分等;下面以两部分为例进行说明,对于y≥0且y≤球模型半径/16的点,沿x轴拉伸的距离=当前帧数×x轴拉伸的单位距离,沿z轴拉伸的距离=当前帧数×z轴拉伸的单位距离,对于y>球模型半径/16的点,沿x轴拉伸的距离=1.5×当前帧数×x轴拉伸的单位距离,沿z轴拉伸的距离=1.5×当前帧数×z轴拉伸的单位距离;其中,x轴拉伸的单位距离xoffset=常数×x轴方向的移动距离/跳转动画的总帧数,z轴拉伸的单位距离zoffset=常数×z轴方向的移动距离/跳转动画的总帧数。利用上述方法拉伸当前场景后,在转换过程中形成了模型的不规则拉伸,增强了前进的感觉。
步骤102,在当前场景开始移动和拉伸时,加载目标场景的缩略图和可视范围内图片,并在加载完毕后渲染目标场景。
具体的,对于目标场景,在当前场景开始移动和拉伸时,就是向目标场景切换的过程,在切换过程中,当前场景在跳转动画的每一帧都需要进行渲染,目标场景则不是每一帧都在渲染,而是间隔N帧才渲染一次,N的取值可以依据跳转动画的总帧数计算得到。其中,对于目标场景的渲染方法为:
先依据目标场景的场景id从服务器获取目标场景的场景数据;其中,如果用户点击屏幕显示的前进箭头或后退箭头跳转到目标场景,那么依据箭头与场景id的对应关系获得场景id;如果用户点击地面道路跳转到目标场景,那么依据点击位置的经纬度从服务器获得对应的场景id。目标场景的场景数据包括:场景类型(包括街景和室内景)、场景描述信息、目标场景的方向与正北方向的夹角,目标场景的经纬度、拓扑点id、目标场景所在道路的道路名、目标场景所在道路的方向、目标场景范围内兴趣点的id等。
每个场景都有一个对应的缩略图,该缩略图包含整个场景的纹理数据,缩略图用于向用户显示场景;服务器保存有场景id及对应的缩略图,依据场景id可以加载对应的缩略图;缩略图加载完毕后,加载可视范围内图片,可视范围内图片加载完毕后,就会替换原先加载的缩略图;其中,获得可视范围内图片的方法是遍历目标场景的球模型的所有三角形,对每个三角形进行三维到二维的屏幕投影,如果依据场景数据中的目标场景所在道路的方向以及预设的屏幕大小判断出三角形的屏幕投影位于屏幕范围内,则表示该三角形可见,该三角形对应的图片为可视范围内图片;依据预设的三角形与图片的对应关系获得该三角形对应的图片,然后加载该图片,加载的可视范围内图片将替换原先的缩略图;这里,可视范围内图片是一种高分辨率的图片,其纹理级别高于缩略图,由于高分辨率图片数据量大,因此这里只加载可视范围内图片。
在加载完缩略图后,进行目标场景的图像渲染,由于可视范围内图片加载完毕后会替换缩略图,所以在进行渲染处理时既有可能是在渲染缩略图,也可能是在渲染可视范围内图片。
步骤103,当前场景移动和拉伸完毕且目标场景渲染完毕时,展现出目标场景。
具体的,当前场景的移动和拉伸完毕后,判断目标场景的渲染是否完毕,如果目标场景的渲染完毕,表示目标场景能够正常展现,则将当前场景的透明度递减至0,并释放当前场景所占用的所有内存资源,用以销毁当前场景,这样,目标场景就作为新的当前场景显现给用户,然后进入常规的渲染流程,该渲染流程指的是渲染单个场景的流程,与场景间切换时的跳转动画无关,例如切换到目标场景后,如果在目标场景内旋转视角方向,就需要重新渲染之前不在视角范围内的图像;如果目标场景的渲染未完成,表示目标场景不能正常展现,则依据不同的错误情况执行不同的处理,例如,如果目标场景的场景数据或缩略图加载出错,则后退,重新显示当前场景;如果目标场景的场景数据处于请求中,未能完成渲染,则当前场景的跳转动画停止,等待目标场景的缩略图渲染完成后,再展现目标场景。
为实现上述方法,本发明还提供一种全景内动画跳转***,图2是本发明实现全景内动画跳转***的优选实施例的结构示意图,如图2所示,该***包括:模型处理单元21、场景加载单元22、场景展现单元23;其中,
模型处理单元21,用于在触发场景跳转时,利用预先生成的过渡矩阵对当前场景的模型矩阵进行模型修改处理,并对当前场景进行透明度修改处理和拉伸处理;
场景加载单元22,用在当前场景开始移动和拉伸时,加载目标场景的缩略图和可视范围内图片,并在加载完毕后渲染目标场景;
场景展现单元23,用于当前场景移动和拉伸完毕且目标场景渲染完毕时,展现出目标场景。
该***还包括:
矩阵生成单元20,用于依据移动前位置的三维坐标和鼠标点击位置的三维坐标计算当前场景与目标场景之间实际的移动距离,依据所述移动距离计算得到跳转动画的总帧数;将移动距离和当前场景的模型矩阵作为参数输入预设的模型矩阵生成函数,生成移动后的模型矩阵;将当前场景的模型矩阵、移动后的模型矩阵、当前帧数和跳转动画的总帧数作为参数输入预设的过渡矩阵生成函数,生成从当前场景的模型矩阵转换到移动后的模型矩阵的过渡矩阵。
其中,所述矩阵生成单元20利用如下公式得到跳转动画的总帧数:
其中,Nframe为跳转动画的总帧数,Nshortest为预设的跳转动画的最短时长,Nlongest为预设的跳转动画的最长时长,MAX_DISTANCE为预设的移动距离的最大值,DISTANCE为实际的移动距离。
其中,当前场景的透明度等于1减去0.2乘以当前帧数与跳转动画的总帧数的比值。
其中,模型处理单元21在对当前场景进行拉伸处理时,具体为:
在当前场景的模型的下半部分中,对于y≥0且y≤球模型半径/16的点,沿x轴拉伸的距离等于当前帧数乘以x轴拉伸的单位距离,沿z轴拉伸的距离等于当前帧数乘以z轴拉伸的单位距离;对于y>球模型半径/16的点,沿x轴拉伸的距离等于1.5乘以当前帧数乘以x轴拉伸的单位距离,沿z轴拉伸的距离等于1.5乘以当前帧数乘以z轴拉伸的单位距离;所述x轴拉伸的单位距离等于常数乘以x轴方向的移动距离除以跳转动画的总帧数,z轴拉伸的单位距离等于常数乘以z轴方向的移动距离除以跳转动画的总帧数。
其中,所述场景加载单元22在加载目标场景的缩略图和可视范围内图片时,具体为:
依据点击的前进箭头或后退箭头、箭头与场景id的对应关系获得场景id;或依据点击位置的经纬度从服务器获得对应的场景id;
依据目标场景的场景id从服务器获取目标场景的场景数据;
依据场景id与缩略图的对应关系,加载获得的场景id对应的缩略图;
缩略图加载完毕后,遍历目标场景的球模型的所有三角形,对每个三角形进行三维到二维的屏幕投影,当依据场景数据中的目标场景所在道路的方向以及预设的屏幕大小判断出三角形的屏幕投影位于屏幕范围内时,判断出三角形对应的图片为可视范围内图片;
加载所述三角形对应的可视范围内图片,加载的可视范围内图片替换已经加载的缩略图。
该***中,所述场景展现单元23,还用于当前场景移动和拉伸完毕,但目标场景的场景数据或缩略图加载出错时,重新显示当前场景;或,当前场景移动和拉伸完毕,但目标场景的场景数据处于请求中,未能完成渲染时,停止当前场景的跳转动画,等待目标场景的缩略图渲染完成后再展现目标场景。
本发明的技术方案中,在由当前场景到目标场景的跳转动画中,移动和拉伸当前场景,并在跳转动画开始时就开始加载目标场景的图像,跳转动画的衔接使得当前场景到目标场景的切换更加连贯,能够从当前场景自然、平滑的过渡到下一个场景,给用户正在朝着目的地移动的感受,向街景用户提供全景的沉浸感。而且,为了保证帧率,目标场景的渲染采用间隔多帧渲染一次的渲染策略,能够提高跳转效率和渲染效率。本发明的技术方案可以应用到室外场景之间的跳转切换,也可以应用在室外场景到室内场景的跳转切换。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (14)
1.一种全景内动画跳转方法,其特征在于,该方法包括:
触发场景跳转时,利用预先生成的过渡矩阵对当前场景的模型矩阵进行模型修改处理,并对当前场景进行透明度修改处理和拉伸处理;
在当前场景开始移动和拉伸时,加载目标场景的缩略图和可视范围内图片,并在加载完毕后渲染目标场景;
当前场景移动和拉伸完毕且目标场景渲染完毕时,展现出目标场景。
2.根据权利要求1所述的方法,其特征在于,生成过渡矩阵的方法为:
依据移动前位置的三维坐标和鼠标点击位置的三维坐标计算当前场景与目标场景之间实际的移动距离,依据所述移动距离计算得到跳转动画的总帧数;
将移动距离和当前场景的模型矩阵作为参数输入预设的模型矩阵生成函数,生成移动后的模型矩阵;
将当前场景的模型矩阵、移动后的模型矩阵、当前帧数和跳转动画的总帧数作为参数输入预设的过渡矩阵生成函数,生成从当前场景的模型矩阵转换到移动后的模型矩阵的过渡矩阵。
3.根据权利要求2所述的方法,其特征在于,利用如下公式得到跳转动画的总帧数:
其中,Nframe为跳转动画的总帧数,Nshortest为预设的跳转动画的最短时长,Nlongest为预设的跳转动画的最长时长,MAX_DISTANCE为预设的移动距离的最大值,DISTANCE为实际的移动距离。
4.根据权利要求2所述的方法,其特征在于,当前场景的透明度等于1减去0.2乘以当前帧数与跳转动画的总帧数的比值。
5.根据权利要求2所述的方法,其特征在于,对当前场景进行拉伸处理的方法为:
在当前场景的模型的下半部分中,对于y≥0且y≤球模型半径/16的点,沿x轴拉伸的距离等于当前帧数乘以x轴拉伸的单位距离,沿z轴拉伸的距离等于当前帧数乘以z轴拉伸的单位距离;对于y>球模型半径/16的点,沿x轴拉伸的距离等于1.5乘以当前帧数乘以x轴拉伸的单位距离,沿z轴拉伸的距离等于1.5乘以当前帧数乘以z轴拉伸的单位距离;所述x轴拉伸的单位距离等于常数乘以x轴方向的移动距离除以跳转动画的总帧数,z轴拉伸的单位距离等于常数乘以z轴方向的移动距离除以跳转动画的总帧数。
6.根据权利要求1所述的方法,其特征在于,所述加载目标场景的缩略图和可视范围内图片具体为:
依据点击的前进箭头或后退箭头、箭头与场景id的对应关系获得场景id;或依据点击位置的经纬度从服务器获得对应的场景id;
依据目标场景的场景id从服务器获取目标场景的场景数据;
依据场景id与缩略图的对应关系,加载获得的场景id对应的缩略图;
缩略图加载完毕后,遍历目标场景的球模型的所有三角形,对每个三角形进行三维到二维的屏幕投影,当依据场景数据中的目标场景所在道路的方向以及预设的屏幕大小判断出三角形的屏幕投影位于屏幕范围内时,判断出三角形对应的图片为可视范围内图片;
加载所述三角形对应的可视范围内图片,加载的可视范围内图片替换已经加载的缩略图。
7.根据权利要求1所述的方法,其特征在于,该方法还包括:
当前场景移动和拉伸完毕,但目标场景的场景数据或缩略图加载出错时,重新显示当前场景;
或,当前场景移动和拉伸完毕,但目标场景的场景数据处于请求中,未能完成渲染时,停止当前场景的跳转动画,等待目标场景的缩略图渲染完成后再展现目标场景。
8.一种全景内动画跳转***,其特征在于,该***包括:模型处理单元、场景加载单元、场景展现单元;其中,
模型处理单元,用于在触发场景跳转时,利用预先生成的过渡矩阵对当前场景的模型矩阵进行模型修改处理,并对当前场景进行透明度修改处理和拉伸处理;
场景加载单元,用在当前场景开始移动和拉伸时,加载目标场景的缩略图和可视范围内图片,并在加载完毕后渲染目标场景;
场景展现单元,用于当前场景移动和拉伸完毕且目标场景渲染完毕时,展现出目标场景。
9.根据权利要求8所述的***,其特征在于,该***还包括:
矩阵生成单元,用于依据移动前位置的三维坐标和鼠标点击位置的三维坐标计算当前场景与目标场景之间实际的移动距离,依据所述移动距离计算得到跳转动画的总帧数;将移动距离和当前场景的模型矩阵作为参数输入预设的模型矩阵生成函数,生成移动后的模型矩阵;将当前场景的模型矩阵、移动后的模型矩阵、当前帧数和跳转动画的总帧数作为参数输入预设的过渡矩阵生成函数,生成从当前场景的模型矩阵转换到移动后的模型矩阵的过渡矩阵。
10.根据权利要求9所述的***,其特征在于,所述矩阵生成单元利用如下公式得到跳转动画的总帧数:
其中,Nframe为跳转动画的总帧数,Nshortest为预设的跳转动画的最短时长,Nlongest为预设的跳转动画的最长时长,MAX_DISTANCE为预设的移动距离的最大值,DISTANCE为实际的移动距离。
11.根据权利要求9所述的***,其特征在于,当前场景的透明度等于1减去0.2乘以当前帧数与跳转动画的总帧数的比值。
12.根据权利要求9所述的***,其特征在于,模型处理单元在对当前场景进行拉伸处理时,具体为:
在当前场景的模型的下半部分中,对于y≥0且y≤球模型半径/16的点,沿x轴拉伸的距离等于当前帧数乘以x轴拉伸的单位距离,沿z轴拉伸的距离等于当前帧数乘以z轴拉伸的单位距离;对于y>球模型半径/16的点,沿x轴拉伸的距离等于1.5乘以当前帧数乘以x轴拉伸的单位距离,沿z轴拉伸的距离等于1.5乘以当前帧数乘以z轴拉伸的单位距离;所述x轴拉伸的单位距离等于常数乘以x轴方向的移动距离除以跳转动画的总帧数,z轴拉伸的单位距离等于常数乘以z轴方向的移动距离除以跳转动画的总帧数。
13.根据权利要求8所述的***,其特征在于,所述场景加载单元在加载目标场景的缩略图和可视范围内图片时,具体为:
依据点击的前进箭头或后退箭头、箭头与场景id的对应关系获得场景id;或依据点击位置的经纬度从服务器获得对应的场景id;
依据目标场景的场景id从服务器获取目标场景的场景数据;
依据场景id与缩略图的对应关系,加载获得的场景id对应的缩略图;
缩略图加载完毕后,遍历目标场景的球模型的所有三角形,对每个三角形进行三维到二维的屏幕投影,当依据场景数据中的目标场景所在道路的方向以及预设的屏幕大小判断出三角形的屏幕投影位于屏幕范围内时,判断出三角形对应的图片为可视范围内图片;
加载所述三角形对应的可视范围内图片,加载的可视范围内图片替换已经加载的缩略图。
14.根据权利要求8所述的***,其特征在于,所述场景展现单元,还用于当前场景移动和拉伸完毕,但目标场景的场景数据或缩略图加载出错时,重新显示当前场景;或,当前场景移动和拉伸完毕,但目标场景的场景数据处于请求中,未能完成渲染时,停止当前场景的跳转动画,等待目标场景的缩略图渲染完成后再展现目标场景。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310190421.0A CN104182999B (zh) | 2013-05-21 | 2013-05-21 | 一种全景内动画跳转方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310190421.0A CN104182999B (zh) | 2013-05-21 | 2013-05-21 | 一种全景内动画跳转方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104182999A true CN104182999A (zh) | 2014-12-03 |
CN104182999B CN104182999B (zh) | 2019-02-12 |
Family
ID=51964015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310190421.0A Active CN104182999B (zh) | 2013-05-21 | 2013-05-21 | 一种全景内动画跳转方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104182999B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105183296A (zh) * | 2015-09-23 | 2015-12-23 | 腾讯科技(深圳)有限公司 | 交互界面显示方法及装置 |
CN106157354A (zh) * | 2015-05-06 | 2016-11-23 | 腾讯科技(深圳)有限公司 | 一种三维场景切换方法及*** |
CN106502670A (zh) * | 2016-10-20 | 2017-03-15 | 网易(杭州)网络有限公司 | 一种游戏场景切换方法与装置 |
CN106961622A (zh) * | 2017-03-30 | 2017-07-18 | 联想(北京)有限公司 | 一种显示处理方法及装置 |
CN107102794A (zh) * | 2017-04-27 | 2017-08-29 | 武汉数文科技有限公司 | 操作处理方法及装置 |
CN107767461A (zh) * | 2017-09-27 | 2018-03-06 | 珠海研果科技有限公司 | 一种全景图像跳转方法 |
CN108259748A (zh) * | 2018-01-29 | 2018-07-06 | 盎锐(上海)信息科技有限公司 | 基于全景拍摄装置的图像建模方法及全景拍摄*** |
CN108366197A (zh) * | 2018-01-29 | 2018-08-03 | 盎锐(上海)信息科技有限公司 | 图像建模方法及全景拍摄*** |
CN108389245A (zh) * | 2018-02-13 | 2018-08-10 | 鲸彩在线科技(大连)有限公司 | 动画场景的渲染方法、装置、电子设备和可读存储介质 |
CN108629828A (zh) * | 2018-04-03 | 2018-10-09 | 中德(珠海)人工智能研究院有限公司 | 三维大场景的移动过程中的场景渲染过渡方法 |
CN110619659A (zh) * | 2019-06-20 | 2019-12-27 | 北京无限光场科技有限公司 | 一种房源展示方法、装置、终端设备及介质 |
CN113115023A (zh) * | 2020-01-09 | 2021-07-13 | 百度在线网络技术(北京)有限公司 | 全景场景切换方法、装置及设备 |
CN115439615A (zh) * | 2022-11-07 | 2022-12-06 | 山东济矿鲁能煤电股份有限公司阳城煤矿 | 一种基于三维bim的分布式综合管理*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1841188A (zh) * | 2005-03-30 | 2006-10-04 | 北京大学 | 一种自动球形全景图的生成方法 |
CN102750724A (zh) * | 2012-04-13 | 2012-10-24 | 广州市赛百威电脑有限公司 | 一种基于图像的三维和全景***自动生成方法 |
US8396325B1 (en) * | 2009-04-27 | 2013-03-12 | Google Inc. | Image enhancement through discrete patch optimization |
-
2013
- 2013-05-21 CN CN201310190421.0A patent/CN104182999B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1841188A (zh) * | 2005-03-30 | 2006-10-04 | 北京大学 | 一种自动球形全景图的生成方法 |
US8396325B1 (en) * | 2009-04-27 | 2013-03-12 | Google Inc. | Image enhancement through discrete patch optimization |
CN102750724A (zh) * | 2012-04-13 | 2012-10-24 | 广州市赛百威电脑有限公司 | 一种基于图像的三维和全景***自动生成方法 |
Non-Patent Citations (3)
Title |
---|
DRAGUTIN HRENEK 等: "Tiled 360° panoramic projection system", 《MIPRO, 2012 PROCEEDINGS OF THE 35TH INTERNATIONAL CONVENTION》 * |
李怡静,张剑清: "多视点全景图与平滑漫游的研究与实现", 《计算机工程》 * |
樊淑萍: "基于柱状全景图的空间漫游视图拟合算法", 《自动化技术与应用》 * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106157354B (zh) * | 2015-05-06 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 一种三维场景切换方法及*** |
CN106157354A (zh) * | 2015-05-06 | 2016-11-23 | 腾讯科技(深圳)有限公司 | 一种三维场景切换方法及*** |
CN105183296B (zh) * | 2015-09-23 | 2018-05-04 | 腾讯科技(深圳)有限公司 | 交互界面显示方法及装置 |
CN105183296A (zh) * | 2015-09-23 | 2015-12-23 | 腾讯科技(深圳)有限公司 | 交互界面显示方法及装置 |
CN106502670A (zh) * | 2016-10-20 | 2017-03-15 | 网易(杭州)网络有限公司 | 一种游戏场景切换方法与装置 |
CN106961622A (zh) * | 2017-03-30 | 2017-07-18 | 联想(北京)有限公司 | 一种显示处理方法及装置 |
CN106961622B (zh) * | 2017-03-30 | 2020-09-25 | 联想(北京)有限公司 | 一种显示处理方法及装置 |
CN107102794A (zh) * | 2017-04-27 | 2017-08-29 | 武汉数文科技有限公司 | 操作处理方法及装置 |
CN107767461A (zh) * | 2017-09-27 | 2018-03-06 | 珠海研果科技有限公司 | 一种全景图像跳转方法 |
CN108366197A (zh) * | 2018-01-29 | 2018-08-03 | 盎锐(上海)信息科技有限公司 | 图像建模方法及全景拍摄*** |
CN108259748A (zh) * | 2018-01-29 | 2018-07-06 | 盎锐(上海)信息科技有限公司 | 基于全景拍摄装置的图像建模方法及全景拍摄*** |
CN108389245A (zh) * | 2018-02-13 | 2018-08-10 | 鲸彩在线科技(大连)有限公司 | 动画场景的渲染方法、装置、电子设备和可读存储介质 |
CN108629828A (zh) * | 2018-04-03 | 2018-10-09 | 中德(珠海)人工智能研究院有限公司 | 三维大场景的移动过程中的场景渲染过渡方法 |
CN110619659A (zh) * | 2019-06-20 | 2019-12-27 | 北京无限光场科技有限公司 | 一种房源展示方法、装置、终端设备及介质 |
CN113115023A (zh) * | 2020-01-09 | 2021-07-13 | 百度在线网络技术(北京)有限公司 | 全景场景切换方法、装置及设备 |
CN113115023B (zh) * | 2020-01-09 | 2022-09-27 | 百度在线网络技术(北京)有限公司 | 全景场景切换方法、装置及设备 |
CN115439615A (zh) * | 2022-11-07 | 2022-12-06 | 山东济矿鲁能煤电股份有限公司阳城煤矿 | 一种基于三维bim的分布式综合管理*** |
CN115439615B (zh) * | 2022-11-07 | 2023-02-17 | 山东济矿鲁能煤电股份有限公司阳城煤矿 | 一种基于三维bim的分布式综合管理*** |
Also Published As
Publication number | Publication date |
---|---|
CN104182999B (zh) | 2019-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104182999A (zh) | 一种全景内动画跳转方法及*** | |
Donghui et al. | Virtual reality technology applied in digitalization of cultural heritage | |
CN107423445B (zh) | 一种地图数据处理方法、装置及存储介质 | |
CN107018336B (zh) | 图像处理的方法和装置及视频处理的方法和装置 | |
WO2021258994A1 (zh) | 虚拟场景的显示方法、装置、设备及存储介质 | |
CN105719343A (zh) | 一种构建虚拟街景地图的方法 | |
CN107833277A (zh) | 一种基于unity3D的全景漫游场景编辑方法 | |
JP2011150734A (ja) | パノラマのイメージを描画すること、閲覧すること、および注釈をつけること、ならびにそのアプリケーション | |
CN104616342B (zh) | 序列帧与全景的相互转换方法 | |
CN115049811B (zh) | 一种数字孪生虚拟三维场景的编辑方法、***及存储介质 | |
US11880999B2 (en) | Personalized scene image processing method, apparatus and storage medium | |
US9547921B1 (en) | Texture fading for smooth level of detail transitions in a graphics application | |
CN114115525B (zh) | 信息显示方法、装置、设备及存储介质 | |
CN110120087A (zh) | 三维虚拟沙盘的标签标注方法、装置及终端设备 | |
Zhang et al. | The Application of Folk Art with Virtual Reality Technology in Visual Communication. | |
CN108388465B (zh) | 动态形变开关组件的实现方法、装置及终端 | |
US20050140668A1 (en) | Ingeeni flash interface | |
CN111210486A (zh) | 一种用于实现流光效果的方法和装置 | |
CN103325135A (zh) | 一种资源展示方法、装置和终端 | |
CN114428573B (zh) | 特效图像处理方法、装置、电子设备及存储介质 | |
CN108510433B (zh) | 空间展示方法、装置及终端 | |
CN115512089A (zh) | 一种bim模型的快速浏览方法 | |
CN104615398A (zh) | 一种立方体显示方法及装置 | |
CN103400412A (zh) | 一种资源展示方法、装置和终端 | |
CN103400407A (zh) | 一种资源展示的方法、装置与终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |