欢迎来到知嘟嘟! 联系电话:13336804447 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13336804447
知嘟嘟经纪人
收藏
专利号: 2020108417988
申请人: 长春理工大学
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2024-02-28
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种虚拟3D场景的球面全景立体画面的生成方法,其特征在于:提供一种球面全景立体相机,球面全景立体相机包括一个虚拟成像球面和一个观影圆,虚拟成像球面对应的球半径为R,观影圆的半径为r,虚拟成像球面对应的球心位于u-v-w坐标系的原点,观影圆在u-v-w坐标系的u-o-v平面上,观影圆的圆心位于u-v-w坐标系的原点;首先按照对方位角和极角的等角度间隔采样方式计算虚拟成像球面上各个像素采样点的坐标;然后针对虚拟成像球面上的每个像素采样点,根据观影圆参数计算其对应的左眼视点位置和右眼视点位置;利用光线跟踪技术从左眼视点位置发射穿过像素采样点的光线并跟踪光线在虚拟3D场景中的传播,从而得到该像素采样点在左眼观看时的颜色;利用光线跟踪技术从右眼视点位置发射穿过像素采样点的光线并跟踪光线在虚拟3D场景中的传播,从而得到该像素采样点在右眼观看时的颜色;使用等距柱面投影全景图像来存储虚拟成像球面上的各个像素采样点的颜色;利用光线跟踪技术,根据球面全景立体相机和虚拟3D场景模型生成球面全景立体画面,具体步骤如下:步骤Step101:按照对方位角和极角的等角度间隔采样方式计算虚拟成像球面上各个像素采样点的坐标,用等距柱面投影全景图像来存储虚拟成像球面上的这些像素采样点的颜色;等距柱面投影全景图像总共包含N行、2N列像素,N为正整数;等距柱面投影全景图像的第i行、第j列像素对应的虚拟成像球面上的像素采样点在u-v-w坐标系中的直角坐标为(uij,vij,wij),uij=R×sin(i×π/N+0.5×π/N)×cos(j×π/N+0.5×π/N),vij=R×sin(i×π/N+0.5×π/N)×sin(j×π/N+0.5×π/N),wij=R×cos(i×π/N+0.5×π/N);i=0,1,…,N-

1;j=0,1,…,2N-1;

步骤Step102:在计算机的存储器中创建一个包含N行、2N列元素的二维数组IML,二维数组IML的每个元素存储左眼对应的等距柱面投影全景图像的一个像素的颜色值,二维数组IML的元素与等距柱面投影全景图像的像素一一对应;在计算机的存储器中创建一个包含N行、2N列元素的二维数组IMR,二维数组IMR的每个元素存储右眼对应的等距柱面投影全景图像的一个像素的颜色值,二维数组IMR的元素与等距柱面投影全景图像的像素一一对应;

步骤Step103:针对等距柱面投影全景图像的每个像素A001,分别做如下操作:

步骤Step103-1:计算像素A001在等距柱面投影全景图像中的行号i和列号j;

步骤Step103-2:计算等距柱面投影全景图像的第i行、第j列像素对应的虚拟成像球面上的像素采样点在u-v-w坐标系中的直角坐标(uij,vij,wij);计算直角坐标(uij,vij,wij)对应的球坐标的极角θ和方位角 两个坐标分量值;

步骤Step103-3:计算球面全景立体相机的观影圆的穿过点Q的两条切线对应的切点cL和切点cR的坐标,其中点Q的u坐标分量 点Q的v坐标分量 点Q的w坐标分量qw=0;切点cL为像素A001对应的虚拟成像球面上的像素采样点对应的左眼视点,切点cR为像素A001对应的虚拟成像球面上的像素采样点对应的右眼视点;切点cL和切点cR在u-v-w坐标系中的坐标计算公式为:cL=Q-bL,cR=Q-bR,向量bL的计算公式为向量bR的计算公式为 l表示点Q到u-v-w坐标系的原点的距离,向量v表示从u-v-w坐标系的原点指向点Q的长度为l的向量,旋转变换矩阵 旋转角

步骤Step103-4:利用坐标变换方法,根据切点cL在u-v-w坐标系中的直角坐标计算切点cL在x-y-z世界坐标系中的直角坐标;利用坐标变换方法,根据等距柱面投影全景图像的第i行、第j列像素对应的虚拟成像球面上的像素采样点在u-v-w坐标系中的直角坐标(uij,vij,wij)计算等距柱面投影全景图像的第i行、第j列像素对应的虚拟成像球面上的像素采样点在x-y-z世界坐标系中的直角坐标;在x-y-z世界坐标系中,以切点cL作为起点发射一条穿过等距柱面投影全景图像的第i行、第j列像素对应的虚拟成像球面上的像素采样点的光线LRay,利用光线跟踪技术跟踪光线LRay在虚拟3D场景中的传播,计算沿光线LRay的反方向到达切点cL的光亮度值LRAD,把光亮度值LRAD转换成全景图像像素颜色值LColor,把颜色值LColor保存在二维数组IML的第i行、第j列元素中;

