CN110675482A - 虚拟三维场景的球面斐波那契像素点阵全景画面渲染与显示方法 - Google Patents

虚拟三维场景的球面斐波那契像素点阵全景画面渲染与显示方法 Download PDF

Info

Publication number
CN110675482A
CN110675482A CN201910948328.9A CN201910948328A CN110675482A CN 110675482 A CN110675482 A CN 110675482A CN 201910948328 A CN201910948328 A CN 201910948328A CN 110675482 A CN110675482 A CN 110675482A
Authority
CN
China
Prior art keywords
array
virtual
coordinate system
pixel
counter
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
Application number
CN201910948328.9A
Other languages
English (en)
Other versions
CN110675482B (zh
Inventor
陈纯毅
杨华民
蒋振刚
胡小娟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Changchun University of Science and Technology
Original Assignee
Changchun University of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Changchun University of Science and Technology filed Critical Changchun University of Science and Technology
Publication of CN110675482A publication Critical patent/CN110675482A/zh
Application granted granted Critical
Publication of CN110675482B publication Critical patent/CN110675482B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Geometry (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明公开一种虚拟三维场景的球面斐波那契像素点阵全景画面渲染与显示方法。本方法把虚拟全景相机的成像面上的像素阵列表示成球面斐波那契像素点阵,并利用光线跟踪技术渲染全景画面。全景画面的像素点在全景视域球表面上均匀分布,可以保证全景画面所有区域的像素空间分布密度相同,进而使全景画面所有区域具有相同的清晰度。本方法能够正常地把所生成的全景画面的局部区域显示到显示设备上。

Description

虚拟三维场景的球面斐波那契像素点阵全景画面渲染与显示 方法
技术领域
本发明属于虚拟三维场景画面渲染与显示技术领域,涉及一种虚拟三维场景的球面斐波那契像素点阵全景画面渲染与显示方法。
背景技术
随着虚拟现实技术的不断发展,人们对全景视频的需求越来越强烈。制作全景视频的关键是生成其中的每帧全景画面。全景画面包含360×180°视场范围的场景视觉信息。Vladyslav Zakharchenko等人2016年发表在SPIE会议论文集第9970卷的论文《QualityMetric for Spherical Panoramic Video》对全景画面作了详细介绍。全景画面既可以通过用全景相机拍摄真实场景生成,也可以利用计算机图形学技术渲染虚拟三维场景生成。当前的全景相机通常采用多相机拼接方法,把朝不同方向拍摄得到的局部视角画面缝合成全景画面。在利用计算机图形学技术渲染生成虚拟三维场景全景画面时,可以借用生成环境立方图的思想,通过生成环境立方图来产生全景画面。Tomas Akenine-
Figure BDA0002227639530000013
等人撰写的由A K Peters公司出版的《Real-Time Rendering,3rd Edition》对环境立方图的生成作了介绍。全景画面本质上呈现的是三维场景投影到全景视域球上的视觉信息。从这个角度说,全景画面的像素最好在全景视域球上均匀分布,以便使全景视域球上所有区域的像素点密度相同,从而保证全景画面的所有区域具有相同的清晰度和画质。然而,使用现有的立方图思想生成的全景画面的像素在全景视域球上并非均匀分布。2010年发表在期刊Mathematical Geosciences的第42卷第1期的论文《Measurement of areas on a sphereusing Fibonacci and latitude-longitude lattices》介绍了球面斐波那契网格点阵,其可以看作是在球面上均匀分布的点阵。如图1所示,要在半径为1的球面上生成包含N个点的斐波那契网格点阵,可以按如下方式计算第n个点的坐标(xn,yn,zn):
式中,
Figure BDA0002227639530000012
首先在全景视域球上产生包含N个点的球面斐波那契网格点阵,把球面斐波那契网格点阵的每个点当作全景画面的一个像素,再利用计算机图形学技术获得每个像素的颜色值,就可以渲染出各个区域具有相同清晰度的全景画面。由于球面斐波那契网格点阵并非二维规则矩形点阵,因此不宜用矩阵来保存球面斐波那契像素点阵全景画面。全景画面最终需要显示给人观看,人在观看全景画面时,在特定时刻只能观看到全景画面的一部分,也就是说特定时刻在显示设备上只需显示全景画面的一个局部区域。另外,当前显示设备的像素点阵通常为二维矩形点阵。要在显示设备上观看球面斐波那契像素点阵全景画面的一个局部区域,需要设计专门的方法来根据球面斐波那契像素点阵图像计算出特定画面区域的二维矩形像素点阵图像,以便在显示设备上显示。
尽管真实的全景相机通常由多个相机拼接而成,在利用计算机图形学技术渲染虚拟三维场景以生成全景画面时,可以定义虚拟全景相机。虚拟全景相机的成像面是一个半径为1的球面(就是全景视域球面,即图1所示的球面)。虚拟全景相机可以用成像球面的球心位置和北极方向两个参数来描述。虚拟全景相机视点位置就是该球心位置,虚拟全景相机拍摄时的向上方向就是该北极方向。如图1所示,成像球面的球心位置在局部坐标系x-y-z的原点o处,成像球面的北极方向为z轴方向。
发明内容
本发明的目的在于,提供一种虚拟三维场景的球面斐波那契像素点阵全景画面渲染与显示方法,实现虚拟三维场景的全景画面的渲染,并在显示器上显示全景画面的局部区域。
本发明的技术方案是这样实现的:首先在如图1所示的虚拟全景相机的成像球面上生成包含N个点的斐波那契网格点阵A001,计算斐波那契网格点阵A001的各个网格点在如图1所示的局部坐标系x-y-z中的坐标;根据世界坐标系X-Y-Z中的虚拟全景相机视点位置和虚拟全景相机拍摄时的向上方向构建从局部坐标系x-y-z到世界坐标系X-Y-Z的变换矩阵,据此计算斐波那契网格点阵A001的各个网格点在世界坐标系X-Y-Z中的坐标;根据世界坐标系X-Y-Z中的虚拟全景相机视点位置和世界坐标系X-Y-Z中的斐波那契网格点阵A001的各个网格点的坐标,确定斐波那契网格点阵A001的各个网格点对应的成像球面像素点对应的光线,并利用光线跟踪技术求解像素颜色;用一维数组PANORAMA存储斐波那契网格点阵A001的各个网格点对应的成像球面像素点的颜色,即数组PANORAMA的第n个元素存储斐波那契网格点阵A001的第n个网格点对应成像球面像素点的颜色,n=1,2,…,N;最后,把数组PANORAMA保存到磁盘文件PAIMAGE中,完成全景画面的渲染;在显示全景画面时,首先把磁盘文件PAIMAGE中的数组PANORAMA加载到计算机内存中,然后把虚拟透视投影相机A004的视点设置成局部坐标系x-y-z的原点,再用虚拟透视投影相机A004拍摄成像球面以便得到需要显示的全景画面局部区域;如图1所示,矩形ABCD就是虚拟透视投影相机A004的像素平面;根据数组PANORAMA存储的数据插值计算虚拟透视投影相机A004的像素平面上的各个像素的颜色值,从而得到矩形画面A005,并把矩形画面A005显示到显示器上。本方法的具体实现步骤如下:
1)本方法的第一部分实现全景画面的渲染,具体实现步骤如下:
步骤Step101:在虚拟全景相机的成像球面上生成包含N个点的斐波那契网格点阵A001,计算斐波那契网格点阵A001的各个网格点在如图1所示的局部坐标系x-y-z中的坐标;斐波那契网格点阵A001的第n个网格点的坐标为(xn,yn,zn),其中zn=(2n-1)/N-1,
Figure BDA0002227639530000031
Figure BDA0002227639530000032
在计算机的内存中创建包含N个元素的一维数组PANORAMA,数组PANORAMA的每个元素保存虚拟全景相机成像球面上的一个像素的颜色值;
步骤Step102:计算从局部坐标系x-y-z到世界坐标系X-Y-Z的变换矩阵Mxyz2XYZ
Figure BDA0002227639530000033
其中px表示虚拟全景相机视点在世界坐标系X-Y-Z中的X坐标,py表示虚拟全景相机视点在世界坐标系X-Y-Z中的Y坐标,pz表示虚拟全景相机视点在世界坐标系X-Y-Z中的Z坐标,向量W=[wx,wy,wz]T表示虚拟全景相机拍摄时的向上方向在世界坐标系X-Y-Z中对应的单位向量,向量U=[ux,uy,uz]T,向量V=[vx,vy,vz]T;向量V按如下方式计算:令
Figure BDA0002227639530000034
如果
Figure BDA0002227639530000035
Figure BDA0002227639530000036
否则V=[0,0,1]T;向量U按如下方式计算:
Figure BDA0002227639530000037
步骤Step103:对于n=1,2,…,N,针对斐波那契网格点阵A001的第n个网格点,做如下操作:
步骤Step103-1:令向量
Figure BDA0002227639530000039
其中ppix,x表示向量Ppix的第一个分量,ppix,y表示向量Ppix的第二个分量,ppix,z表示向量Ppix的第三个分量,ppix,w表示向量Ppix的第四个分量;
步骤Step103-2:从世界坐标系X-Y-Z中的虚拟全景相机视点位置出发,发射一条穿过世界坐标系X-Y-Z中的点
Figure BDA00022276395300000311
的光线B001,利用光线跟踪技术跟踪光线B001在虚拟三维场景中的传播,从而计算得到斐波那契网格点阵A001的第n个网格点对应的虚拟全景相机成像球面像素的颜色B002;把数组PANORAMA的第n个元素赋值为颜色B002;
步骤Step103-3:针对斐波那契网格点阵A001的第n个网格点的操作结束;
步骤Step104:把数组PANORAMA保存到磁盘文件PAIMAGE中。
2)本方法的第二部分实现全景画面的特定局部区域的显示,具体实现步骤如下:
步骤Step201:把磁盘文件PAIMAGE中的数组PANORAMA加载到计算机的内存中;在计算机内存中创建包含NRow行、NCol列元素的二维数组IMSH,NRow表示虚拟透视投影相机A004的像素平面上的像素行数,NCol表示虚拟透视投影相机A004的像素平面上的像素列数,数组IMSH的元素用于保存虚拟透视投影相机A004的像素平面上的像素的颜色值,数组IMSH的元素和虚拟透视投影相机A004的像素平面上的像素一一对应;
步骤Step202:对于i=1,2,…,NRow,j=1,2,…,NCol,针对虚拟透视投影相机A004的像素平面上的第i行、第j列像素,做如下操作:
步骤Step202-1:令
Figure BDA0002227639530000041
Wpp=2tan(β)、Hpp=2tan(α),如图2所示,W1表示虚拟透视投影相机A004的观察方向对应的单位向量,U1表示虚拟透视投影相机A004拍摄时的向上方向对应的单位向量,单位向量U1与线段AD平行,α表示虚拟透视投影相机A004的垂直视场半角,β表示虚拟透视投影相机A004的水平视场半角;点A的坐标为
Figure BDA0002227639530000042
其中E表示虚拟透视投影相机A004的视点位置;虚拟透视投影相机A004的视点设置在局部坐标系x-y-z的原点,因此
Figure BDA0002227639530000043
虚拟透视投影相机A004的像素平面上的第i行、第j列像素的中心点Pij为:
Figure BDA0002227639530000044
步骤Step202-2:计算中心点Pij在球坐标系中对应的坐标
Figure BDA00022276395300000410
rij表示中心点Pij与坐标系原点o的距离,θij表示天顶角,
Figure BDA00022276395300000411
表示方位角,0≤θij≤π,
Figure BDA00022276395300000412
步骤Step202-3:令
Figure BDA0002227639530000045
round(x)表示对x进行四舍五入取整;在计算机的内存中创建包含NUM个元素的一维数组WT,在计算机的内存中创建包含NUM个元素的一维数组CO;令计数器Counter=0;令偏移δ=1;
步骤Step202-3-1:如果
Figure BDA0002227639530000046
或者
Figure BDA0002227639530000047
则转步骤Step202-3-2,否则执行如下操作:令
Figure BDA0002227639530000048
其中表示对x向下取整;令
Figure BDA0002227639530000051
如果adiff<ath,则把数组WT的第Counter+1个元素赋值为
Figure BDA0002227639530000052
把数组CO的第Counter+1个元素赋值为数组PANORAMA的第
Figure BDA0002227639530000053
个元素保存的颜色值,并且使Counter=Counter+1;ath为角度差异阈值;
步骤Step202-3-2:如果则转步骤Step202-3-3,否则执行如下操作:
Figure BDA0002227639530000055
Figure BDA0002227639530000056
如果βdiff<ath,则把数组WT的第Counter+1个元素赋值为
Figure BDA0002227639530000057
把数组CO的第Counter+1个元素赋值为数组PANORAMA的第
Figure BDA0002227639530000058
个元素保存的颜色值,并且使Counter=Counter+1;
步骤Step202-3-3:如果
Figure BDA0002227639530000059
则转步骤Step202-3-4,否则执行如下操作:
Figure BDA00022276395300000510
Figure BDA00022276395300000511
如果θdiff<ath,则把数组WT的第Counter+1个元素赋值为
Figure BDA00022276395300000512
把数组CO的第Counter+1个元素赋值为数组PANORAMA的第
Figure BDA00022276395300000513
个元素保存的颜色值,并且使Counter=Counter+1;
步骤Step202-3-4:如果Counter≥NUM,则转步骤Step202-4,否则令δ=δ+1,并进一步判断是否
Figure BDA00022276395300000514
大于N且
Figure BDA00022276395300000515
小于1,如果是,则转步骤Step202-4,否则转步骤Step202-3-2;
步骤Step202-4:计算数组WT从第1个到第Counter个元素的值的累加和SUM;对于J=1,2,…,Counter,把数组WT的第J个元素赋值为数组WT的第J个元素的值除以SUM之商;
步骤Step202-5:把数组WT的第1个至第Counter个元素的值当作对数组CO的第1个至第Counter个元素的值进行加权求和时使用的权重系数,计算数组CO的从第1个至第Counter个元素的值的加权求和结果C001;数组WT的第1个元素的值为数组CO的第1个元素的权重系数,数组WT的第2个元素的值为数组CO的第2个元素的权重系数,以此类推;把数组IMSH的第i行、第j列的元素赋值为加权求和结果C001;
步骤Step202-6:针对虚拟透视投影相机A004的像素平面上的第i行、第j列像素的操作结束;
步骤Step203:把保存在数组IMSH中的矩形画面A005显示到显示设备上。
本发明的积极效果是:全景画面的像素点在全景视域球表面上均匀分布,可以保证全景画面所有区域的像素空间分布密度相同,进而使全景画面所有区域具有相同的清晰度。另外,本方法能够正常地把所生成的全景画面的局部区域显示到显示设备上。
附图说明
图1为虚拟全景相机的成像面示意图。
图2为虚拟透视投影相机示意图。
具体实施方式
为了使本方法的特征和优点更加清楚明白,下面结合具体实施例对本方法作进一步的描述。在本实施例中,计算机配有Intel XeonTM CPU 3.20GHz、金士顿8GB DDR3 1333内存,Buffalo HD-CE 1.5TU2磁盘、英伟达Quadro K2000 GPU。虚拟三维场景为一个虚拟房间场景,在房间中放着一张桌子和一把椅子,在房间的一面墙上挂着一面镜子。
本发明的技术方案是这样实现的:首先在如图1所示的虚拟全景相机的成像球面上生成包含N个点的斐波那契网格点阵A001,计算斐波那契网格点阵A001的各个网格点在如图1所示的局部坐标系x-y-z中的坐标;根据世界坐标系X-Y-Z中的虚拟全景相机视点位置和虚拟全景相机拍摄时的向上方向构建从局部坐标系x-y-z到世界坐标系X-Y-Z的变换矩阵,据此计算斐波那契网格点阵A001的各个网格点在世界坐标系X-Y-Z中的坐标;根据世界坐标系X-Y-Z中的虚拟全景相机视点位置和世界坐标系X-Y-Z中的斐波那契网格点阵A001的各个网格点的坐标,确定斐波那契网格点阵A001的各个网格点对应的成像球面像素点对应的光线,并利用光线跟踪技术求解像素颜色;用一维数组PANORAMA存储斐波那契网格点阵A001的各个网格点对应的成像球面像素点的颜色,即数组PANORAMA的第n个元素存储斐波那契网格点阵A001的第n个网格点对应成像球面像素点的颜色,n=1,2,…,N;最后,把数组PANORAMA保存到磁盘文件PAIMAGE中,完成全景画面的渲染;在显示全景画面时,首先把磁盘文件PAIMAGE中的数组PANORAMA加载到计算机内存中,然后把虚拟透视投影相机A004的视点设置成局部坐标系x-y-z的原点,再用虚拟透视投影相机A004拍摄成像球面以便得到需要显示的全景画面局部区域;如图1所示,矩形ABCD就是虚拟透视投影相机A004的像素平面;根据数组PANORAMA存储的数据插值计算虚拟透视投影相机A004的像素平面上的各个像素的颜色值,从而得到矩形画面A005,并把矩形画面A005显示到显示器上。本方法的具体实现步骤如下:
1)本方法的第一部分实现全景画面的渲染,具体实现步骤如下:
步骤Step101:在虚拟全景相机的成像球面上生成包含N个点的斐波那契网格点阵A001,计算斐波那契网格点阵A001的各个网格点在如图1所示的局部坐标系x-y-z中的坐标;斐波那契网格点阵A001的第n个网格点的坐标为(xn,yn,zn),其中zn=(2n-1)/N-1,
Figure BDA0002227639530000061
在计算机的内存中创建包含N个元素的一维数组PANORAMA,数组PANORAMA的每个元素保存虚拟全景相机成像球面上的一个像素的颜色值;
步骤Step102:计算从局部坐标系x-y-z到世界坐标系X-Y-Z的变换矩阵Mxyz2XYZ
Figure BDA0002227639530000071
其中px表示虚拟全景相机视点在世界坐标系X-Y-Z中的X坐标,py表示虚拟全景相机视点在世界坐标系X-Y-Z中的Y坐标,pz表示虚拟全景相机视点在世界坐标系X-Y-Z中的Z坐标,向量W=[wx,wy,wz]T表示虚拟全景相机拍摄时的向上方向在世界坐标系X-Y-Z中对应的单位向量,向量U=[ux,uy,uz]T,向量V=[vx,vy,vz]T;向量V按如下方式计算:令
Figure BDA0002227639530000072
如果
Figure BDA0002227639530000073
Figure BDA0002227639530000074
否则V=[0,0,1]T;向量U按如下方式计算:
Figure BDA0002227639530000075
步骤Step103:对于n=1,2,…,N,针对斐波那契网格点阵A001的第n个网格点,做如下操作:
步骤Step103-1:令向量
Figure BDA0002227639530000076
Figure BDA0002227639530000077
Figure BDA0002227639530000078
其中ppix,x表示向量Ppix的第一个分量,ppix,y表示向量Ppix的第二个分量,ppix,z表示向量Ppix的第三个分量,ppix,w表示向量Ppix的第四个分量;
步骤Step103-2:从世界坐标系X-Y-Z中的虚拟全景相机视点位置出发,发射一条穿过世界坐标系X-Y-Z中的点的光线B001,利用光线跟踪技术跟踪光线B001在虚拟三维场景中的传播,从而计算得到斐波那契网格点阵A001的第n个网格点对应的虚拟全景相机成像球面像素的颜色B002;把数组PANORAMA的第n个元素赋值为颜色B002;
步骤Step103-3:针对斐波那契网格点阵A001的第n个网格点的操作结束;
步骤Step104:把数组PANORAMA保存到磁盘文件PAIMAGE中。
2)本方法的第二部分实现全景画面的特定局部区域的显示,具体实现步骤如下:
步骤Step201:把磁盘文件PAIMAGE中的数组PANORAMA加载到计算机的内存中;在计算机内存中创建包含NRow行、NCol列元素的二维数组IMSH,NRow表示虚拟透视投影相机A004的像素平面上的像素行数,NCol表示虚拟透视投影相机A004的像素平面上的像素列数,数组IMSH的元素用于保存虚拟透视投影相机A004的像素平面上的像素的颜色值,数组IMSH的元素和虚拟透视投影相机A004的像素平面上的像素一一对应;
步骤Step202:对于i=1,2,…,NRow,j=1,2,…,NCol,针对虚拟透视投影相机A004的像素平面上的第i行、第j列像素,做如下操作:
步骤Step202-1:令
Figure BDA0002227639530000081
Wpp=2tan(β)、Hpp=2tan(α),如图2所示,W1表示虚拟透视投影相机A004的观察方向对应的单位向量,U1表示虚拟透视投影相机A004拍摄时的向上方向对应的单位向量,单位向量U1与线段AD平行,α表示虚拟透视投影相机A004的垂直视场半角,β表示虚拟透视投影相机A004的水平视场半角;点A的坐标为
Figure BDA0002227639530000082
其中E表示虚拟透视投影相机A004的视点位置;虚拟透视投影相机A004的视点设置在局部坐标系x-y-z的原点,因此虚拟透视投影相机A004的像素平面上的第i行、第j列像素的中心点Pij为:
Figure BDA0002227639530000084
步骤Step202-2:计算中心点Pij在球坐标系中对应的坐标
Figure BDA0002227639530000085
rij表示中心点Pij与坐标系原点o的距离,θij表示天顶角,
Figure BDA0002227639530000086
表示方位角,0≤θij≤π,
Figure BDA0002227639530000087
步骤Step202-3:令
Figure BDA0002227639530000088
round(x)表示对x进行四舍五入取整;在计算机的内存中创建包含NUM个元素的一维数组WT,在计算机的内存中创建包含NUM个元素的一维数组CO;令计数器Counter=0;令偏移δ=1;
步骤Step202-3-1:如果
Figure BDA0002227639530000089
或者
Figure BDA00022276395300000810
则转步骤Step202-3-2,否则执行如下操作:令
Figure BDA00022276395300000811
其中
Figure BDA00022276395300000812
表示对x向下取整;令如果adiff<ath,则把数组WT的第Counter+1个元素赋值为
Figure BDA00022276395300000814
把数组CO的第Counter+1个元素赋值为数组PANORAMA的第个元素保存的颜色值,并且使Counter=Counter+1;ath为角度差异阈值;
步骤Step202-3-2:如果
Figure BDA0002227639530000091
则转步骤Step202-3-3,否则执行如下操作:
Figure BDA0002227639530000093
如果βdiff<ath,则把数组WT的第Counter+1个元素赋值为
Figure BDA0002227639530000094
把数组CO的第Counter+1个元素赋值为数组PANORAMA的第
Figure BDA0002227639530000095
个元素保存的颜色值,并且使Counter=Counter+1;
步骤Step202-3-3:如果
Figure BDA0002227639530000096
则转步骤Step202-3-4,否则执行如下操作:
Figure BDA0002227639530000097
Figure BDA0002227639530000098
如果θdiff<ath,则把数组WT的第Counter+1个元素赋值为
Figure BDA0002227639530000099
把数组CO的第Counter+1个元素赋值为数组PANORAMA的第
Figure BDA00022276395300000910
个元素保存的颜色值,并且使Counter=Counter+1;
步骤Step202-3-4:如果Counter≥NUM,则转步骤Step202-4,否则令δ=δ+1,并进一步判断是否
Figure BDA00022276395300000911
大于N且
Figure BDA00022276395300000912
小于1,如果是,则转步骤Step202-4,否则转步骤Step202-3-2;
步骤Step202-4:计算数组WT从第1个到第Counter个元素的值的累加和SUM;对于J=1,2,…,Counter,把数组WT的第J个元素赋值为数组WT的第J个元素的值除以SUM之商;
步骤Step202-5:把数组WT的第1个至第Counter个元素的值当作对数组CO的第1个至第Counter个元素的值进行加权求和时使用的权重系数,计算数组CO的从第1个至第Counter个元素的值的加权求和结果C001;数组WT的第1个元素的值为数组CO的第1个元素的权重系数,数组WT的第2个元素的值为数组CO的第2个元素的权重系数,以此类推;把数组IMSH的第i行、第j列的元素赋值为加权求和结果C001;
步骤Step202-6:针对虚拟透视投影相机A004的像素平面上的第i行、第j列像素的操作结束;
步骤Step203:把保存在数组IMSH中的矩形画面A005显示到显示设备上。
在显示全景画面的特定局部区域时,本方法利用虚拟透视投影相机A004拍摄虚拟全景相机的成像球面,并将拍摄到的画面显示到显示设备上;虚拟透视投影相机A004就是计算机图形学中的普通透视投影相机,在J.F.Hughes等人撰写的由Addison-Wesley出版公司于2014年出版的《Computer Graphics:Principles and Practice(3rd Edition)》的13.3节有关于透视投影相机的详细介绍。
在本实施例中,N=4096×4096,W=[0,1,0]T,px=0.1,py=1.0,pz=-1.2,NRow=768,NCol=1024,W1=[cos(π/3),sin(π/3),0]T,U1=[0,0,1]T,NUM=6,角度差异阈值ath=8×10-3rad,σ=ath/2;虚拟透视投影相机A004的垂直视场半角为0.6981rad,虚拟透视投影相机A004的水平视场半角为0.8727rad。W1和U1都是在局部坐标系x-y-z中定义的。
图1中的球的半径为1。通过改变W1和U1的值可以改变在显示设备上显示的全景画面局部区域。图2中的视点E到矩形ABCD平面的距离为1,线段AB的长度为Wpp,线段AD的长度为Hpp,W1和矩形ABCD平面垂直。步骤Step202-1计算得到的Pij是在图1所示的局部坐标系x-y-z中定义的,步骤Step202-2计算得到的
Figure BDA0002227639530000101
是Pij对应的在球坐标系中的表示结果。数组IMSH实际上保存了矩形画面A005的各个像素的颜色值。||x表示求向量x的长度。图2所示的向量U1、向量W1、点A、点B、点C、点D、视点E都是在局部坐标系x-y-z中定义的。

