三维全景漫游开发中热点不变形技术的设计与应用

更新时间:2020-01-20 来源:计算机应用技术论文 点击:

【www.rjdtv.com--计算机应用技术论文】

摘要:对三维全景漫游开发过程中的热点不变形技术难题进行必要的原因剖析和翔实的理论推导,提出采用基于PV3D免费引擎的函数或类调用,通过程序类关键代码的编写,成功解决三维全景虚拟现实漫游动画中的热点视频的不变形添加难题,为实现三维虚拟漫游动画中多个功能不同场景融合应用与设计,提供更多借鉴与参考。
  
  关键词:全景漫游;PV3D引擎;热点不变形;视频添加。
  
  全景漫游技术也称为三维全景虚拟现实技术[1]161-163,它的核心是全景图,通常采用普通相机或专业设备取景,然后通过相关软件制作生成。使用全景漫游可以降低实体模型建模难度,减小系统文件空间资源占用,提高网络运行速度。常见的全景图可分为立方体全景图、圆柱形全景图和球面全景图。
  
  在三维全景漫游虚拟技术应用开发过程中,原有的实体模型建模因其实体不规则或模型复杂导致模型数据量激增,从而使得实体模型在渲染输出时速度变得缓慢,使得很多场景相对复杂的模型不能在现有网络条件下畅快地展示给民众。
  
  随着三维建模技术的发展,图形与图像技术的综合应用不断融合提升,采用简单模型建模,然后将材质赋给模型,同时配合全景漫游实现三维虚拟效果,这样可以节省开发时间和降低开发成本,提高三维虚拟技术的实用性。
  
  本文主要采用球面全景图来做参考剖析热点的不变形理论依据。
  
  1 PV3D概述。
  
  Papervision-3D简称PV3D[2]89-92,是由巴西Carlos团队开发的一款基于Action Script开源且免费提供给Flash动画领域应用比较成熟的三维立体引擎项目,其遵循MIT协议。因其交互能力强,开发技术简单,占用系统资源小,功能强大,能实现炫丽美观的Flash 3D动画应用程序开发,使得Flash 3D动画制作难度大大降低,从而使该3D引擎得到广泛应用。
  
  如基于3D模型的船舶驾驶仿真模拟动画,基于3D模型的机动车驾驶模拟动画,以及基于3D类人物游戏动画等。查阅相关资料发现,良好地使用该技术可以实现提高三维虚拟仿真动画的沉浸性、交互性和逼真性。
  
  PV3D引擎因其效率和功能备受关注,但通过查阅相关资料发现,基于PV3D引擎的全景漫游技术[3]2140-2143存在相关功能不够完善的问题,主要表现在透视投影中会使热点随着相机的运动而变形的缺点,从而影响在实际动画运行中热点显示效果。
  
  本文主要通过相关基础理论分析和程序代码编写,成功解决热点变形问题,并用实例证实该法的可行性。
  
  2关键技术剖析与破解。
  
  2.1热点的变形问题剖析。
  
  目前,使用全景技术实现虚拟场景漫游开发的方法很多,其中,基于PV3D的全景漫游开发技术在商业广告领域应用颇多,利用该技术能够实现F1ash3D应用程序开发,效果相当不错。其动画运行原理是:在3D动画运行过程中,全景图中的图像处在同一曲面坐标系中,包括全景图中人为创建的热点图像,都参与系统设计的绝对运动。所以,我们看到的将是完整的全部像素点运动,动画效果逼真。
  
  但在现实应用中,往往需要3D动画中局部不动,也就是人为设计热点区域,使之突出显示,实现动中有静效果。如何解决动画运行过程中热点区域图像不变的问题是本研究的重心。破解思路是:采取在全景图中构建热点,同时将全景图中的热点区域坐标作对应转换,生成二维平面图像,通过PV3D函数类编程实现三维图像动画运行中能正常让二维图像在三维空间的局部显示的方法实现。
  
  为此,需要解决两个问题,一是热点的选取,二是对应热点坐标的转换。热点的选取将根据需要容易解决,在此不再叙述,下面从理论上推理实现热点的不变形方法与技巧。
  
  2.2热点的不变形研究。
  
  设二维平面图中任意一点A(x,y),当采用球面全景图技术[4]45-68生成全景图时,与A点对应的球面上点A′(x′,y′,z′)对应几何关系,如图1、图2所示。
     
  通过推理与计算,得出三维球面全景图中的点A′在对应的二维平面图中的点A位置显示,从而实现立体图中任意一点与平面图中某点形成的完全一一映射关系。三维虚拟漫游技术中,要实现动中有静,则需要全景漫游动画中局部“不变”区域被人为保留出来,通过编写类代码来实现,且不影响其他区域动画效果。
  
  2.3热点的不变形添加。
  
  依据上述理论,通过编写程序类代码,实现求解平面上点A与球面全景图上点A′对应,本文采用PV3D引擎提供的calculateScreenCoords()方法类和计时器Timer类[5]31-49综合应用,即时获取A′点在屏幕上的同步二维坐标A显示,进而完成热点的不变形添加。
  
  热点的不变形添加关键代码如下:
  
  Varreal2dx:Number=0;
  Varreal2dy:Number=0;
  Plane.calculateScreenCoords(camera);
  Real2dx=plane.screen.x+viewpoint.width/2;
  Real2dy=plane.screen.y+viewpoint.height/2.
  
  3热点的不变形应用。
  
  在实际应用中,常常需要在3D虚拟漫游场景中播放视频资料,以提升虚拟仿真效果。
  
  本文利用PV3D提供的平面类Plane和视频流材质类VideoStreamMaterial两个对象[5]31-43引擎实现,简述过程:首先实例化VideoStreamMaterial对象中参数Video对象和NetStream对象,然后将VideoStreamMaterial对象作为材质赋给Plane对象,最后将Plane对象作为一个热点,即应用热点的不变形添加原理实现视频的不变形添加功能。
  
  视频的不变形添加关键代码如下:
  
  Var video:video=new video();
  Var NC:netconnection=new netconnection();
  NC.connect(null);
  Var NS:netstream=new netstream(NC);
  NS.play“/video/shipingf.lv”);
  Video.attzchnetstream(NS)。
  
  4结语。
  
  本文主要对三维全景漫游开发过程中的热点不变形技术难题进行必要的原因剖析和翔实的理论推导,提出采用基于PV3D免费引擎的函数或类调用,通过程序类关键代码的编写,成功解决三维全景虚拟现实漫游动画中的热点,视频的不变形添加难题,为实现三维虚拟漫游动画中多个功能不同场景融合应用与设计提供更多借鉴与参考。
  
  本研究将对三维虚拟漫游场景中的文本、图片、流媒体等信息的拓展开发设计与应用提供更为丰富多彩的方法。
  
  参考文献:
  
  [1]文卫民,江朝伟,童献文。基于三维全景技术的虚拟校园漫游系统设计及艺术表现探究[J].艺术与设计,2011,2(4)。  
  [2]李卫,袁铭。Flash Papervision3D中3D Web应用程序设计[J].现代电子技术,2012,35(21)。 
  [3]陈宁,龚苏斌。基于PV3D的全景漫游关键技术研究[J].系统仿真学报,2013,25(9)。  
  [4]丁雄。球面全景图技术研究[D].哈尔滨:国防科学技术大学,2002.  
  [5]龚苏斌。基于视景重现的舰船IETM系统开发[D].镇江:江苏科技大学,2014.

本文来源:http://www.rjdtv.com/jisuanjilunwen/2795.html