步骤Step103-5:利用坐标变换方法,根据切点cR在u-v-w坐标系中的直角坐标计算切点cR在x-y-z世界坐标系中的直角坐标;在x-y-z世界坐标系中,以切点cR作为起点发射一条穿过等距柱面投影全景图像的第i行、第j列像素对应的虚拟成像球面上的像素采样点的光线RRay,利用光线跟踪技术跟踪光线RRay在虚拟3D场景中的传播,计算沿光线RRay的反方向到达切点cR的光亮度值RRAD,把光亮度值RRAD转换成全景图像像素颜色值RColor,把颜色值RColor保存在二维数组IMR的第i行、第j列元素中;

步骤Step103-6:针对像素A001的操作结束;

步骤Step104:把二维数组IML保存的像素颜色值作为左眼对应的等距柱面投影全景图像数据保存到计算机磁盘文件PIML中,把二维数组IMR保存的像素颜色值作为右眼对应的等距柱面投影全景图像数据保存到计算机磁盘文件PIMR中。

2.一种虚拟3D场景的球面全景立体画面的交互式显示方法,其特征在于:在观看球面全景立体画面,进行立体视口画面交互式显示时,使用可编程光栅化图形绘制管线技术来绘制透视投影相机CAM拍摄到的三维球面模型SphereM的画面PICT,分别把左眼对应的等距柱面投影全景图像和右眼对应的等距柱面投影全景图像作为纹理,根据这两个纹理生成左眼视口对应的画面PICT和右眼视口对应的画面PICT,最后把左眼视口对应的画面PICT和右眼视口对应的画面PICT显示在头戴式显示器上;三维球面模型SphereM对应的球心在x-y-z世界坐标系的原点,三维球面模型SphereM对应的球半径为R;针对可编程光栅化图形绘制管线的片段着色器程序处理的每个片段B002,计算片段B002在x-y-z世界坐标系中的坐标,据此计算片段B002对应的左眼纹理坐标和右眼纹理坐标,最后根据左眼对应的等距柱面投影全景图像纹理插值计算左眼纹理坐标处的颜色值ColorL,根据右眼对应的等距柱面投影全景图像纹理插值计算右眼纹理坐标处的颜色值ColorR;把片段B002在左眼视口对应的画面PICT中对应的像素的颜色设置为颜色值ColorL,把片段B002在右眼视口对应的画面PICT中对应的像素的颜色设置为颜色值ColorR;根据球面全景立体画面的观看者的观看参数,获取左眼对应的等距柱面投影全景图像画面和右眼对应的等距柱面投影全景图像画面的相应局部视口区域并显示在头戴式显示设备上,实现球面全景立体画面的交互式显示,具体步骤如下:步骤Step201:用3D建模软件创建一个半径为R的三维球面模型SphereM,并把三维球面模型SphereM加载到计算机存储器中;把磁盘文件PIML保存的左眼对应的等距柱面投影全景图像数据加载到计算机存储器中,把磁盘文件PIMR保存的右眼对应的等距柱面投影全景图像数据加载到计算机存储器中;

步骤Step202:利用三维模型变换,使三维球面模型SphereM的球心与x-y-z世界坐标系的原点位置重合,使x-y-z世界坐标系的z轴正方向为从x-y-z世界坐标系的原点指向三维球面模型SphereM的北极点的方向;三维球面模型SphereM的北极点对应的球坐标的极角坐标分量为0;

步骤Step203:获取戴在观看者头部的头戴式显示器在当前时刻的朝向数据B001,并执行以下操作:

步骤Step203-1:使用透视投影相机CAM拍摄三维球面模型SphereM,透视投影相机CAM的视点在三维球面模型SphereM对应的球心位置;把透视投影相机CAM的向前观察方向向量Tper设置为朝向数据B001对应的朝向方向在x-y-z世界坐标系中对应的单位向量;如果朝向数据B001对应的朝向方向平行于x-y-z世界坐标系的x-o-y平面,则把透视投影相机CAM的向上方向向量Vper设置为z轴正方向对应的单位向量Vz=[0,0,1]T,否则把透视投影相机CAM的向上方向向量Vper设置为Tper×Uper,其中单位向量Uper=(Vz×Tper)/||Vz×Tper||;把透视投影相机CAM的水平视场半角设置为αh,把透视投影相机CAM的垂直视场半角设置为αv;把透视投影相机CAM的远裁剪平面到视点的距离设置为df,把透视投影相机CAM的近裁剪平面到视点的距离设置为dn,df为大于R的正数,dn为小于0.6R的正数;

步骤Step203-2:在图形绘制程序中使用可编程光栅化图形绘制管线技术来绘制透视投影相机CAM拍摄到的三维球面模型SphereM的画面;在图形绘制程序中创建两个大小相同、水平并排放置的视口,左视口对应左眼看到的透视投影相机CAM拍摄到的三维球面模型SphereM的画面,右视口对应右眼看到的透视投影相机CAM拍摄到的三维球面模型SphereM的画面;