Claims (2)

1.一种虚拟三维场景的球面斐波那契像素点阵全景画面渲染方法,其特征在于:首先在虚拟全景相机的成像球面上生成包含N个点的斐波那契网格点阵A001,计算斐波那契网格点阵A001的各个网格点在局部坐标系x-y-z中的坐标;根据世界坐标系X-Y-Z中的虚拟全景相机视点位置和虚拟全景相机拍摄时的向上方向构建从局部坐标系x-y-z到世界坐标系X-Y-Z的变换矩阵,据此计算斐波那契网格点阵A001的各个网格点在世界坐标系X-Y-Z中的坐标;根据世界坐标系X-Y-Z中的虚拟全景相机视点位置和世界坐标系X-Y-Z中的斐波那契网格点阵A001的各个网格点的坐标,确定斐波那契网格点阵A001的各个网格点对应的成像球面像素点对应的光线,并利用光线跟踪技术求解像素颜色;用一维数组PANORAMA存储斐波那契网格点阵A001的各个网格点对应的成像球面像素点的颜色,即数组PANORAMA的第n个元素存储斐波那契网格点阵A001的第n个网格点对应成像球面像素点的颜色,n=1,2,…,N;最后,把数组PANORAMA保存到磁盘文件PAIMAGE中,完成全景画面的渲染;本方法的具体实现步骤如下:
步骤Step101:在虚拟全景相机的成像球面上生成包含N个点的斐波那契网格点阵A001,计算斐波那契网格点阵A001的各个网格点在局部坐标系x-y-z中的坐标;斐波那契网格点阵A001的第n个网格点的坐标为(xn,yn,zn),其中zn=(2n-1)/N-1,xn=(1-zn 2)1/2cos(2πnφ),yn=(1-zn 2)1/2sin(2πnφ),n=1,2,…,N;在计算机的内存中创建包含N个元素的一维数组PANORAMA,数组PANORAMA的每个元素保存虚拟全景相机成像球面上的一个像素的颜色值;
步骤Step102:计算从局部坐标系x-y-z到世界坐标系X-Y-Z的变换矩阵Mxyz2XYZ
Figure FDA0002227639520000012
其中px表示虚拟全景相机视点在世界坐标系X-Y-Z中的X坐标,py表示虚拟全景相机视点在世界坐标系X-Y-Z中的Y坐标,pz表示虚拟全景相机视点在世界坐标系X-Y-Z中的Z坐标,向量W=[wx,wy,wz]T表示虚拟全景相机拍摄时的向上方向在世界坐标系X-Y-Z中对应的单位向量,向量U=[ux,uy,uz]T,向量V=[vx,vy,vz]T;向量V按如下方式计算:令
Figure FDA0002227639520000013
如果
Figure FDA0002227639520000014
Figure FDA0002227639520000015
否则V=[0,0,1]T;向量U按如下方式计算:
Figure FDA0002227639520000016
步骤Step103:对于n=1,2,…,N,针对斐波那契网格点阵A001的第n个网格点,做如下操作:
步骤Step103-1:令向量
Figure FDA0002227639520000021
Figure FDA0002227639520000023
其中ppix,x表示向量Ppix的第一个分量,ppix,y表示向量Ppix的第二个分量,ppix,z表示向量Ppix的第三个分量,ppix,w表示向量Ppix的第四个分量;
步骤Step103-2:从世界坐标系X-Y-Z中的虚拟全景相机视点位置出发,发射一条穿过世界坐标系X-Y-Z中的点的光线B001,利用光线跟踪技术跟踪光线B001在虚拟三维场景中的传播,从而计算得到斐波那契网格点阵A001的第n个网格点对应的虚拟全景相机成像球面像素的颜色B002;把数组PANORAMA的第n个元素赋值为颜色B002;
步骤Step103-3:针对斐波那契网格点阵A001的第n个网格点的操作结束;
步骤Step104:把数组PANORAMA保存到磁盘文件PAIMAGE中。
2.一种虚拟三维场景的球面斐波那契像素点阵全景画面显示方法,其特征在于:首先把磁盘文件PAIMAGE中的数组PANORAMA加载到计算机内存中,然后把虚拟透视投影相机A004的视点设置成局部坐标系x-y-z的原点,再用虚拟透视投影相机A004拍摄成像球面以便得到需要显示的全景画面局部区域;根据数组PANORAMA存储的数据插值计算虚拟透视投影相机A004的像素平面上的各个像素的颜色值,从而得到矩形画面A005,并把矩形画面A005显示到显示器上;本方法的具体实现步骤如下:
步骤Step201:把磁盘文件PAIMAGE中的数组PANORAMA加载到计算机的内存中;在计算机内存中创建包含NRow行、NCol列元素的二维数组IMSH,NRow表示虚拟透视投影相机A004的像素平面上的像素行数,NCol表示虚拟透视投影相机A004的像素平面上的像素列数,数组IMSH的元素用于保存虚拟透视投影相机A004的像素平面上的像素的颜色值,数组IMSH的元素和虚拟透视投影相机A004的像素平面上的像素一一对应;
步骤Step202:对于i=1,2,…,NRow,j=1,2,…,NCol,针对虚拟透视投影相机A004的像素平面上的第i行、第j列像素,做如下操作:
步骤Step202-1:令
Figure FDA0002227639520000025
Wpp=2tan(β)、Hpp=2tan(α),W1表示虚拟透视投影相机A004的观察方向对应的单位向量,U1表示虚拟透视投影相机A004拍摄时的向上方向对应的单位向量,α表示虚拟透视投影相机A004的垂直视场半角,β表示虚拟透视投影相机A004的水平视场半角;点A的坐标为
Figure FDA0002227639520000026
其中E表示虚拟透视投影相机A004的视点位置;虚拟透视投影相机A004的视点设置在局部坐标系x-y-z的原点,因此
Figure FDA0002227639520000031
虚拟透视投影相机A004的像素平面上的第i行、第j列像素的中心点Pij为:
Figure FDA0002227639520000032
步骤Step202-2:计算中心点Pij在球坐标系中对应的坐标
Figure FDA0002227639520000033
rij表示中心点Pij与坐标系原点o的距离,θij表示天顶角,
Figure FDA0002227639520000034
表示方位角,0≤θij≤π,
Figure FDA0002227639520000035
步骤Step202-3:令
Figure FDA0002227639520000036
round(x)表示对x进行四舍五入取整;在计算机的内存中创建包含NUM个元素的一维数组WT,在计算机的内存中创建包含NUM个元素的一维数组CO;令计数器Counter=0;令偏移δ=1;
步骤Step202-3-1:如果
Figure FDA0002227639520000037
或者
Figure FDA0002227639520000038
则转步骤Step202-3-2,否则执行如下操作:令
Figure FDA0002227639520000039
其中
Figure FDA00022276395200000310
表示对x向下取整;令
Figure FDA00022276395200000311
如果adiff<ath,则把数组WT的第Counter+1个元素赋值为
Figure FDA00022276395200000312
把数组CO的第Counter+1个元素赋值为数组PANORAMA的第
Figure FDA00022276395200000313
个元素保存的颜色值,并且使Counter=Counter+1;ath为角度差异阈值;
步骤Step202-3-2:如果
Figure FDA00022276395200000314
则转步骤Step202-3-3,否则执行如下操作:令
Figure FDA00022276395200000315
如果βdiff<ath,则把数组WT的第Counter+1个元素赋值为
Figure FDA00022276395200000317
把数组CO的第Counter+1个元素赋值为数组PANORAMA的第
Figure FDA00022276395200000318
个元素保存的颜色值,并且使Counter=Counter+1;
步骤Step202-3-3:如果
Figure FDA00022276395200000319
则转步骤Step202-3-4,否则执行如下操作:令
Figure FDA00022276395200000320
Figure FDA00022276395200000321
如果θdiff<ath,则把数组WT的第Counter+1个元素赋值为
Figure FDA00022276395200000322
把数组CO的第Counter+1个元素赋值为数组PANORAMA的第
Figure FDA00022276395200000323
个元素保存的颜色值,并且使Counter=Counter+1;
步骤Step202-3-4:如果Counter≥NUM,则转步骤Step202-4,否则令δ=δ+1,并进一步判断是否
Figure FDA0002227639520000041
大于N且小于1,如果是,则转步骤Step202-4,否则转步骤Step202-3-2;
步骤Step202-4:计算数组WT从第1个到第Counter个元素的值的累加和SUM;对于J=1,2,…,Counter,把数组WT的第J个元素赋值为数组WT的第J个元素的值除以SUM之商;
步骤Step202-5:把数组WT的第1个至第Counter个元素的值当作对数组CO的第1个至第Counter个元素的值进行加权求和时使用的权重系数,计算数组CO的从第1个至第Counter个元素的值的加权求和结果C001;数组WT的第1个元素的值为数组CO的第1个元素的权重系数,数组WT的第2个元素的值为数组CO的第2个元素的权重系数,以此类推;把数组IMSH的第i行、第j列的元素赋值为加权求和结果C001;
步骤Step202-6:针对虚拟透视投影相机A004的像素平面上的第i行、第j列像素的操作结束;
步骤Step203:把保存在数组IMSH中的矩形画面A005显示到显示设备上。
CN201910948328.9A 2019-08-28 2019-10-11 虚拟三维场景的球面斐波那契像素点阵全景画面渲染与显示方法 Active CN110675482B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910785190 2019-08-28
CN2019107851905 2019-08-28

