一种虚拟立体场景的构建方法、装置及立体显示设备与流程

文档序号:13763824阅读:141来源:国知局
本发明涉及显示
技术领域
,特别涉及一种虚拟立体场景的构建方法、装置及立体显示设备。
背景技术
:随着立体显示技术和虚拟与现实VR(VirtualReality)技术的不断完善和成熟,广大民众对于立体显示的兴趣和需求也在不断的增加。实现立体显示的关键在于构建分别被观察者左眼和右眼接收的具有细微差异的不同图像,由于左右眼接收到的视觉图像不同,大脑综合了左右眼两幅图像的信息对图像进行叠加重生,从而使观看者产生立体感。目前,大部分立体应用和VR应用均致力于虚拟场景的立体显示部分的开发上。虚拟场景是利用计算机,通过OpenGL(OpenGraphicsLibrary,开放图形库)等图形引擎构建,并通过显示器呈现在真实场景中。所谓真实场景,是指人真实的观察空间,人在真实场景下的固定位置通过人眼接收显示器所显示的虚拟场景。为了实现虚拟场景的立体显示,可以结合计算机图形学系统将虚拟场景转换为虚拟立体场景,从而将虚拟立体场景呈现在真实场景中。但是,现有技术中,通常利用固定的转换参数将虚拟场景线性的转换为虚拟立体场景,这种线性转换的方式,可能导致虚拟立体场景不能与真实观察空间即真实场景较好的适配,从而无法达到较佳的立体效果。技术实现要素:本发明要解决的技术问题是提供一种虚拟立体场景的构建方法、装置及立体显示设备,解决现有技术中将虚拟场景转换为虚拟立体场景时,虚拟立体场景不能与真实观察空间较好的适配从而无法达到较佳的立体效果的问题。为解决上述技术问题,本发明的实施例提供一种虚拟立体场景的构建方法,包括:获取真实场景中最大凸出距离下的第一视差和最大凹进距离下的第二视差;获取虚拟场景中虚拟单摄像机到最近物体的距离与虚拟单摄像机到最远物体的距离;根据真实场景中所述第一视差与所述第二视差之间的比值与虚拟场景中虚拟单摄像机到最近物体的距离下的第三视差与虚拟单摄像机到最远物体的距离下的第四视差之间的比值相等,从而根据所述第一视差、所述第二视差,所述虚拟单摄像机到最近物体的距离和所述虚拟单摄像机到最远物体的距离,确定左右虚拟摄像机的视间距和投影参数;根据所述左右虚拟摄像机的视间距和投影参数,将所述虚拟场景构建为虚拟立体场景。进一步来说,所述获取真实场景中最大凸出距离下的第一视差和最大凹进距离下的第二视差的步骤包括:通过如下公式获取真实场景中最大凸出距离下的第一视差dN_R:dN_R=N_R*E_RZ_R-N_R;]]>其中,N_R为所述最大凸出距离,E_R为真实场景中的视间距,Z_R为真实场景中双眼到真实屏幕的距离;通过如下公式获取真实场景中最大凹进距离下的第二视差dF_R;dF_R=F_R*E_RZ_R+F_R;]]>其中,F_R为所述最大凹进距离。进一步来说,所述根据真实场景中所述第一视差与所述第二视差之间的比值与虚拟场景中虚拟单摄像机到最近物体的距离下的第三视差与虚拟单摄像机到最远物体的距离下的第四视差之间的比值相等,从而根据所述第一视差、所述第二视差,所述虚拟单摄像机到最近物体的距离和所述虚拟单摄像机到最远物体的距离,确定左右虚拟摄像机的视间距和投影参数的步骤包括:根据真实场景中所述第一视差与所述第二视差之间的比值与虚拟场景中虚拟单摄像机到最近物体的距离下的第三视差与虚拟单摄像机到最远物体的距离下的第四视差之间的比值相等所构建的关系式,根据所述第一视差、所述第二视差,所述虚拟单摄像机到最近物体的距离和所述虚拟单摄像机到最远物体的距离,确定所述虚拟单摄像机到虚拟零视差平面的第一距离;根据所述第一距离,确定所述左右虚拟摄像机的视间距;根据所述第一距离以及所述视间距,确定所述左右虚拟摄像机的投影参数。进一步来说,所述根据真实场景中所述第一视差与所述第二视差之间的比值与虚拟场景中虚拟单摄像机到最近物体的距离下的第三视差与虚拟单摄像机到最远物体的距离下的第四视差之间的比值相等所构建的关系式,根据所述第一视差、所述第二视差,所述虚拟单摄像机到最近物体的距离和所述虚拟单摄像机到最远物体的距离,确定所述虚拟单摄像机到虚拟屏幕的第一距离的步骤包括:根据真实场景中所述第一视差与所述第二视差之间的比值与虚拟场景中虚拟单摄像机到最近物体的距离下的第三视差与虚拟单摄像机到最远物体的距离下的第四视差之间的比值相等所构建的如下关系式,确定所述第一距离Con:Con=R+11N_O+RF_O;]]>其中:N_O为虚拟单摄像机到最近物体的距离,F_O为虚拟单摄像机到最远物体的距离,R为所述第一视差dN_R与所述第二视差dF_R之间的比值,进一步来说,所述根据所述第一距离,确定所述左右虚拟摄像机的视间距的步骤包括:根据所述第一距离,获取虚拟屏幕的宽度;根据所述虚拟屏幕的宽度,获取所述虚拟屏幕和真实屏幕之间的缩放比例;根据所述缩放比例和所述第一距离,确定所述左右虚拟摄像机的视间距。进一步来说,所述根据所述第一距离,获取所述虚拟屏幕的宽度的步骤包括:通过如下公式获取所述虚拟屏幕的宽度WCon:WCon=W_V*Con/N_V;其中,Con为所述第一距离,W_V为所述虚拟场景的近裁剪平面的宽度,N_V为虚拟单摄像机到所述近裁剪平面的距离;所述根据所述虚拟屏幕的宽度,获取所述虚拟屏幕和真实屏幕之间的缩放比例的步骤包括:通过如下公式获取所述虚拟屏幕与所述真实屏幕之间的缩放比例其中,W_R为所述真实屏幕的宽度;所述根据所述缩放比例和所述第一距离,确定所述左右虚拟摄像机的视间距的步骤包括:通过如下公式确定左右虚拟摄像机的视间距Sep:其中,为所述缩放比例,Con为所述第一距离,dN_R为所述第一视差,N_O为虚拟单摄像机到最近物体的距离;或者通过如下公式确定左右虚拟摄像机的视间距Sep:其中,为所述缩放比例,Con为所述第一距离,dF_R为所述第二视差,F_O为虚拟单摄像机到最远物体的距离。进一步来说,所述根据所述第一距离以及所述视间距,确定所述左右虚拟摄像机的投影参数的步骤包括:通过如下公式确定左虚拟摄像机的非对称透视投影参数:ll=-W_V2+Sep2*N_V/Conrl=W_V2+Sep2*N_V/Contl=H_V2bl=-H_V2nl=N_Vfl=F_V;]]>通过如下公式确定所述右虚拟摄像机的非对称透视投影参数:lr=-W_V2-Sep2*N_V/Conrr=W_V2-Sep2*N_V/Contr=H_V2br=-H_V2nr=N_Vfr=F_V;]]>其中,Con为所述第一距离,Sep为所述左右虚拟摄像机的视间距,W_V为所述虚拟场景的近裁剪平面的宽度,H_V为所述近裁剪平面的高度,N_V为虚拟单摄像机到所述近裁剪平面的距离,F_V为虚拟单摄像机到所述虚拟场景的远裁剪平面的距离;其中,ll、rl、tl、bl分别为所述左虚拟摄像机非对称透视投影在所述近裁剪平面的裁剪窗口的左边界坐标、右边界坐标、上边界坐标和下边界坐标,nl为所述左虚拟摄像机到所述近裁剪平面的距离,fl为所述左虚拟摄像机到所述远裁剪平面的距离;其中,lr、rr、tr、br分别为所述右虚拟摄像机非对称透视投影在所述近裁剪平面的裁剪窗口的左边界坐标、右边界坐标、上边界坐标和下边界坐标;nr为所述右虚拟摄像机到所述近裁剪平面的距离;fr为所述右虚拟摄像机到所述远裁剪平面的距离。进一步来说,所述根据所述左右虚拟摄像机的视间距和投影参数,将所述虚拟场景构建为虚拟立体场景的步骤包括:根据所述左右虚拟摄像机的视间距和所述虚拟单摄像机,得到虚拟立体场景的左右虚拟摄像机;根据所述左右虚拟摄像机和所述左右虚拟摄像机各自的投影参数,对所述虚拟单摄像机对应的所述虚拟场景进行非对称透视投影变换,从而构建虚拟立体场景。为解决上述技术问题,本发明的实施例还提供一种虚拟立体场景的构建装置,包括:第一获取模块,用于获取真实场景中最大凸出距离下的第一视差和最大凹进距离下的第二视差;第二获取模块,用于获取虚拟场景中虚拟单摄像机到最近物体的距离与虚拟单摄像机到最远物体的距离;确定模块,用于根据真实场景中所述第一视差与所述第二视差之间的比值与虚拟场景中虚拟单摄像机到最近物体的距离下的第三视差与虚拟单摄像机到最远物体的距离下的第四视差之间的比值相等,从而根据所述第一视差、所述第二视差,所述虚拟单摄像机到最近物体的距离和所述虚拟单摄像机到最远物体的距离,确定左右虚拟摄像机的视间距和投影参数;构建模块,用于根据所述左右虚拟摄像机的视间距和投影参数,将所述虚拟场景构建为虚拟立体场景。进一步来说,所述第一获取模块包括:第一获取子模块,用于通过如下公式获取真实场景中最大凸出距离下的第一视差dN_R:dN_R=N_R*E_RZ_R-N_R;]]>其中,N_R为所述最大凸出距离,E_R为真实场景中的视间距,Z_R为真实场景中双眼到真实屏幕的距离;第二获取子模块,用于通过如下公式获取真实场景中最大凹进距离下的第二视差dF_R;dF_R=F_R*E_RZ_R+F_R;]]>其中,F_R为所述最大凹进距离。进一步来说,所述确定模块包括:第一确定子模块,用于根据真实场景中所述第一视差与所述第二视差之间的比值与虚拟场景中虚拟单摄像机到最近物体的距离下的第三视差与虚拟单摄像机到最远物体的距离下的第四视差之间的比值相等所构建的关系式,根据所述第一视差、所述第二视差,所述虚拟单摄像机到最近物体的距离和所述虚拟单摄像机到最远物体的距离,确定所述虚拟单摄像机到虚拟零视差平面的第一距离;第二确定子模块,用于根据所述第一距离,确定所述左右虚拟摄像机的视间距;第三确定子模块,用于根据所述第一距离以及所述视间距,确定所述左右虚拟摄像机的投影参数。进一步来说,所述第一确定子模块包括:第一确定单元,用于根据真实场景中所述第一视差与所述第二视差之间的比值与虚拟场景中虚拟单摄像机到最近物体的距离下的第三视差与虚拟单摄像机到最远物体的距离下的第四视差之间的比值相等所构建的如下关系式,确定所述第一距离Con:Con=R+11N_O+RF_O;]]>其中:N_O为虚拟单摄像机到最近物体的距离,F_O为虚拟单摄像机到最远物体的距离,R为所述第一视差dN_R与所述第二视差dF_R之间的比值,进一步来说,所述第二确定子模块包括:第一获取单元,用于根据所述第一距离,获取虚拟屏幕的宽度;第二获取单元,用于根据所述虚拟屏幕的宽度,获取所述虚拟屏幕和真实屏幕之间的缩放比例;第二确定单元,用于根据所述缩放比例和所述第一距离,确定所述左右虚拟摄像机的视间距。进一步来说,所述第一获取单元包括:第一获取子单元,用于通过如下公式获取所述虚拟屏幕的宽度WCon:WCon=W_V*Con/N_V;其中,Con为所述第一距离,W_V为所述虚拟场景的近裁剪平面的宽度,N_V为虚拟单摄像机到所述近裁剪平面的距离;所述第二获取单元包括:第二获取子单元,用于通过如下公式获取所述虚拟屏幕与所述真实屏幕之间的缩放比例其中,W_R为所述真实屏幕的宽度;所述第二确定单元包括:第一确定子单元,用于通过如下公式确定左右虚拟摄像机的视间距Sep:其中,为所述缩放比例,Con为所述第一距离,dN_R为所述第一视差,N_O为虚拟单摄像机到最近物体的距离;或者通过如下公式确定左右虚拟摄像机的视间距Sep:其中,为所述缩放比例,Con为所述第一距离,dF_R为所述第二视差,F_O为虚拟单摄像机到最远物体的距离。进一步来说,所述第三确定子模块包括:第三确定单元,用于通过如下公式确定左虚拟摄像机的非对称透视投影参数:ll=-W_V2+Sep2*N_V/Conrl=W_V2+Sep2*N_V/Contl=H_V2bl=-H_V2nl=N_Vfl=F_V;]]>第四确定单元,用于通过如下公式确定所述右虚拟摄像机的非对称透视投影参数:lr=-W_V2-Sep2*N_V/Conrr=W_V2-Sep2*N_V/Contr=H_V2br=-H_V2nr=N_Vfr=F_V;]]>其中,Con为所述第一距离,Sep为所述左右虚拟摄像机的视间距,W_V为所述虚拟场景的近裁剪平面的宽度,H_V为所述近裁剪平面的高度,N_V为虚拟单摄像机到所述近裁剪平面的距离,F_V为虚拟单摄像机到所述虚拟场景的远裁剪平面的距离;其中,ll、rl、tl、bl分别为所述左虚拟摄像机非对称透视投影在所述近裁剪平面的裁剪窗口的左边界坐标、右边界坐标、上边界坐标和下边界坐标,nl为所述左虚拟摄像机到所述近裁剪平面的距离,fl为所述左虚拟摄像机到所述远裁剪平面的距离;其中,lr、rr、tr、br分别为所述右虚拟摄像机非对称透视投影在所述近裁剪平面的裁剪窗口的左边界坐标、右边界坐标、上边界坐标和下边界坐标;nr为所述右虚拟摄像机到所述近裁剪平面的距离;fr为所述右虚拟摄像机到所述远裁剪平面的距离。进一步来说,所述构建模块包括:偏移子模块,用于根据所述左右虚拟摄像机的视间距和所述虚拟单摄像机,得到虚拟立体场景的左右虚拟摄像机;投影变换子模块,用于根据所述左右虚拟摄像机和所述左右虚拟摄像机各自的投影参数,对所述虚拟单摄像机对应的所述虚拟场景进行非对称透视投影变换,从而构建虚拟立体场景。为解决上述技术问题,本发明的实施例还提供一种立体显示设备,包括:显示屏,壳体、处理器、存储器、电路板和电源电路,其中:所述显示屏嵌接在所述壳体上,与所述壳体一起围成封闭空间;所述电路板安置在所述壳体和所述显示屏围成的空间内部,所述处理器和所述存储器设置在所述电路板上;所述电源电路,用于为上述立体显示设备的各个电路或器件供电;所述存储器用于存储可执行程序代码;所述处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序来执行前述任一实施方式的虚拟立体场景的构建方法,进而通过所述显示屏将虚拟立体场景呈现出来。本发明的上述技术方案的有益效果如下:本发明实施例的虚拟立体场景的构建方法和装置,提供了一种标准化的将虚拟场景转换为虚拟立体场景的方式,首先获取真实场景中最大凸出距离下的第一视差和最大凹进距离下的第二视差;然后获取虚拟场景中虚拟单摄像机到最近物体的距离与虚拟单摄像机到最远物体的距离;再根据真实场景中所述第一视差与所述第二视差之间的比值与虚拟场景中虚拟单摄像机到最近物体的距离下的第三视差与虚拟单摄像机到最远物体的距离下的第四视差之间的比值相等,从而根据所述第一视差、所述第二视差,所述虚拟单摄像机到最近物体的距离和所述虚拟单摄像机到最远物体的距离,确定左右虚拟摄像机的视间距和投影参数;最后根据所述左右虚拟摄像机的视间距和投影参数,将所述虚拟场景构建为虚拟立体场景,使得构建后的虚拟立体场景中左右虚拟摄像机到最近物体的距离与真实场景中最大凸出距离对应,构建后的虚拟立体场景中左右虚拟摄像机到最远物体的距离与真实场景中最大凹进距离对应,也就是说,将虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离之间的虚拟场景映射到真实场景中的最大凸出距离和最大凹进距离之间。这样,使得虚拟立体场景能够与真实观察空间较好的适配,从而能够达到较好的立体效果,提升了用户的观看体验,解决了现有技术中将虚拟场景转换为虚拟立体场景时,虚拟立体场景不能与真实观察空间较好的适配从而无法达到较佳的立体效果的问题。附图说明图1为本发明虚拟立体场景的构建方法的流程图;图2为本发明虚拟立体场景的构建方法中真实场景观察视景示意图;图3为本发明虚拟立体场景的构建方法中虚拟场景观察视景示意图;图4为本发明虚拟立体场景的构建方法中虚拟摄像机投影示意图;图5为本发明虚拟立体场景的构建装置的结构示意图;图6为本发明立体显示设备的结构示意图。具体实施方式为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。为了使本领域技术人员更好的理解本发明,首先对本发明实施例中所言的真实场景和虚拟场景进行介绍。真实场景即人真实的观察空间,人眼看到的空间,观察者可以通过认知和经验等获取真实场景下的物体的深度和大小等信息,真实场景下是以长度单位为度量。本发明实施例中,观察者观察的真实场景为显示器,人和显示器构成“观察者-显示空间”。虚拟场景即利用计算机,通过OpenGL等图形引擎构建的“摄像机-场景空间”,虚拟场景所需绘制的信息以像素为单位,通过渲染管线并以显示器的方式呈现出来。虚拟场景通过显示器显示,而人在真实场景下的固定位置通过人眼接收显示器所显示的内容。由于虚拟场景是以像素为单位,且通过显示器显示;而真实场景是以长度单位(例如:米)为度量的,所以虚拟场景的内容想要表现在真实场景中,并且以立体的方式呈现,就需要场景的转换和映射。本发明实施例提供的虚拟立体场景的构建方法和装置,即提供了一种将虚拟场景转换为虚拟立体场景映射到真实场景,从而在真实场景中呈现虚拟立体场景的方式。本发明实施例所言的虚拟场景到虚拟立体场景可以认为是从3D(三维)场景到S3D(立体三维)场景。本发明实施例提供的虚拟立体场景的构建方法和装置,可应用于裸眼立体显示中,也可应用在虚拟现实VR(VirtualReality)显示中。结合图1至图3所示,本发明实施例的虚拟立体场景的构建方法,包括:步骤101,获取真实场景中最大凸出距离N_R下的第一视差dN_R和最大凹进距离下F_R的第二视差dF_R。其中,参见图2,最大凸出距离N_R和最大凹进距离F_R用于表征真实场景的立体显示器的立体显示能力,即立体显示器所能够呈现的立体场景的深度范围,也即,立体显示器所能够呈现的立体场景的深度范围介于该最大凸出距离和最大凹进距离所限定的区间内,立体场景的最凸出部分不会超过该最大凸出距离,而最凹进部分不会超过该最大凹进距离。步骤102,获取虚拟场景中虚拟单摄像机到最近物体的距离N_O与虚拟单摄像机到最远物体的距离F_O。首先需要说明的是,步骤101和步骤102的执行顺序不限,可以先后执行,也可并行执行。本发明对如何获取N_O和F_O不做限定,本领域技术人员可以合理选择获取方式。举例而言,每一个利用图形引擎(例如D3D或者openGL)构建的虚拟场景,图形引擎工具通常都提供深度缓存功能,即可以创建深度缓存区,图形引擎会在深度缓存区中存储虚拟场景的深度数据。因此,可以利用该功能,开启深度缓存功能,创建深度缓存区,从而从每个虚拟场景的深度缓存区中读取虚拟场景的深度数据,根据深度数据获取N_O和F_O。具体的,可以遍历虚拟场景的每个像素点的深度数据,即可找到虚拟场景的最大深度和最小深度,根据最大深度得到F_O,根据最小深度得到N_O,从而得到了N_O和F_O。当然,N_O和F_O也可采用其他方式获取,只要能有效获取到N_O和F_O的方式均可应用到本发明实施例中,在此不一一说明。步骤103,根据真实场景中第一视差dN_R与第二视差dF_R之间的比值与虚拟场景中虚拟单摄像机到最近物体的距离N_O下的第三视差与虚拟单摄像机到最远物体的距离下F_O的第四视差之间的比值相等,从而根据第一视差dN_R、第二视差dF_R,虚拟单摄像机到最近物体的距离N_O和虚拟单摄像机到最远物体的距离F_O,确定左右虚拟摄像机的视间距和投影参数。这里,基于真实场景中第一视差与第二视差之间的比值与虚拟场景中第三视差与第四视差之间的比值相等,确定左右虚拟摄像机的视间距和投影参数,以实现虚拟场景与真实场景的转换和映射。利用真实场景和虚拟场景的视差比值相等,可以有效保证虚拟场景映射到真实场景的立体效果。步骤104,根据左右虚拟摄像机的视间距和投影参数,将虚拟场景构建为虚拟立体场景。经过上述步骤,构建后的虚拟立体场景中左右虚拟摄像机到最近物体的距离与真实场景中最大凸出距离对应,构建后的虚拟立体场景中左右虚拟摄像机到最远物体的距离与真实场景中最大凹进距离对应,即将虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离之间的虚拟场景映射到真实场景中的最大凸出距离和最大凹进距离之间。本发明实施例的虚拟立体场景的构建方法,通过将虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离之间的虚拟场景映射到真实场景中的最大凸出距离和最大凹进距离之间,使得虚拟立体场景能够与真实观察空间较好的适配,从而能够达到较好的立体效果,提升了用户的观看体验,解决了现有技术中将虚拟场景转换为虚拟立体场景时,虚拟立体场景不能与真实观察空间较好的适配从而无法达到较佳的立体效果的问题。优选的,上述步骤101的步骤可以包括:步骤1011,通过如下公式获取真实场景中最大凸出距离下的第一视差dN_R:dN_R=N_R*E_RZ_R-N_R---(1);]]>其中,N_R为最大凸出距离,E_R为真实场景中的视间距,Z_R为真实场景中双眼到真实屏幕的距离。步骤1012,通过如下公式获取真实场景中最大凹进距离下的第二视差dF_R;dF_R=F_R*E_RZ_R+F_R---(2);]]>其中,F_R为最大凹进距离。N_R、E_R、Z_R和F_R都是预先设定的值。参见图2可知,上述关系式(1)和(2)依据相似图形对应边成比例关系得到。如图2所示,真实场景中左眼L与右眼R的视间距E_R、双眼到真实屏幕Display的距离Z_R、最大凸出距离N_R、最大凹进距离F_R、真实屏幕display的宽度W_R、第一视差dN_R和第二视差dF_R均在图中进行了标示。根据相似三角形定理可以得到上面的公式(1)、(2)。此时,通过上述公式(1)、(2)可准确获取真实场景中最大凸出距离下的第一视差和最大凹进距离下的第二视差,进而可准确获取第一视差与第二视差之间的比值,利用几何关系提高了计算的准确性和便利性,为接下来的映射计算打下了基础。可以理解的是,本发明实施例中各视差的计算方式仅为示例,本领域技术人员可以合理选择。优选的,上述步骤103的步骤可以包括:步骤1031,根据真实场景中第一视差dN_R与第二视差dF_R之间的比值与虚拟场景中虚拟单摄像机到最近物体的距离N_O下的第三视差dN_O与虚拟单摄像机到最远物体的距离F_O下的第四视差dF_O之间的比值相等所构建的关系式,根据第一视差dN_R、第二视差dF_R,虚拟单摄像机到最近物体的距离N_O和虚拟单摄像机到最远物体的距离F_O,确定虚拟单摄像机到虚拟零视差平面的第一距离Con;步骤1032,根据第一距离Con,确定左右虚拟摄像机的视间距Sep;步骤1033,根据第一距离Con以及视间距Sep,确定左右虚拟摄像机的投影参数。此时,首先根据真实场景中最大凸出距离和最大凹进距离下的视差比值与虚拟场景中摄像机到最近物体的距离和摄像机到最远物体的距离下的视差比值相等,可有效确定虚拟单摄像机到虚拟零视差平面的第一距离;然后根据第一距离,可有效确定左右虚拟摄像机的视间距;最后根据第一距离以及视间距,确定左右虚拟摄像机的投影参数,使得虚拟摄像机到最近物体的距离与真实场景中最大凸出距离映射对应,虚拟摄像机到最远物体的距离与真实场景中最大凹进距离映射对应,从而达到了理想的投影效果。进一步的,上述步骤1031的步骤可以包括:步骤10311,根据真实场景中第一视差dN_R与第二视差dF_R之间的比值与虚拟场景中虚拟单摄像机到最近物体的距离N_O下的第三视差dN_O与虚拟单摄像机到最远物体的距离F_O下的第四视差dF_O之间的比值相等所构建的如下关系式,确定第一距离Con:Con=R+11N_O+RF_O---(3);]]>其中:N_O为虚拟单摄像机到最近物体的距离,F_O为虚拟单摄像机到最远物体的距离,R为第一视差dN_R与第二视差dF_R之间的比值,其中:第三视差第四视差第三视差与第四视差的比值关系式(3)由推导获得。这里,如图3所示,虚拟场景中对应左眼输出图像的左虚拟摄像机L’与对应右眼输出图像的右虚拟摄像机R’之间的视间距Sep、虚拟单摄像机到虚拟屏幕VirtualDisplay的第一距离Con、虚拟单摄像机到近裁剪平面的距离N_V、虚拟单摄像机到远裁剪平面的距离F_V、虚拟单摄像机到近裁剪平面的第五视差dN_V和虚拟单摄像机到远裁剪平面的第六视差dF_V均在图中进行了标示。根据相似三角形定理可以得到:dN_V=Sep*(Con-N_V)N_V---(8);]]>dF_V=Sep*(F_V-Con)F_V---(9);]]>类比上述公式(8)、(9)可以得到:dN_O=Sep*(Con-N_O)N_O---(5);]]>dF_O=Sep*(F_O-Con)F_O---(6);]]>因此,通过上述公式(5)、(6)可以得到第三视差与第四视差之间的比值关系式:dN_OdF_O=(Con-N_O)*F_O(F_O-Con)*N_O---(7).]]>基于上述公式(7),有如下关系式:dN_OdF_O=R=(Con-N_O)*F_O(F_O-Con)*N_O---(10);]]>这里,在虚拟和真实场景中的视差虽然换算单位和数值都不相同,但是它们具有相同的比值R。对公式(10)进行变形可以得到:Con=R+11N_O+RF_O---(3).]]>此时,根据第一视差、第二视差,虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离,可准确求得虚拟单摄像机到虚拟屏幕的第一距离。进一步的,上述步骤1032的步骤可以包括:步骤10321,根据第一距离Con,获取虚拟屏幕的宽度WCon;步骤10322,根据虚拟屏幕的宽度WCon,获取虚拟屏幕和真实屏幕之间的缩放比例;步骤10323,根据缩放比例和第一距离Con,确定左右虚拟摄像机的视间距Sep。此时,通过获取虚拟屏幕和真实屏幕之间的缩放比例,能有效确定左右虚拟摄像机的视间距,从而根据视间距进一步获取左右虚拟摄像机的投影参数,以完成虚拟立体场景的构建。优选的,上述步骤10321的步骤可以包括:通过如下公式获取虚拟屏幕的宽度WCon:WCon=W_V*Con/N_V(11);其中,Con为第一距离,W_V为虚拟场景的近裁剪平面的宽度,N_V为虚拟单摄像机到近裁剪平面的距离。W_V可通过如下公式获得:FOV为虚拟场景的视场角,ω为目标显示窗口的宽高比。N_V、FOV和ω均可为预先设定的值。这里,继续参照图3所示,根据相似三角形定理可以得到上述公式(11)。上述步骤10322的步骤可以包括:通过如下公式获取虚拟屏幕与真实屏幕之间的缩放比例其中,W_R为真实屏幕的宽度。W_R也为预先设定的值。这里,通过获取虚拟屏幕与真实屏幕之间的缩放比例,可以确定虚拟场景与真实场景之间的对照关系,进而通过真实场景中的已知参数确定虚拟场景中对应的未知参数。上述步骤10323的步骤可以包括:通过如下公式确定左右虚拟摄像机的视间距Sep:其中,为缩放比例,Con为第一距离,dN_R为第一视差,N_O为虚拟单摄像机到最近物体的距离。这里,根据上述公式(5)可以得到:Sep=dN_O*N_OCon-N_O---(14);]]>根据虚拟屏幕与真实屏幕之间的缩放比例有代入公式(14),可以得到上述公式(13)。或者通过如下公式确定左右虚拟摄像机的视间距Sep:其中,为缩放比例,Con为第一距离,dF_R为第二视差,F_O为虚拟单摄像机到最远物体的距离。这里,根据上述公式(6)可以得到:Sep=dF_O*F_OF_O-Con---(16);]]>根据虚拟屏幕与真实屏幕之间的缩放比例有代入公式(16),可以得到上述公式(15)。此时,通过虚拟屏幕与真实屏幕之间的缩放比例,能有效确定左右虚拟摄像机的视间距,提高了准确性。得到第一距离和左右虚拟摄像机的视间距之后,需要进一步确定左右虚拟摄像机的投影参数,从而改变虚拟摄像机的投影效果,实现最优化的立体效果。对于虚拟摄像机的投影参数,参照图4所示,虚拟摄像机在近裁剪平面的非对称透视投影参数主要包括:l、r、t、b、n和f。其中,l、r、t、b分别为虚拟摄像机非对称透视投影在近裁剪平面的裁剪窗口的左边界坐标、右边界坐标、上边界坐标和下边界坐标,n为虚拟摄像机到近裁剪平面的距离,f为虚拟摄像机到远裁剪平面的距离。优选的,上述步骤1033的步骤可以包括:步骤10331,通过如下公式确定左虚拟摄像机的非对称透视投影参数:ll=-W_V2+Sep2*N_V/Conrl=W_V2+Sep2*N_V/Contl=H_V2bl=-H_V2nl=N_Vfl=F_V;]]>步骤10332,通过如下公式确定右虚拟摄像机的非对称透视投影参数:lr=-W_V2-Sep2*N_V/Conrr=W_V2-Sep2*N_V/Contr=H_V2br=-H_V2nr=N_Vfr=F_V;]]>其中,Con为第一距离,Sep为左右虚拟摄像机的视间距,W_V为虚拟场景的近裁剪平面的宽度,H_V为近裁剪平面的高度,N_V为虚拟单摄像机到近裁剪平面的距离,F_V为虚拟单摄像机到虚拟场景的远裁剪平面的距离;其中,ll、rl、tl、bl分别为左虚拟摄像机非对称透视投影在近裁剪平面的裁剪窗口的左边界坐标、右边界坐标、上边界坐标和下边界坐标,nl为左虚拟摄像机到近裁剪平面的距离,fl为左虚拟摄像机到远裁剪平面的距离;其中,lr、rr、tr、br分别为右虚拟摄像机非对称透视投影在近裁剪平面的裁剪窗口的左边界坐标、右边界坐标、上边界坐标和下边界坐标;nr为右虚拟摄像机到近裁剪平面的距离;fr为右虚拟摄像机到远裁剪平面的距离。此时,通过确定左右虚拟摄像机的非对称透视投影参数,能有效改变虚拟摄像机的投影效果,实现最优化的立体效果。优选的,上述步骤104的步骤可以包括:步骤1041,根据左右虚拟摄像机的视间距和虚拟单摄像机,得到虚拟立体场景的左右虚拟摄像机。这里,可根据左右虚拟摄像机的视间距Sep对虚拟单摄像机进行偏移,得到虚拟立体场景的左右虚拟摄像机。如可将虚拟单摄像机的水平坐标分别偏移-Sep/2和Sep/2,得到虚拟立体场景中对应真实场景左眼输出图像的左虚拟摄像机和对应真实场景右眼输出图像的右虚拟摄像机。步骤1042,根据左右虚拟摄像机和左右虚拟摄像机各自的投影参数,对虚拟单摄像机对应的虚拟场景进行非对称透视投影变换,从而构建虚拟立体场景。此时,确定左右虚拟摄像机的位置后,根据左右虚拟摄像机的非对称透视投影参数,代替原虚拟单摄像机的投影参数进行非对称透视投影变换,改变了虚拟单摄像机的投影效果,使得虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离之间的虚拟场景映射到真实场景中最大凸出距离和最大凹进距离之间,从而达到了较好的立体效果,提升了用户的观看体验。可以理解的是,利用con和sep对虚拟场景进行变换为本领域的公知常识,这里不进行进一步详细说明。此外,还可以理解的是,本发明实施例中所言的虚拟单摄像机、左右虚拟摄像机、零视差平面、近裁剪平面、远裁剪平面等术语均为计算机图形学中公知的术语,这里不进行详细说明。还需要说明的是,参见图3可知,本发明实施例中,虚拟单摄像机到虚拟屏幕或远近裁剪平面的距离等同于左或右虚拟摄像机到虚拟屏幕或远近裁剪平面的距离,由于上述等同性,因此上述距离可统称为虚拟摄像机到虚拟屏幕或远近裁剪平面的距离。同理,参见图2可知,左眼到真实屏幕的距离等同于右眼到真实屏幕的距离,可统称为人眼到真实屏幕的距离。下面对本发明虚拟立体场景的构建方法的一具体实现实施例举例说明如下:假设:真实场景中最大凸出距离N_R为40mm,最大凹进距离F_R为50mm,真实屏幕的宽度W_R为435mm,双眼视间距E_R为65mm,双眼到真实屏幕的距离Z_R为500mm。虚拟场景中虚拟单摄像机到近裁剪平面的距离N_V为1.0px(像素),虚拟单摄像机到远裁剪平面的距离F_V为50.0px,f为虚拟单摄像机的焦距,虚拟场景的视场角FOV为90°,目标显示窗口的宽高比ω为1.78px,近裁剪平面的宽度W_V如下:W_V=2.0*N_V*tan(FOV2)*ω=3.56px;]]>虚拟单摄像机到最近物体的距离N_O为5.0px,虚拟单摄像机到最远物体的距离F_O为20.0px。应用本发明的方法,首先通过如下公式获取真实场景中最大凸出距离下的第一视差dN_R和最大凹进距离下的第二视差dF_R:dN_R=N_R*E_RZ_R-N_R=40*65500-40≈5.65mm;]]>dF_R=F_R*E_RZ_R+F_R=50*65500+50≈5.91mm;]]>再通过如下公式获取第一视差与第二视差之间的比值R:R=dN_RdF_R=5.655.91≈0.96;]]>然后通过如下公式获取虚拟单摄像机到虚拟屏幕的第一距离Con:Con=R+11N_O+RF_O=0.96+1.015.0+0.9620.0≈7.89px;]]>再通过如下公式获取虚拟屏幕的宽度WCon:WCon=W_V*Con/N_V≈28.07;通过如下公式获取虚拟屏幕与真实屏幕之间的缩放比例然后通过如下公式获取左右虚拟摄像机的视间距Sep:最后利用计算出的第一距离Con和左右虚拟摄像机的视间距Sep完成对虚拟单摄像机的偏移和视景体的变换,从而构建虚拟立体场景,得到需要的立体效果。综上,本发明实施例的虚拟立体场景的构建方法,通过将虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离之间的虚拟场景映射到真实场景中的最大凸出距离和最大凹进距离之间,使得虚拟立体场景能够与真实观察空间较好的适配,从而能够达到较好的立体效果,提升了用户的观看体验,解决了现有技术中将虚拟场景转换为虚拟立体场景时,虚拟立体场景不能与真实观察空间较好的适配从而无法达到较佳的立体效果的问题。如图5所示,本发明的实施例还提供一种虚拟立体场景的构建装置,包括:第一获取模块501,用于获取真实场景中最大凸出距离下的第一视差和最大凹进距离下的第二视差;第二获取模块502,用于获取虚拟场景中虚拟单摄像机到最近物体的距离与虚拟单摄像机到最远物体的距离;确定模块503,用于根据真实场景中所述第一视差与所述第二视差之间的比值与虚拟场景中虚拟单摄像机到最近物体的距离下的第三视差与虚拟单摄像机到最远物体的距离下的第四视差之间的比值相等,从而根据所述第一视差、所述第二视差,所述虚拟单摄像机到最近物体的距离和所述虚拟单摄像机到最远物体的距离,确定左右虚拟摄像机的视间距和投影参数;构建模块504,用于根据所述左右虚拟摄像机的视间距和投影参数,将所述虚拟场景构建为虚拟立体场景。本发明实施例的虚拟立体场景的构建装置,通过将虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离之间的虚拟场景映射到真实场景中的最大凸出距离和最大凹进距离之间,使得虚拟立体场景能够与真实观察空间较好的适配,从而能够达到较好的立体效果,提升了用户的观看体验,解决了现有技术中将虚拟场景转换为虚拟立体场景时,虚拟立体场景不能与真实观察空间较好的适配从而无法达到较佳的立体效果的问题。优选的,所述第一获取模块501可以包括:第一获取子模块,用于通过如下公式获取真实场景中最大凸出距离下的第一视差dN_R:dN_R=N_R*E_RZ_R-N_R;]]>其中,N_R为所述最大凸出距离,E_R为真实场景中的视间距,Z_R为真实场景中双眼到真实屏幕的距离;第二获取子模块,用于通过如下公式获取真实场景中最大凹进距离下的第二视差dF_R;dF_R=F_R*E_RZ_R+F_R;]]>其中,F_R为所述最大凹进距离。优选的,所述确定模块503可以包括:第一确定子模块,用于根据真实场景中所述第一视差与所述第二视差之间的比值与虚拟场景中虚拟单摄像机到最近物体的距离下的第三视差与虚拟单摄像机到最远物体的距离下的第四视差之间的比值相等所构建的关系式,根据所述第一视差、所述第二视差,所述虚拟单摄像机到最近物体的距离和所述虚拟单摄像机到最远物体的距离,确定所述虚拟单摄像机到虚拟零视差平面的第一距离;第二确定子模块,用于根据所述第一距离,确定所述左右虚拟摄像机的视间距;第三确定子模块,用于根据所述第一距离以及所述视间距,确定所述左右虚拟摄像机的投影参数。进一步的,所述第一确定子模块可以包括:第一确定单元,用于根据真实场景中所述第一视差与所述第二视差之间的比值与虚拟场景中虚拟单摄像机到最近物体的距离下的第三视差与虚拟单摄像机到最远物体的距离下的第四视差之间的比值相等所构建的如下关系式,确定所述第一距离Con:Con=R+11N_O+RF_O;]]>其中:N_O为虚拟单摄像机到最近物体的距离,F_O为虚拟单摄像机到最远物体的距离,R为所述第一视差dN_R与所述第二视差dF_R之间的比值,其中:所述第三视差所述第四视差所述第三视差与所述第四视差的比值所述关系式由所述推导获得。进一步的,所述第二确定子模块可以包括:第一获取单元,用于根据所述第一距离,获取虚拟屏幕的宽度;第二获取单元,用于根据所述虚拟屏幕的宽度,获取所述虚拟屏幕和真实屏幕之间的缩放比例;第二确定单元,用于根据所述缩放比例和所述第一距离,确定所述左右虚拟摄像机的视间距。优选的,所述第一获取单元可以包括:第一获取子单元,用于通过如下公式获取所述虚拟屏幕的宽度WCon:WCon=W_V*Con/N_V;其中,Con为所述第一距离,W_V为所述虚拟场景的近裁剪平面的宽度,N_V为虚拟单摄像机到所述近裁剪平面的距离;所述第二获取单元可以包括:第二获取子单元,用于通过如下公式获取所述虚拟屏幕与所述真实屏幕之间的缩放比例其中,W_R为所述真实屏幕的宽度;所述第二确定单元可以包括:第一确定子单元,用于通过如下公式确定左右虚拟摄像机的视间距Sep:其中,为所述缩放比例,Con为所述第一距离,dN_R为所述第一视差,N_O为虚拟单摄像机到最近物体的距离;或者通过如下公式确定左右虚拟摄像机的视间距Sep:其中,为所述缩放比例,Con为所述第一距离,dF_R为所述第二视差,F_O为虚拟单摄像机到最远物体的距离。优选的,所述第三确定子模块可以包括:第三确定单元,用于通过如下公式确定左虚拟摄像机的非对称透视投影参数:ll=-W_V2+Sep2*N_V/Conrl=W_V2+Sep2*N_V/Contl=H_V2bl=-H_V2nl=N_Vfl=F_V;]]>第四确定单元,用于通过如下公式确定所述右虚拟摄像机的非对称透视投影参数:lr=-W_V2-Sep2*N_V/Conrr=W_V2-Sep2*N_V/Contr=H_V2br=-H_V2nr=N_Vfr=F_V;]]>其中,Con为所述第一距离,Sep为所述左右虚拟摄像机的视间距,W_V为所述虚拟场景的近裁剪平面的宽度,H_V为所述近裁剪平面的高度,N_V为虚拟单摄像机到所述近裁剪平面的距离,F_V为虚拟单摄像机到所述虚拟场景的远裁剪平面的距离;其中,ll、rl、tl、bl分别为所述左虚拟摄像机非对称透视投影在所述近裁剪平面的裁剪窗口的左边界坐标、右边界坐标、上边界坐标和下边界坐标,nl为所述左虚拟摄像机到所述近裁剪平面的距离,fl为所述左虚拟摄像机到所述远裁剪平面的距离;其中,lr、rr、tr、br分别为所述右虚拟摄像机非对称透视投影在所述近裁剪平面的裁剪窗口的左边界坐标、右边界坐标、上边界坐标和下边界坐标;nr为所述右虚拟摄像机到所述近裁剪平面的距离;fr为所述右虚拟摄像机到所述远裁剪平面的距离。进一步的,所述构建模块504可以包括:偏移子模块,用于根据所述左右虚拟摄像机的视间距和所述虚拟单摄像机,得到虚拟立体场景的左右虚拟摄像机;投影变换子模块,用于根据所述左右虚拟摄像机和所述左右虚拟摄像机各自的投影参数,对所述虚拟单摄像机对应的所述虚拟场景进行非对称透视投影变换,从而构建虚拟立体场景。本发明实施例的虚拟立体场景的构建装置,通过将虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离之间的虚拟场景映射到真实场景中的最大凸出距离和最大凹进距离之间,使得虚拟立体场景能够与真实观察空间较好的适配,从而能够达到较好的立体效果,提升了用户的观看体验,解决了现有技术中将虚拟场景转换为虚拟立体场景时,虚拟立体场景不能与真实观察空间较好的适配从而无法达到较佳的立体效果的问题。需要说明的是,该虚拟立体场景的构建装置是与上述虚拟立体场景的构建方法相对应的装置,其中上述方法实施例中所有实现方式均适用于该装置的实施例中,也能达到同样的技术效果。本发明实施例还提供一种立体显示设备,所述立体显示设备可包含前述任一实施例所述的虚拟立体场景的构建装置。图6为本发明立体显示设备一个实施例的结构示意图,可以实现本发明图1所示实施例的流程。如图6所示,上述立体显示设备可以包括:显示屏(未示出),壳体61、处理器62、存储器63、电路板64和电源电路65,其中,显示屏嵌接在壳体61上,与壳体一起围成封闭空间;电路板64安置在显示屏和壳体61围成的空间内部,处理器62和存储器63设置在电路板64上;电源电路65,用于为上述立体显示设备的各个电路或器件供电;存储器63用于存储可执行程序代码;处理器62通过读取存储器63中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例所述的虚拟立体场景的构建方法,获取真实场景中最大凸出距离下的第一视差和最大凹进距离下的第二视差;获取虚拟场景中虚拟单摄像机到最近物体的距离与虚拟单摄像机到最远物体的距离;根据真实场景中所述第一视差与所述第二视差之间的比值与虚拟场景中虚拟单摄像机到最近物体的距离下的第三视差与虚拟单摄像机到最远物体的距离下的第四视差之间的比值相等,从而根据所述第一视差、所述第二视差,所述虚拟单摄像机到最近物体的距离和所述虚拟单摄像机到最远物体的距离,确定左右虚拟摄像机的视间距和投影参数;根据所述左右虚拟摄像机的视间距和投影参数,将所述虚拟场景构建为虚拟立体场景,进而通过显示屏将虚拟立体场景呈现出来。处理器62对上述步骤的具体执行过程以及处理器62通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图1所示实施例的描述,在此不再赘述。该立体显示设备以多种形式存在,包括但不限于:(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、应用程序的提供器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。(5)其他具有数据交互功能的电子设备。本发明实施例中,模块可以用软件实现,以便由各种类型的处理器执行。举例来说,一个标识的可执行代码模块可以包括计算机指令的一个或多个物理或者逻辑块,举例来说,其可以被构建为对象、过程或函数。尽管如此,所标识模块的可执行代码无需物理地位于一起,而是可以包括存储在不同位里上的不同的指令,当这些指令逻辑上结合在一起时,其构成模块并且实现该模块的规定目的。实际上,可执行代码模块可以是单条指令或者是许多条指令,并且甚至可以分布在多个不同的代码段上,分布在不同程序当中,以及跨越多个存储器设备分布。同样地,操作数据可以在模块内被识别,并且可以依照任何适当的形式实现并且被组织在任何适当类型的数据结构内。所述操作数据可以作为单个数据集被收集,或者可以分布在不同位置上(包括在不同存储设备上),并且至少部分地可以仅作为电子信号存在于系统或网络上。在模块可以利用软件实现时,考虑到现有硬件工艺的水平,所以可以以软件实现的模块,在不考虑成本的情况下,本领域技术人员都可以搭建对应的硬件电路来实现对应的功能,所述硬件电路包括常规的超大规模集成(VLSI)电路或者门阵列以及诸如逻辑芯片、晶体管之类的现有半导体或者是其它分立的元件。模块还可以用可编程硬件设备,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等实现。在本发明的各种实施例中,应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。以上所述是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1