步骤Step203-3:在可编程光栅化图形绘制管线中,使用透视投影相机CAM,绘制左视口对应的三维球面模型SphereM的画面并把画面保存到离屏帧缓冲区FBufL中;在此过程中针对可编程光栅化图形绘制管线的片段着色器程序处理的每个片段B002,分别做如下操作:步骤Step203-3-1:计算片段B002在x-y-z世界坐标系中的直角坐标(Fx,Fy,Fz);

步骤Step203-3-2:计算向量 其中单位向量 向量vF=[Fx,Fy,

Fz]T, 等于 和Tper的夹角的余弦值;

步骤Step203-3-3:令pFx表示向量pF的x分量,令pFy表示向量pF的y分量,令pFz表示向量pF的z分量;计算直角坐标(pFx,pFy,pFz)对应的球坐标的极角θF和方位角 两个坐标分量值;令Q′表示x-y-z世界坐标系的x-o-y平面上的一点,其中点Q′的x坐标分量点Q′的y坐标分量 点Q′的z坐标分量q′z=0;令圆CIR代表x-y-z世界坐标系的x-o-y平面上的以x-y-z世界坐标系的原点为圆心、半径为r的圆;计算圆CIR的穿过点Q′的切线对应的切点c′L=Q′-b′L,向量b′L的计算公式为l′表示点Q′到x-y-z世界坐标系的原点的距离,向量v′表示从x-y-z世界坐标系的原点指向点Q′的长度为l′的向量,旋转角

步骤Step203-3-4:令线段SEGL表示以直角坐标(Fx,Fy,Fz)表示的点和切点c′L为端点的线段;计算线段SEGL与以x-y-z世界坐标系的原点为球心、以R为半径的球面的交点PixelL,计算交点PixelL的球坐标的极角θL和方位角 两个坐标分量值;把计算机存储器中的左眼对应的等距柱面投影全景图像当作纹理,据此插值计算纹理坐标 对应的颜色值ColorL;纹理坐标由s和t两个分量构成,纹理坐标表示成(s,t)的形式,0≤s≤1,0≤t≤

1;输出颜色值ColorL作为片段B002的颜色;

步骤Step203-3-5:针对片段B002的操作结束;

步骤Step203-4:在可编程光栅化图形绘制管线中,使用透视投影相机CAM,绘制右视口对应的三维球面模型SphereM的画面并把画面保存到离屏帧缓冲区FBufR中;在此过程中针对可编程光栅化图形绘制管线的片段着色器程序处理的每个片段B002,分别做如下操作:步骤Step203-4-1:计算片段B002在x-y-z世界坐标系中的直角坐标(Fx,Fy,Fz);

步骤Step203-4-2:计算向量 其中单位向量 向量vF=[Fx,Fy,Fz

]T, 等于 和Tper的夹角的余弦值;

步骤Step203-4-3:令pFx表示向量pF的x分量,令pFy表示向量pF的y分量,令pFz表示向量pF的z分量;计算直角坐标(pFx,pFy,pFz)对应的球坐标的极角θF和方位角 两个坐标分量值;令Q′表示x-y-z世界坐标系的x-o-y平面上的一点,其中点Q′的x坐标分量点Q′的y坐标分量 点Q′的z坐标分量q′z=0;令圆CIR代表x-y-z世界坐标系的x-o-y平面上的以x-y-z世界坐标系的原点为圆心、半径为r的圆;计算圆CIR的穿过点Q′的切线对应的切点c′R=Q′-b′R,向量b′R的计算公式为l′表示点Q′到x-y-z世界坐标系的原点的距离,向量v′表示从x-y-z世界坐标系的原点指向点Q′的长度为l′的向量,旋转角

步骤Step203-4-4:令线段SEGR表示以直角坐标(Fx,Fy,Fz)表示的点和切点c′R为端点的线段;计算线段SEGR与以x-y-z世界坐标系的原点为球心、以R为半径的球面的交点PixelR,计算交点PixelR的球坐标的极角θR和方位角 两个坐标分量值,把计算机存储器中的右眼对应的等距柱面投影全景图像当作纹理,据此插值计算纹理坐标 对应的颜色值ColorR;输出颜色值ColorR作为片段B002的颜色;

步骤Step203-4-5:针对片段B002的操作结束;

步骤Step203-5:把离屏帧缓冲区FBufL和离屏帧缓冲区FBufR中保存的左视口和右视口对应的三维球面模型SphereM的画面分别显示到头戴式显示器的左眼屏幕区域和右眼屏幕区域上;

步骤Step204:检查图形绘制程序是否收到终止运行消息,如果没有收到终止运行消息,则转步骤Step203,否则转步骤Step205;

步骤Step205:结束球面全景立体画面的交互式显示。