Publications (2)

Publication Number Publication Date
CN110675482A true CN110675482A (zh) 2020-01-10
CN110675482B CN110675482B (zh) 2023-05-19

Family

ID=69080650

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910948328.9A Active CN110675482B (zh) 2019-08-28 2019-10-11 虚拟三维场景的球面斐波那契像素点阵全景画面渲染与显示方法

Country Status (1)

Country Link
CN (1) CN110675482B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111866467A (zh) * 2020-07-29 2020-10-30 浙江大华技术股份有限公司 监控视频的三维覆盖空间确定方法、装置及存储介质
CN113706680A (zh) * 2021-09-02 2021-11-26 长春理工大学 视觉显著性驱动的vr电影画面渲染像素抗失真处理方法
WO2023184139A1 (en) * 2022-03-29 2023-10-05 Huawei Technologies Co., Ltd. Methods and systems for rendering three-dimensional scenes

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107346558A (zh) * 2017-07-03 2017-11-14 长春理工大学 利用面光源可见性空间相关加速三维场景直接光照效果绘制的方法
CN107909647A (zh) * 2017-11-22 2018-04-13 长春理工大学 基于空间复用的真实感虚拟3d场景光场投影图像绘制方法
CN108037822A (zh) * 2017-11-23 2018-05-15 国网山东省电力公司 一种基于虚拟现实的3d培训系统
US20180300957A1 (en) * 2017-04-13 2018-10-18 Facebook, Inc. Panoramic camera systems
CN109493409A (zh) * 2018-11-05 2019-03-19 长春理工大学 基于左右眼空间复用的虚拟三维场景立体画面绘制方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180300957A1 (en) * 2017-04-13 2018-10-18 Facebook, Inc. Panoramic camera systems
CN107346558A (zh) * 2017-07-03 2017-11-14 长春理工大学 利用面光源可见性空间相关加速三维场景直接光照效果绘制的方法
CN107909647A (zh) * 2017-11-22 2018-04-13 长春理工大学 基于空间复用的真实感虚拟3d场景光场投影图像绘制方法
CN108037822A (zh) * 2017-11-23 2018-05-15 国网山东省电力公司 一种基于虚拟现实的3d培训系统
CN109493409A (zh) * 2018-11-05 2019-03-19 长春理工大学 基于左右眼空间复用的虚拟三维场景立体画面绘制方法

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
CHUNYI CHEN 等: "Robust contour extraction of fisheye images for image-based virtual reality", 《2010 3RD INTERNATIONAL CONGRESS ON IMAGE AND SIGNAL PROCESSING》 *
MATT ZUCKER 等: "Cube-to-sphere Projections for Procedural Texturing and Beyond", 《JOURNAL OF COMPUTER GRAPHICS TECHNIQUES》 *
VLADAN POPOVIC 等: "Multi-camera platform for panoramic real-time HDR video construction and rendering", 《JOURNAL OF REAL-TIME IMAGE PROCESSING》 *
徐海涛: "基于主动式立体全景视觉传感器的点云数据获取技术研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
权巍 等: "一种基于CAVE的交互式全景视频显示方法", 《微电子学与计算机》 *
胡军辉: "VTK技术在三维医学图像处理中的应用研究", 《中国优秀博硕士学位论文全文数据库 (硕士) 信息科技辑》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111866467A (zh) * 2020-07-29 2020-10-30 浙江大华技术股份有限公司 监控视频的三维覆盖空间确定方法、装置及存储介质
CN111866467B (zh) * 2020-07-29 2022-12-06 浙江大华技术股份有限公司 监控视频的三维覆盖空间确定方法、装置及存储介质
CN113706680A (zh) * 2021-09-02 2021-11-26 长春理工大学 视觉显著性驱动的vr电影画面渲染像素抗失真处理方法
CN113706680B (zh) * 2021-09-02 2023-09-19 长春理工大学 视觉显著性驱动的vr电影画面渲染像素抗失真处理方法
WO2023184139A1 (en) * 2022-03-29 2023-10-05 Huawei Technologies Co., Ltd. Methods and systems for rendering three-dimensional scenes

Also Published As

Publication number Publication date
CN110675482B (zh) 2023-05-19

Similar Documents

Publication Publication Date Title
Szeliski et al. Creating full view panoramic image mosaics and environment maps
US5586231A (en) Method and device for processing an image in order to construct from a source image a target image with charge of perspective
Uyttendaele et al. Image-based interactive exploration of real-world environments
US5594845A (en) Method and device for processing an image in order to construct a target image from a plurality of contiguous source images
US6870532B2 (en) Image display
CN108564527B (zh) 基于神经网络的全景图内容补全和修复的方法及装置
US7488078B2 (en) Display apparatus, image processing apparatus and image processing method, imaging apparatus, and program
Naemura et al. Real-time video-based modeling and rendering of 3D scenes
US20180018807A1 (en) Method and apparatus for generating panoramic image with texture mapping
CN107924556B (zh) 图像生成装置和图像显示控制装置
CN110675482A (zh) 虚拟三维场景的球面斐波那契像素点阵全景画面渲染与显示方法
USRE43490E1 (en) Wide-angle dewarping method and apparatus
Bradley et al. Image-based navigation in real environments using panoramas
CN110689476A (zh) 全景图像拼接方法及其装置、可读存储介质和电子设备
CN111866523B (zh) 全景视频合成方法、装置、电子设备和计算机存储介质
Nielsen Surround video: a multihead camera approach
CN112002003B (zh) 虚拟3d场景的球面全景立体画面生成与交互式显示方法
Jian et al. Augmented virtual environment: fusion of real-time video and 3D models in the digital earth system
GB2456802A (en) Image capture and motion picture generation using both motion camera and scene scanning imaging systems
Jung et al. Flexibly connectable light field system for free view exploration
JPH0463092A (ja) 3次元シーン表示システム
Smith et al. Cultural heritage omni-stereo panoramas for immersive cultural analytics—from the Nile to the Hijaz
Bourke iDome: Immersive gaming with the Unity3D game engine
JP3387900B2 (ja) 画像処理方法及び装置
Liao et al. Gpu parallel computing of spherical panorama video stitching

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant