CN106228613B - 一种虚拟立体场景的构建方法、装置及立体显示设备 - Google Patents
一种虚拟立体场景的构建方法、装置及立体显示设备 Download PDFInfo
- Publication number
- CN106228613B CN106228613B CN201610409173.8A CN201610409173A CN106228613B CN 106228613 B CN106228613 B CN 106228613B CN 201610409173 A CN201610409173 A CN 201610409173A CN 106228613 B CN106228613 B CN 106228613B
- Authority
- CN
- China
- Prior art keywords
- virtual
- distance
- mrow
- scene
- single camera
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/01—Indexing scheme relating to G06F3/01
- G06F2203/012—Walk-in-place systems for allowing a user to walk in a virtual environment while constraining him to a given position in the physical environment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
Abstract
本发明提供了一种虚拟立体场景的构建方法、装置及立体显示设备,涉及显示技术领域,解决现有技术中利用固定的转换参数将虚拟场景线性的转换为虚拟立体场景,无法达到较佳的立体效果的问题。该方法包括:获取虚拟场景的像素的深度数据;根据深度数据,确定虚拟场景中虚拟单摄像机到最近物体的距离与虚拟单摄像机到最远物体的距离,从而确定左右虚拟摄像机的视间距和投影参数;根据左右虚拟摄像机的视间距和虚拟单摄像机,得到左右虚拟摄像机;根据左右虚拟摄像机和各自的投影参数,对虚拟场景进行非对称透视投影变换,从而构建虚拟立体场景。本发明的方案动态实时获取深度数据构建虚拟场景对应的虚拟立体场景,能够较好的保证立体效果。
Description
技术领域
本发明涉及显示技术领域,特别涉及一种虚拟立体场景的构建方法、装置及立体显示设备。
背景技术
随着立体显示技术和虚拟与现实VR(Virtual Reality)技术的不断完善和成熟,广大民众对于立体显示的兴趣和需求也在不断的增加。实现立体显示的关键在于构建分别被观察者左眼和右眼接收的具有细微差异的不同图像,由于左右眼接收到的视觉图像不同,大脑综合了左右眼两幅图像的信息对图像进行叠加重生,从而使观看者产生立体感。
目前,大部分立体应用和VR应用均致力于虚拟场景的立体显示部分的开发上。虚拟场景是利用计算机,通过OpenGL(Open Graphics Library,开放图形库)等图形引擎构建,并通过显示器呈现在真实场景中。所谓真实场景,是指人真实的观察空间,人在真实场景下的固定位置通过人眼接收显示器所显示的虚拟场景。
为了实现虚拟场景的立体显示,可以结合计算机图形学系统将虚拟场景转换为虚拟立体场景,从而将虚拟立体场景呈现在真实场景中。但是,现有技术中,通常利用固定的转换参数将虚拟场景线性的转换为虚拟立体场景,这种线性转换的方式,可能导致虚拟立体场景不能与真实观察空间即真实场景较好的适配,从而无法达到较佳的立体效果。
发明内容
本发明要解决的技术问题是提供一种虚拟立体场景的构建方法、装置及立体显示设备,解决现有技术中利用固定的转换参数将虚拟场景线性的转换为虚拟立体场景,从而无法达到较佳的立体效果的问题。
为解决上述技术问题,本发明的实施例提供一种虚拟立体场景的构建方法,包括:
获取虚拟场景的像素的深度数据;
根据所述深度数据,确定所述虚拟场景中虚拟单摄像机到最近物体的距离与虚拟单摄像机到最远物体的距离;
根据所述虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离,确定左右虚拟摄像机的视间距和投影参数;
根据所述左右虚拟摄像机的视间距和所述虚拟单摄像机,得到左右虚拟摄像机;
根据所述左右虚拟摄像机和所述左右虚拟摄像机各自的投影参数,对所述虚拟场景进行非对称透视投影变换,从而构建虚拟立体场景。
进一步来说,所述获取虚拟场景的像素的深度数据的步骤包括:
从所述虚拟场景的深度缓存区中读取所述虚拟场景每个像素的深度数据。
进一步来说,所述根据所述深度数据,确定所述虚拟场景中虚拟单摄像机到最近物体的距离与虚拟单摄像机到最远物体的距离的步骤包括:
遍历所述深度数据,查找所述深度数据中的深度最大值和深度最小值;
将所述深度最小值映射到虚拟场景下虚拟单摄像机到近裁剪平面的距离和虚拟单摄像机到远裁剪平面的距离之间,得到所述虚拟场景中虚拟单摄像机到最近物体的距离,将所述深度最大值映射到虚拟场景下虚拟单摄像机到近裁剪平面的距离和虚拟单摄像机到远裁剪平面的距离之间,得到所述虚拟场景中虚拟单摄像机到最远物体的距离;
或者
将所述深度数据的数据范围映射到虚拟场景下虚拟单摄像机到近裁剪平面的距离和虚拟单摄像机到远裁剪平面的距离之间,得到映射深度数据;
获取所述映射深度数据中的深度最小值和深度最大值,并根据所述深度最小值和所述深度最大值分别确定所述虚拟单摄像机到最近物体的距离和所述虚拟单摄像机到最远物体的距离。
进一步来说,通过以下公式将深度数据映射到虚拟场景下虚拟单摄像机到近裁剪平面的距离和虚拟单摄像机到远裁剪平面的距离之间:
其中,Zsence为映射后的深度数据,Z'buffer为映射前的深度数据,N_V为虚拟单摄像机到近裁剪平面的距离,F_V为虚拟单摄像机到远裁剪平面的距离。
进一步来说,所述获取所述映射深度数据中的深度最小值和深度最大值的步骤包括:
根据所述映射深度数据构建深度信息直方图;
根据所述深度信息直方图,获取所述映射深度数据中的深度最小值和深度最大值。
进一步来说,所述根据所述虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离,确定左右虚拟摄像机的视间距和投影参数的步骤包括:
根据真实场景中最大凸出距离下的第一视差与最大凹进距离下的第二视差之间的比值与虚拟场景中虚拟单摄像机到最近物体的距离下的第三视差与虚拟单摄像机到最远物体的距离下的第四视差之间的比值相等,从而根据所述虚拟单摄像机到最近物体的距离和所述虚拟单摄像机到最远物体的距离,确定左右虚拟摄像机的视间距和投影参数。
进一步来说,所述根据真实场景中最大凸出距离下的第一视差与最大凹进距离下的第二视差之间的比值与虚拟场景中虚拟单摄像机到最近物体的距离下的第三视差与虚拟单摄像机到最远物体的距离下的第四视差之间的比值相等,从而根据所述虚拟单摄像机到最近物体的距离和所述虚拟单摄像机到最远物体的距离,确定左右虚拟摄像机的视间距和投影参数的步骤包括:
通过如下公式获取真实场景中最大凸出距离下的第一视差dN_R:
其中,N_R为所述最大凸出距离,E_R为真实场景中的视间距,Z_R为真实场景中双眼到真实屏幕的距离;
通过如下公式获取真实场景中最大凹进距离下的第二视差dF_R:
其中,F_R为所述最大凹进距离;
根据真实场景中所述第一视差与所述第二视差之间的比值与虚拟场景中虚拟单摄像机到最近物体的距离下的第三视差与虚拟单摄像机到最远物体的距离下的第四视差之间的比值相等所构建的如下关系式,确定虚拟单摄像机到虚拟零视差平面的第一距离Con:
其中: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为虚拟单摄像机到最远物体的距离。
为解决上述技术问题,本发明的实施例还提供一种虚拟立体场景的构建装置,包括:
获取模块,用于获取虚拟场景的像素的深度数据;
第一确定模块,用于根据所述深度数据,确定所述虚拟场景中虚拟单摄像机到最近物体的距离与虚拟单摄像机到最远物体的距离;
第二确定模块,用于根据所述虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离,确定左右虚拟摄像机的视间距和投影参数;
偏移模块,用于根据所述左右虚拟摄像机的视间距和所述虚拟单摄像机,得到左右虚拟摄像机;
投影变换模块,用于根据所述左右虚拟摄像机和所述左右虚拟摄像机各自的投影参数,对所述虚拟场景进行非对称透视投影变换,从而构建虚拟立体场景。
进一步来说,所述获取模块包括:
获取子模块,用于从所述虚拟场景的深度缓存区中读取所述虚拟场景每个像素的深度数据。
进一步来说,所述第一确定模块包括:
查找子模块,用于遍历所述深度数据,查找所述深度数据中的深度最大值和深度最小值;
第一映射子模块,用于将所述深度最小值映射到虚拟场景下虚拟单摄像机到近裁剪平面的距离和虚拟单摄像机到远裁剪平面的距离之间,得到所述虚拟场景中虚拟单摄像机到最近物体的距离,将所述深度最大值映射到虚拟场景下虚拟单摄像机到近裁剪平面的距离和虚拟单摄像机到远裁剪平面的距离之间,得到所述虚拟场景中虚拟单摄像机到最远物体的距离;
或者
第二映射子模块,用于将所述深度数据的数据范围映射到虚拟场景下虚拟单摄像机到近裁剪平面的距离和虚拟单摄像机到远裁剪平面的距离之间,得到映射深度数据;
第一确定子模块,用于获取所述映射深度数据中的深度最小值和深度最大值,并根据所述深度最小值和所述深度最大值分别确定所述虚拟单摄像机到最近物体的距离和所述虚拟单摄像机到最远物体的距离。
进一步来说,所述第一映射子模块或所述第二映射子模块,用于通过以下公式将深度数据映射到虚拟场景下虚拟单摄像机到近裁剪平面的距离和虚拟单摄像机到远裁剪平面的距离之间:
其中,Zsence为映射后的深度数据,Z'buffer为映射前的深度数据,N_V为虚拟单摄像机到近裁剪平面的距离,F_V为虚拟单摄像机到远裁剪平面的距离。
进一步来说,所述第一确定子模块包括:
构建单元,用于根据所述映射深度数据构建深度信息直方图;
第一获取单元,用于根据所述深度信息直方图,获取所述映射深度数据中的深度最小值和深度最大值。
进一步来说,所述第二确定模块包括:
第二确定子模块,用于根据真实场景中最大凸出距离下的第一视差与最大凹进距离下的第二视差之间的比值与虚拟场景中虚拟单摄像机到最近物体的距离下的第三视差与虚拟单摄像机到最远物体的距离下的第四视差之间的比值相等,从而根据所述虚拟单摄像机到最近物体的距离和所述虚拟单摄像机到最远物体的距离,确定左右虚拟摄像机的视间距和投影参数。
进一步来说,所述第二确定子模块包括:
第二获取单元,用于通过如下公式获取真实场景中最大凸出距离下的第一视差dN_R:
其中,N_R为所述最大凸出距离,E_R为真实场景中的视间距,Z_R为真实场景中双眼到真实屏幕的距离;
第三获取单元,用于通过如下公式获取真实场景中最大凹进距离下的第二视差dF_R:
其中,F_R为所述最大凹进距离;
第一确定单元,用于根据真实场景中所述第一视差与所述第二视差之间的比值与虚拟场景中虚拟单摄像机到最近物体的距离下的第三视差与虚拟单摄像机到最远物体的距离下的第四视差之间的比值相等所构建的如下关系式,确定虚拟单摄像机到虚拟零视差平面的第一距离Con:
其中: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为虚拟单摄像机到最远物体的距离。
为解决上述技术问题,本发明的实施例还提供一种立体显示设备,包括:显示屏,壳体、处理器、存储器、电路板和电源电路,其中:
所述显示屏嵌接在所述壳体上,与所述壳体一起围成封闭空间;
所述电路板安置在所述壳体和所述显示屏围成的空间内部,所述处理器和所述存储器设置在所述电路板上;
所述电源电路,用于为上述立体显示设备的各个电路或器件供电;
所述存储器用于存储可执行程序代码;
所述处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,执行:
获取虚拟场景的像素的深度数据;
根据所述深度数据,确定所述虚拟场景中虚拟单摄像机到最近物体的距离与虚拟单摄像机到最远物体的距离;
根据所述虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离,确定左右虚拟摄像机的视间距和投影参数;
根据所述左右虚拟摄像机的视间距和所述虚拟单摄像机,得到左右虚拟摄像机;
根据所述左右虚拟摄像机和所述左右虚拟摄像机各自的投影参数,对所述虚拟场景进行非对称透视投影变换,构建虚拟立体场景,进而通过所述显示屏将虚拟立体场景呈现出来。
本发明的上述技术方案的有益效果如下:
本发明实施例的虚拟立体场景的构建方法和装置,提供了一种标准化的将虚拟场景转换为虚拟立体场景的方式,首先获取虚拟场景的像素的深度数据;根据深度数据,确定虚拟场景中虚拟单摄像机到最近物体的距离与虚拟单摄像机到最远物体的距离;然后根据虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离,确定左右虚拟摄像机的视间距和投影参数;再根据左右虚拟摄像机的视间距和虚拟单摄像机,得到左右虚拟摄像机;最后根据左右虚拟摄像机和左右虚拟摄像机各自的投影参数,对虚拟场景进行非对称透视投影变换,从而构建虚拟立体场景。这样,不再利用固定的转换参数将虚拟场景线性的转换为虚拟立体场景,而是针对每个虚拟场景,利用其各个像素的深度数据,得到虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离,进而实时获取每个虚拟场景对应的虚拟立体场景。由于虚拟场景不同,场景中的物体不同,不同场景的虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离也是不同的,利用每个虚拟场景的虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离构建该虚拟场景的虚拟立体场景,可以有效保证每个虚拟场景与真实观看环境的适配,保证了较好的立体效果。
附图说明
图1为本发明虚拟立体场景的构建方法的流程图;
图2为本发明虚拟立体场景的构建方法中真实场景中显示光路原理示意图;
图3为本发明虚拟立体场景的构建方法中虚拟场景中显示光路原理示意图;
图4为本发明虚拟立体场景的构建方法中虚拟摄像机投影示意图;
图5为本发明虚拟立体场景的构建方法中深度数据示意图;
图6为本发明虚拟立体场景的构建装置的结构示意图;
图7为本发明立体显示设备的结构示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
为了使本领域技术人员更好的理解本发明,首先对本发明实施例中所言的真实场景和虚拟场景进行介绍。
真实场景即人真实的观察空间,人眼看到的空间,观察者可以通过认知和经验等获取真实场景下的物体的深度和大小等信息,真实场景下是以长度单位为度量。本发明实施例中,观察者观察的真实场景为显示器,人和显示器构成“观察者-显示空间”。
虚拟场景即利用计算机,通过OpenGL等图形引擎构建的“摄像机-场景空间”,虚拟场景所需绘制的信息以像素为单位,通过渲染管线并以显示器的方式呈现出来。
虚拟场景通过显示器显示,而人在真实场景下的固定位置通过人眼接收显示器所显示的内容。由于虚拟场景是以像素为单位,且通过显示器显示;而真实场景是以长度单位(例如:米)为度量的,所以虚拟场景的内容想要表现在真实场景中,并且以立体的方式呈现,就需要场景的转换和映射。
本发明实施例提供的虚拟立体场景的构建方法和装置,即提供了一种将虚拟场景转换为虚拟立体场景映射到真实场景,从而在真实场景中呈现虚拟立体场景的方式。
本发明实施例所言的虚拟场景到虚拟立体场景可以认为是从3D(三维)场景到S3D(立体三维)场景。
本发明实施例适用于虚拟现实VR领域,也适用于裸眼3D显示领域。
结合图1所示,本发明实施例的虚拟立体场景的构建方法,包括:
步骤101,获取虚拟场景的像素的深度数据。
这里,针对于每个虚拟场景,在需要进行该场景的立体显示时,实时获取该虚拟场景的像素的深度数据,继而后续根据深度数据构建虚拟立体场景。
步骤102,根据深度数据,确定虚拟场景中虚拟单摄像机到最近物体的距离N_O与虚拟单摄像机到最远物体的距离F_O。
这里,根据深度数据,分别获取该虚拟场景的N_O与F_O,以得到虚拟场景的虚拟立体场景。
步骤103,根据虚拟单摄像机到最近物体的距离N_O和虚拟单摄像机到最远物体的距离F_O,确定左右虚拟摄像机的视间距和投影参数。
这里,需要根据N_O和F_O,进一步确定左右虚拟摄像机的视间距和投影参数,以将虚拟场景转换为虚拟立体场景。
步骤104,根据左右虚拟摄像机的视间距和虚拟单摄像机,得到左右虚拟摄像机。
这里,可根据左右虚拟摄像机的视间距Sep对虚拟单摄像机进行偏移,得到左右虚拟摄像机。
具体的,如可将虚拟单摄像机对应的水平坐标分别偏移-Sep/2和Sep/2,得到虚拟立体场景中对应真实场景左眼输出图像的左虚拟摄像机和对应真实场景右眼输出图像的右虚拟摄像机。
步骤105,根据左右虚拟摄像机和左右虚拟摄像机各自的投影参数,对虚拟场景进行非对称透视投影变换,从而构建虚拟立体场景。
这里,确定左右虚拟摄像机的位置后,根据左右虚拟摄像机的非对称透视投影参数分别对原虚拟单摄像机的投影参数进行非对称透视投影变换,从而构建左眼输出图像和右眼输出图像,配合立体显示器,将左眼输出图像送入观察者左眼,将右眼输出图像送入观察者右眼,从而利用该两幅图像构建虚拟立体场景。
可以理解的是,本步骤中,利用视间距和非对称投影参数对虚拟场景进行变换从而构建虚拟立体场景为本领域的公知常识,这里不做进一步详细说明。
本发明实施例的虚拟立体场景的构建方法,不再利用固定的转换参数将虚拟场景线性的转换为虚拟立体场景,而是针对每个虚拟场景,利用其各个像素的深度数据,得到该虚拟场景的虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离,根据这两个距离实时获取每个虚拟场景对应的虚拟立体场景。由于虚拟场景不同,场景中的物体不同,不同场景的虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离也是不同的,利用每个虚拟场景的虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离构建该虚拟场景的虚拟立体场景,可以有效保证每个虚拟场景与真实观看环境的适配,保证了较好的立体效果,也就是说,每个虚拟场景对应于该场景的深度数据相关的转换参数,并不是所有场景均对应相同的转换参数,解决了现有技术中利用固定的转换参数将虚拟场景线性的转换为虚拟立体场景,从而无法达到较佳的立体效果的问题。
一般的,对于每一个利用图形引擎(例如D3D或者openGL)构建的虚拟场景,图形引擎工具通常都提供深度缓存功能,即可以创建深度缓存区,图形引擎会在深度缓存区中存储深度数据。因此,上述步骤101可以包括:
步骤1011,从虚拟场景的深度缓存区中读取虚拟场景每个像素的深度数据。
具体的,以D3D11为例,上述步骤1011可通过如下方式开启深度缓存区功能,从而从深度缓存区中获取虚拟场景每个像素的深度数据:
创建深度缓冲区及对应视图:
创建深度缓冲区描述:
需将绑定类型指定为D3D11_BIND_DEPTH_STENCI。
创建二维纹理,用于存储深度数据:
创建对应的视图:
至此,可从深度缓存区中准确获取到虚拟场景每个像素的深度数据,为后续步骤提供了数据支持。
其中,上述获取虚拟场景的像素的深度数据的方式仅是一种实现方式,其他任何能够实现获取虚拟场景像素的深度数据的方式都能应用到本发明中,在此不一一说明。
得到物体的深度数据后,需要进一步确定虚拟场景中虚拟摄像机到最近物体的距离N_O与虚拟摄像机到最远物体的距离F_O,以根据N_O和F_O得到每个虚拟场景对应的虚拟立体场景。
一般来讲,深度数据是归一化的,即在[0,1]之间,但N_O和F_O是与N_V和F_V对应的,因此需要将深度数据做一下映射,将[0,1]之间的深度数据映射到[N_V,F_V]之间,映射之后,最小深度对应的就是N_O,最大深度对应的就是F_O,从而得到了N_O和F_O。
在得到深度数据后,可以有两种可行方式,一种是先找到深度数据中的最大值和最小值,然后进行映射从而得到N_O和F_O;另一种是先进行映射,再找到映射后的深度数据的最大值和最小值,即得到N_O和F_O。
也就是说,可选的,上述步骤102的步骤可以包括:
步骤1021,遍历深度数据,查找深度数据中的深度最大值和深度最小值;
步骤1022,将深度最小值映射到虚拟场景下虚拟单摄像机到近裁剪平面的距离N_V和虚拟单摄像机到远裁剪平面的距离F_V之间,得到虚拟场景中虚拟单摄像机到最近物体的距离N_O,将深度最大值映射到虚拟场景下虚拟单摄像机到近裁剪平面的距离N_V和虚拟单摄像机到远裁剪平面的距离F_V之间,得到虚拟场景中虚拟单摄像机到最远物体的距离F_O;
或者
步骤1023,将深度数据的数据范围映射到虚拟场景下虚拟单摄像机到近裁剪平面的距离N_V和虚拟单摄像机到远裁剪平面的距离F_V之间,得到映射深度数据;
步骤1024,获取映射深度数据中的深度最小值和深度最大值,并根据深度最小值和深度最大值分别确定虚拟单摄像机到最近物体的距离N_O和虚拟单摄像机到最远物体的距离F_O。
这里,可通过上述步骤1021-1022,首先遍历深度数据,查找到深度最大值和深度最小值,然后再将深度最小值和深度最大值分别映射到N_V和F_V之间,得到N_O和F_O。
也可通过上述步骤1023-1024,首先将深度数据的数据范围映射到N_V和F_V之间,然后根据映射深度数据中的深度最小值和深度最大值,分别确定N_O和F_O。
这两种方式均可准确、快速地获取到虚拟单摄像机到最近物体的距离N_O和虚拟单摄像机到最远物体的距离F_O,从而实现了动态获取视野深度信息的目的,保证了较好的立体效果。
可选的,上述步骤1022和1023中,可通过以下公式将深度数据映射到虚拟场景下虚拟单摄像机到近裁剪平面的距离N_V和虚拟单摄像机到远裁剪平面的距离F_V之间:
其中,Zsence为映射后的深度数据,Z'buffer为映射前的深度数据,N_V为虚拟单摄像机到近裁剪平面的距离,F_V为虚拟单摄像机到远裁剪平面的距离。
此时,通过将深度数据有效映射到N_V和F_V之间,能准确获取到N_O和F_O,提高了计算的准确性和有效性。
可选的,在本发明的一个实施例中,可首先通过以下公式将深度数据从[0,1]映射到[-1,1]的范围,然后再由[-1,1]的范围利用上述公式(1)映射到[N_V,F_V]之间:
Z'buffer=Zbuffer*2-1 (2);
其中,Zbuffer为[0,1]范围的深度数据,Z'buffer为[-1,1]范围的深度数据。
可选的,上述步骤1024中,获取映射深度数据中的深度最小值和深度最大值的步骤可以包括:
步骤10241,根据映射深度数据构建深度信息直方图;
步骤10242,根据深度信息直方图,获取映射深度数据中的深度最小值和深度最大值。
这里,如图5所示,构建深度信息直方图后,可过滤掉波动的数据,直接定位到深度最大值和深度最小值。
此时,通过构建深度信息直方图,可准确、快速地获取深度最大值和深度最小值。
得到虚拟单摄像机到最近物体的距离N_O和虚拟单摄像机到最远物体的距离F_O后,需要根据N_O和F_O,确定左右虚拟摄像机的视间距和投影参数,以将虚拟场景转换为虚拟立体场景。下面对如何确定左右虚拟摄像机的视间距和投影参数进行详细介绍。
可选的,上述步骤103的步骤可以包括:
步骤1031,根据真实场景中最大凸出距离下的第一视差dN_R与最大凹进距离下的第二视差dF_R之间的比值与虚拟场景中虚拟单摄像机到最近物体的距离N_O下的第三视差与虚拟单摄像机到最远物体的距离F_O下的第四视差之间的比值相等,从而根据虚拟单摄像机到最近物体的距离N_O和虚拟单摄像机到最远物体的距离F_O,确定左右虚拟摄像机的视间距和投影参数。
这里,基于真实场景中第一视差与第二视差之间的比值与虚拟场景中第三视差与第四视差之间的比值相等,确定左右虚拟摄像机的视间距和投影参数,进而实现虚拟场景与真实场景的转换和映射,可以有效保证虚拟场景映射到真实场景的立体效果。
具体的,确定左右虚拟摄像机的视间距和投影参数之后,通过上述步骤104、105,能够使得构建后的虚拟立体场景中左右虚拟摄像机到最近物体的距离与真实场景中最大凸出距离对应,构建后的虚拟立体场景中左右虚拟摄像机到最远物体的距离与真实场景中最大凹进距离对应,即将虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离之间的虚拟场景映射到真实场景中的最大凸出距离和最大凹进距离之间。从而使得虚拟立体场景能够与真实观察空间较好的适配,能够达到较好的立体效果,提升了用户的观看体验。
其中,参见图2,最大凸出距离N_R和最大凹进距离F_R用于表征真实场景的立体显示器的立体显示能力,即立体显示器所能够呈现的立体场景的深度范围,也即,立体显示器所能够呈现的立体场景的深度范围介于该最大凸出距离和最大凹进距离所限定的区间内,立体场景的最凸出部分不会超过该最大凸出距离,而最凹进部分不会超过该最大凹进距离。
进一步的,上述步骤1031的步骤可以包括:
步骤10311,通过如下公式获取真实场景中最大凸出距离下的第一视差dN_R:
其中,N_R为最大凸出距离,E_R为真实场景中的视间距,Z_R为真实场景中双眼到真实屏幕的距离。
步骤10312,通过如下公式获取真实场景中最大凹进距离下的第二视差dF_R:
其中,F_R为最大凹进距离。N_R、E_R、Z_R和F_R都是预先设定的值。
这里,参见图2可知,上述关系式(3)和(4)依据相似图形对应边成比例关系得到。如图2所示,真实场景中左眼L与右眼R的视间距E_R、双眼到真实屏幕Display的距离Z_R、最大凸出距离N_R、最大凹进距离F_R、真实屏幕display的宽度W_R、第一视差dN_R和第二视差dF_R均在图中进行了标示。根据相似三角形定理可以得到上面的公式(3)、(4)。
此时,通过上述公式(3)、(4)可准确获取真实场景中最大凸出距离下的第一视差和最大凹进距离下的第二视差,进而可准确获取第一视差与第二视差之间的比值,利用几何关系提高了计算的准确性和便利性,为接下来的映射计算打下了基础。
步骤10313,根据真实场景中第一视差dN_R与第二视差dF_R之间的比值与虚拟场景中虚拟单摄像机到最近物体的距离N_O下的第三视差dN_O与虚拟单摄像机到最远物体的距离F_O下的第四视差dF_O之间的比值相等所构建的如下关系式,确定虚拟单摄像机到虚拟零视差平面的第一距离Con:
其中:N_O为虚拟单摄像机到最近物体的距离,F_O为虚拟单摄像机到最远物体的距离,R为第一视差dN_R与第二视差dF_R之间的比值,
其中:
第三视差
第四视差
第三视差与第四视差的比值
关系式(5)由推导获得。
这里,如图3所示,虚拟场景中对应左眼输出图像的左虚拟摄像机L’与对应右眼输出图像的右虚拟摄像机R’之间的视间距Sep、虚拟单摄像机到虚拟屏幕Virtual Display的第一距离Con、虚拟单摄像机到近裁剪平面的距离N_V、虚拟单摄像机到远裁剪平面的距离F_V、虚拟单摄像机到近裁剪平面的第五视差dN_V和虚拟单摄像机到远裁剪平面的第六视差dF_V均在图中进行了标示。
根据相似三角形定理可以得到:
类比上述公式(10)、(11)可以得到:
因此,通过上述公式(7)、(8)可以得到第三视差与第四视差之间的比值关系式:
基于上述公式(9),有如下关系式:
这里,在虚拟和真实场景中的视差虽然换算单位和数值都不相同,但是它们具有相同的比值R。
对公式(12)进行变形可以得到:
此时,根据第一视差、第二视差,虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离,可准确求得虚拟单摄像机到虚拟屏幕的第一距离。
步骤10314,根据第一距离Con,确定左右虚拟摄像机的视间距Sep;
步骤10315,根据第一距离Con以及视间距Sep,确定左右虚拟摄像机的投影参数。
此时,首先根据真实场景中最大凸出距离和最大凹进距离下的视差比值与虚拟场景中摄像机到最近物体的距离和摄像机到最远物体的距离下的视差比值相等,可有效确定虚拟单摄像机到虚拟零视差平面的第一距离;然后根据第一距离,可有效确定左右虚拟摄像机的视间距;最后根据第一距离以及视间距,确定左右虚拟摄像机的投影参数,使得虚拟摄像机到最近物体的距离与真实场景中最大凸出距离映射对应,虚拟摄像机到最远物体的距离与真实场景中最大凹进距离映射对应,从而达到了理想的投影效果。
进一步的,上述步骤10314的步骤可以包括:
步骤103141,根据第一距离Con,获取虚拟屏幕的宽度WCon;
步骤103142,根据虚拟屏幕的宽度WCon,获取虚拟屏幕和真实屏幕之间的缩放比例;
步骤103143,根据缩放比例和第一距离Con,确定左右虚拟摄像机的视间距Sep。
此时,通过获取虚拟屏幕和真实屏幕之间的缩放比例,能有效确定左右虚拟摄像机的视间距,从而根据视间距进一步获取左右虚拟摄像机的投影参数,以完成虚拟立体场景的构建。
可选的,上述步骤103141的步骤可以包括:
通过如下公式获取虚拟屏幕的宽度WCon:
WCon=W_V*Con/N_V (13);
其中,Con为第一距离,W_V为虚拟场景的近裁剪平面的宽度,N_V为虚拟单摄像机到近裁剪平面的距离。
W_V可通过如下公式获得:
FOV为虚拟场景的视场角,ω为目标显示窗口的宽高比。
N_V、FOV和ω均可为预先设定的值。这里,继续参照图3所示,根据相似三角形定理可以得到上述公式(13)。
上述步骤103142的步骤可以包括:
通过如下公式获取虚拟屏幕与真实屏幕之间的缩放比例
其中,W_R为真实屏幕的宽度。W_R也为预先设定的值。
这里,通过获取虚拟屏幕与真实屏幕之间的缩放比例,可以确定虚拟场景与真实场景之间的对照关系,进而通过真实场景中的已知参数确定虚拟场景中对应的未知参数。
上述步骤103143的步骤可以包括:
通过如下公式确定左右虚拟摄像机的视间距Sep:
其中,为缩放比例,Con为第一距离,dN_R为第一视差,N_O为虚拟单摄像机到最近物体的距离。
这里,根据上述公式(7)可以得到:
根据虚拟屏幕与真实屏幕之间的缩放比例有代入公式(16),可以得到上述公式(15)。
或者
通过如下公式确定左右虚拟摄像机的视间距Sep:
其中,为缩放比例,Con为第一距离,dF_R为第二视差,F_O为虚拟单摄像机到最远物体的距离。
这里,根据上述公式(8)可以得到:
根据虚拟屏幕与真实屏幕之间的缩放比例有代入公式(18),可以得到上述公式(17)。
此时,通过虚拟屏幕与真实屏幕之间的缩放比例,能有效确定左右虚拟摄像机的视间距,提高了准确性。
得到第一距离和左右虚拟摄像机的视间距之后,需要进一步确定左右虚拟摄像机的投影参数,从而改变虚拟摄像机的投影效果,实现最优化的立体效果。
对于虚拟摄像机的投影参数,参照图4所示,虚拟摄像机在近裁剪平面的非对称透视投影参数主要包括:l、r、t、b、n和f。其中,l、r、t、b分别为虚拟摄像机非对称透视投影在近裁剪平面的裁剪窗口的左边界坐标、右边界坐标、上边界坐标和下边界坐标,n为虚拟摄像机到近裁剪平面的距离,f为虚拟摄像机到远裁剪平面的距离。
可选的,上述步骤10315的步骤可以包括:
步骤103151,通过如下公式确定左虚拟摄像机的非对称透视投影参数:
步骤103152,通过如下公式确定右虚拟摄像机的非对称透视投影参数:
其中,Con为第一距离,Sep为左右虚拟摄像机的视间距,W_V为虚拟场景的近裁剪平面的宽度,H_V为近裁剪平面的高度,N_V为虚拟单摄像机到近裁剪平面的距离,F_V为虚拟单摄像机到虚拟场景的远裁剪平面的距离;
其中,ll、rl、tl、bl分别为左虚拟摄像机非对称透视投影在近裁剪平面的裁剪窗口的左边界坐标、右边界坐标、上边界坐标和下边界坐标,nl为左虚拟摄像机到近裁剪平面的距离,fl为左虚拟摄像机到远裁剪平面的距离;
其中,lr、rr、tr、br分别为右虚拟摄像机非对称透视投影在近裁剪平面的裁剪窗口的左边界坐标、右边界坐标、上边界坐标和下边界坐标;nr为右虚拟摄像机到近裁剪平面的距离;fr为右虚拟摄像机到远裁剪平面的距离。
此时,通过确定左右虚拟摄像机的非对称透视投影参数,能有效改变虚拟摄像机的投影效果,实现最优化的立体效果。
可选的,可首先将虚拟单摄像机的水平坐标分别偏移-Sep/2和Sep/2,得到虚拟立体场景中对应真实场景左眼输出图像的左虚拟摄像机和对应真实场景右眼输出图像的右虚拟摄像机。确定左右虚拟摄像机的位置后,再根据左右虚拟摄像机的非对称透视投影参数,代替原虚拟单摄像机的非对称透视投影参数进行非对称透视投影变换,使得虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离之间的虚拟场景映射到真实场景中最大凸出距离和最大凹进距离之间,从而达到了较好的立体效果,提升了用户的观看体验。
可以理解的是,利用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如下:
通过上述步骤101-102确定的虚拟单摄像机到最近物体的距离N_O为5.0px,虚拟单摄像机到最远物体的距离F_O为20.0px。
应用本发明的方法,首先通过如下公式获取真实场景中最大凸出距离下的第一视差dN_R和最大凹进距离下的第二视差dF_R:
再通过如下公式获取第一视差与第二视差之间的比值R:
然后通过如下公式获取虚拟单摄像机到虚拟屏幕的第一距离Con:
再通过如下公式获取虚拟屏幕的宽度WCon:
WCon=W_V*Con/N_V≈28.07;
通过如下公式获取虚拟屏幕与真实屏幕之间的缩放比例
然后通过如下公式获取左右虚拟摄像机的视间距Sep:
最后利用计算出的第一距离Con和左右虚拟摄像机的视间距Sep完成对虚拟单摄像机的偏移和视景体的变换,从而构建虚拟立体场景,得到需要的立体效果。
综上,本发明实施例的虚拟立体场景的构建方法,不再利用固定的转换参数将虚拟场景线性的转换为虚拟立体场景,而是针对每个虚拟场景,利用其各个像素的深度数据,得到虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离,进而实时获取每个虚拟场景对应的虚拟立体场景,由于虚拟场景不同,场景中的物体不同,不同场景的虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离也是不同的,利用每个虚拟场景的虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离构建该虚拟场景的虚拟立体场景,可以有效保证每个虚拟场景与真实观看环境的适配,保证了较好的立体效果。并且,可进一步视差的比值相等,将虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离之间的虚拟场景映射到真实场景中最大凸出距离和最大凹进距离之间,使得虚拟立体场景能够与真实观察空间较好的适配,从而提高了用户的观看体验;解决了现有技术中利用固定的转换参数将虚拟场景线性的转换为虚拟立体场景,从而无法达到较佳的立体效果的问题。
如图6所示,本发明的实施例还提供一种虚拟立体场景的构建装置,包括:
获取模块601,用于获取虚拟场景的像素的深度数据;
第一确定模块602,用于根据所述深度数据,确定所述虚拟场景中虚拟单摄像机到最近物体的距离与虚拟单摄像机到最远物体的距离;
第二确定模块603,用于根据所述虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离,确定左右虚拟摄像机的视间距和投影参数;
偏移模块604,用于根据所述左右虚拟摄像机的视间距和所述虚拟单摄像机,得到左右虚拟摄像机;
投影变换模块605,用于根据所述左右虚拟摄像机和所述左右虚拟摄像机各自的投影参数,对所述虚拟场景进行非对称透视投影变换,从而构建虚拟立体场景。
本发明实施例的虚拟立体场景的构建装置,不再利用固定的转换参数将虚拟场景线性的转换为虚拟立体场景,而是针对每个虚拟场景,利用其各个像素的深度数据,得到虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离,进而实时获取每个虚拟场景对应的虚拟立体场景。由于虚拟场景不同,场景中的物体不同,不同场景的虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离也是不同的,利用每个虚拟场景的虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离构建该虚拟场景的虚拟立体场景,可以有效保证每个虚拟场景与真实观看环境的适配,保证了较好的立体效果。解决了现有技术中利用固定的转换参数将虚拟场景线性的转换为虚拟立体场景,从而无法达到较佳的立体效果的问题。
具体的,所述获取模块601可以包括:
获取子模块,用于从所述虚拟场景的深度缓存区中读取所述虚拟场景每个像素的深度数据。
可选的,所述第一确定模块602可以包括:
查找子模块,用于遍历所述深度数据,查找所述深度数据中的深度最大值和深度最小值;
第一映射子模块,用于将所述深度最小值映射到虚拟场景下虚拟单摄像机到近裁剪平面的距离和虚拟单摄像机到远裁剪平面的距离之间,得到所述虚拟场景中虚拟单摄像机到最近物体的距离,将所述深度最大值映射到虚拟场景下虚拟单摄像机到近裁剪平面的距离和虚拟单摄像机到远裁剪平面的距离之间,得到所述虚拟场景中虚拟单摄像机到最远物体的距离;
或者
第二映射子模块,用于将所述深度数据的数据范围映射到虚拟场景下虚拟单摄像机到近裁剪平面的距离和虚拟单摄像机到远裁剪平面的距离之间,得到映射深度数据;
第一确定子模块,用于获取所述映射深度数据中的深度最小值和深度最大值,并根据所述深度最小值和所述深度最大值分别确定所述虚拟单摄像机到最近物体的距离和所述虚拟单摄像机到最远物体的距离。
可选的,所述第一映射子模块或所述第二映射子模块,用于通过以下公式将深度数据映射到虚拟场景下虚拟单摄像机到近裁剪平面的距离和虚拟单摄像机到远裁剪平面的距离之间:
其中,Zsence为映射后的深度数据,Z'buffer为映射前的深度数据,N_V为虚拟单摄像机到近裁剪平面的距离,F_V为虚拟单摄像机到远裁剪平面的距离。
可选的,所述第一确定子模块可以包括:
构建单元,用于根据所述映射深度数据构建深度信息直方图;
第一获取单元,用于根据所述深度信息直方图,获取所述映射深度数据中的深度最小值和深度最大值。
可选的,所述第二确定模块603可以包括:
第二确定子模块,用于根据真实场景中最大凸出距离下的第一视差与最大凹进距离下的第二视差之间的比值与虚拟场景中虚拟单摄像机到最近物体的距离下的第三视差与虚拟单摄像机到最远物体的距离下的第四视差之间的比值相等,从而根据所述虚拟单摄像机到最近物体的距离和所述虚拟单摄像机到最远物体的距离,确定左右虚拟摄像机的视间距和投影参数。
进一步的,所述第二确定子模块可以包括:
第二获取单元,用于通过如下公式获取真实场景中最大凸出距离下的第一视差dN_R:
其中,N_R为所述最大凸出距离,E_R为真实场景中的视间距,Z_R为真实场景中双眼到真实屏幕的距离;
第三获取单元,用于通过如下公式获取真实场景中最大凹进距离下的第二视差dF_R:
其中,F_R为所述最大凹进距离;
第一确定单元,用于根据真实场景中所述第一视差与所述第二视差之间的比值与虚拟场景中虚拟单摄像机到最近物体的距离下的第三视差与虚拟单摄像机到最远物体的距离下的第四视差之间的比值相等所构建的如下关系式,确定虚拟单摄像机到虚拟零视差平面的第一距离Con:
其中: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为虚拟单摄像机到最远物体的距离。
可选的,上述投影变换模块605可以包括:
第三确定子模块,用于通过如下公式确定左虚拟摄像机的非对称透视投影参数:
第四确定子模块,用于通过如下公式确定右虚拟摄像机的非对称透视投影参数:
其中,Con为第一距离,Sep为左右虚拟摄像机的视间距,W_V为虚拟场景的近裁剪平面的宽度,H_V为近裁剪平面的高度,N_V为虚拟单摄像机到近裁剪平面的距离,F_V为虚拟单摄像机到虚拟场景的远裁剪平面的距离;
其中,ll、rl、tl、bl分别为左虚拟摄像机非对称透视投影在近裁剪平面的裁剪窗口的左边界坐标、右边界坐标、上边界坐标和下边界坐标,nl为左虚拟摄像机到近裁剪平面的距离,fl为左虚拟摄像机到远裁剪平面的距离;
其中,lr、rr、tr、br分别为右虚拟摄像机非对称透视投影在近裁剪平面的裁剪窗口的左边界坐标、右边界坐标、上边界坐标和下边界坐标;nr为右虚拟摄像机到近裁剪平面的距离;fr为右虚拟摄像机到远裁剪平面的距离。
综上,本发明实施例的虚拟立体场景的构建装置,不再利用固定的转换参数将虚拟场景线性的转换为虚拟立体场景,而是针对每个虚拟场景,利用其各个像素的深度数据,得到虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离,进而实时获取每个虚拟场景对应的虚拟立体场景,保证了较好的立体效果;并通过将虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离之间的虚拟场景映射到真实场景中最大凸出距离和最大凹进距离之间,使得虚拟立体场景能够与真实观察空间较好的适配,从而提高了用户的观看体验;解决了现有技术中利用固定的转换参数将虚拟场景线性的转换为虚拟立体场景,从而无法达到较佳的立体效果的问题。
需要说明的是,该虚拟立体场景的构建装置是与上述虚拟立体场景的构建方法相对应的装置,其中上述方法实施例中所有实现方式均适用于该装置的实施例中,也能达到同样的技术效果。
本发明实施例还提供一种立体显示设备,所述立体显示设备可包含前述任一实施例所述的虚拟立体场景的构建装置。
图7为本发明立体显示设备一个实施例的结构示意图,可以实现本发明图1所示实施例的流程。如图7所示,上述立体显示设备可以包括:显示屏(未示出),壳体71、处理器72、存储器73、电路板74和电源电路75,其中,显示屏嵌接在壳体71上,与壳体一起围成封闭空间;电路板74安置在显示屏和壳体71围成的空间内部,处理器72和存储器73设置在电路板74上;电源电路75,用于为上述立体显示设备的各个电路或器件供电;存储器73用于存储可执行程序代码;处理器72通过读取存储器73中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例所述的虚拟立体场景的构建方法,获取虚拟场景的像素的深度数据;根据所述深度数据,确定所述虚拟场景中虚拟单摄像机到最近物体的距离与虚拟单摄像机到最远物体的距离;根据所述虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离,确定左右虚拟摄像机的视间距和投影参数;根据所述左右虚拟摄像机的视间距和所述虚拟单摄像机,得到左右虚拟摄像机;根据所述左右虚拟摄像机和所述左右虚拟摄像机各自的投影参数,对所述虚拟场景进行非对称透视投影变换,构建虚拟立体场景,进而通过所述显示屏将虚拟立体场景呈现出来。
处理器72对上述步骤的具体执行过程以及处理器72通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图1所示实施例的描述,在此不再赘述。
该立体显示设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、应用程序的提供器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子设备。
本发明实施例中,模块可以用软件实现,以便由各种类型的处理器执行。举例来说,一个标识的可执行代码模块可以包括计算机指令的一个或多个物理或者逻辑块,举例来说,其可以被构建为对象、过程或函数。尽管如此,所标识模块的可执行代码无需物理地位于一起,而是可以包括存储在不同位里上的不同的指令,当这些指令逻辑上结合在一起时,其构成模块并且实现该模块的规定目的。
实际上,可执行代码模块可以是单条指令或者是许多条指令,并且甚至可以分布在多个不同的代码段上,分布在不同程序当中,以及跨越多个存储器设备分布。同样地,操作数据可以在模块内被识别,并且可以依照任何适当的形式实现并且被组织在任何适当类型的数据结构内。所述操作数据可以作为单个数据集被收集,或者可以分布在不同位置上(包括在不同存储设备上),并且至少部分地可以仅作为电子信号存在于系统或网络上。
在模块可以利用软件实现时,考虑到现有硬件工艺的水平,所以可以以软件实现的模块,在不考虑成本的情况下,本领域技术人员都可以搭建对应的硬件电路来实现对应的功能,所述硬件电路包括常规的超大规模集成(VLSI)电路或者门阵列以及诸如逻辑芯片、晶体管之类的现有半导体或者是其它分立的元件。模块还可以用可编程硬件设备,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等实现。
在本发明的各种实施例中,应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (15)
1.一种虚拟立体场景的构建方法,其特征在于,包括:
获取虚拟场景的像素的深度数据;
根据所述深度数据,确定所述虚拟场景中虚拟单摄像机到最近物体的距离与虚拟单摄像机到最远物体的距离;
根据所述虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离,确定左右虚拟摄像机的视间距和投影参数;
根据所述左右虚拟摄像机的视间距和所述虚拟单摄像机,得到左右虚拟摄像机;
根据所述左右虚拟摄像机和所述左右虚拟摄像机各自的投影参数,对所述虚拟场景进行非对称透视投影变换,从而构建虚拟立体场景;
其中,所述根据所述虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离,确定左右虚拟摄像机的视间距和投影参数的步骤包括:
通过如下公式获取真实场景中最大凸出距离下的第一视差dN_R:
<mrow>
<msub>
<mi>d</mi>
<mrow>
<mi>N</mi>
<mo>_</mo>
<mi>R</mi>
</mrow>
</msub>
<mo>=</mo>
<mfrac>
<mrow>
<mi>N</mi>
<mo>_</mo>
<mi>R</mi>
<mo>*</mo>
<mi>E</mi>
<mo>_</mo>
<mi>R</mi>
</mrow>
<mrow>
<mi>Z</mi>
<mo>_</mo>
<mi>R</mi>
<mo>-</mo>
<mi>N</mi>
<mo>_</mo>
<mi>R</mi>
</mrow>
</mfrac>
<mo>;</mo>
</mrow>
其中,N_R为所述最大凸出距离,E_R为真实场景中的视间距,Z_R为真实场景中双眼到真实屏幕的距离;
通过如下公式获取真实场景中最大凹进距离下的第二视差dF_R:
<mrow>
<msub>
<mi>d</mi>
<mrow>
<mi>F</mi>
<mo>_</mo>
<mi>R</mi>
</mrow>
</msub>
<mo>=</mo>
<mfrac>
<mrow>
<mi>F</mi>
<mo>_</mo>
<mi>R</mi>
<mo>*</mo>
<mi>E</mi>
<mo>_</mo>
<mi>R</mi>
</mrow>
<mrow>
<mi>Z</mi>
<mo>_</mo>
<mi>R</mi>
<mo>+</mo>
<mi>F</mi>
<mo>_</mo>
<mi>R</mi>
</mrow>
</mfrac>
<mo>;</mo>
</mrow>
其中,F_R为所述最大凹进距离;
根据真实场景中所述第一视差与所述第二视差之间的比值与虚拟场景中虚拟单摄像机到最近物体的距离下的第三视差与虚拟单摄像机到最远物体的距离下的第四视差之间的比值相等所构建的如下关系式,确定虚拟单摄像机到虚拟零视差平面的第一距离Con:
<mrow>
<mi>C</mi>
<mi>o</mi>
<mi>n</mi>
<mo>=</mo>
<mfrac>
<mrow>
<mi>R</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
<mrow>
<mfrac>
<mn>1</mn>
<mrow>
<mi>N</mi>
<mo>_</mo>
<mi>O</mi>
</mrow>
</mfrac>
<mo>+</mo>
<mfrac>
<mi>R</mi>
<mrow>
<mi>F</mi>
<mo>_</mo>
<mi>O</mi>
</mrow>
</mfrac>
</mrow>
</mfrac>
<mo>;</mo>
</mrow>
其中:N_O为虚拟单摄像机到最近物体的距离,F_O为虚拟单摄像机到最远物体的距离,R为所述第一视差dN_R与所述第二视差dF_R之间的比值,
根据所述第一距离,确定所述左右虚拟摄像机的视间距;
根据所述第一距离以及所述视间距,确定所述左右虚拟摄像机的投影参数。
2.根据权利要求1所述的构建方法,其特征在于,所述获取虚拟场景的像素的深度数据的步骤包括:
从所述虚拟场景的深度缓存区中读取所述虚拟场景每个像素的深度数据。
3.根据权利要求1所述的构建方法,其特征在于,所述根据所述深度数据,确定所述虚拟场景中虚拟单摄像机到最近物体的距离与虚拟单摄像机到最远物体的距离的步骤包括:
遍历所述深度数据,查找所述深度数据中的深度最大值和深度最小值;
将所述深度最小值映射到虚拟场景下虚拟单摄像机到近裁剪平面的距离和虚拟单摄像机到远裁剪平面的距离之间,得到所述虚拟场景中虚拟单摄像机到最近物体的距离,将所述深度最大值映射到虚拟场景下虚拟单摄像机到近裁剪平面的距离和虚拟单摄像机到远裁剪平面的距离之间,得到所述虚拟场景中虚拟单摄像机到最远物体的距离;
或者
将所述深度数据的数据范围映射到虚拟场景下虚拟单摄像机到近裁剪平面的距离和虚拟单摄像机到远裁剪平面的距离之间,得到映射深度数据;
获取所述映射深度数据中的深度最小值和深度最大值,并根据所述深度最小值和所述深度最大值分别确定所述虚拟单摄像机到最近物体的距离和所述虚拟单摄像机到最远物体的距离。
4.根据权利要求3所述的构建方法,其特征在于,通过以下公式将深度数据映射到虚拟场景下虚拟单摄像机到近裁剪平面的距离和虚拟单摄像机到远裁剪平面的距离之间:
<mrow>
<msub>
<mi>Z</mi>
<mrow>
<mi>s</mi>
<mi>e</mi>
<mi>n</mi>
<mi>c</mi>
<mi>e</mi>
</mrow>
</msub>
<mo>=</mo>
<mfrac>
<mrow>
<mn>2</mn>
<mo>*</mo>
<mi>N</mi>
<mo>_</mo>
<mi>V</mi>
<mo>*</mo>
<mi>F</mi>
<mo>_</mo>
<mi>V</mi>
</mrow>
<mrow>
<msubsup>
<mi>Z</mi>
<mrow>
<mi>b</mi>
<mi>u</mi>
<mi>f</mi>
<mi>f</mi>
<mi>e</mi>
<mi>r</mi>
</mrow>
<mo>&prime;</mo>
</msubsup>
<mo>*</mo>
<mrow>
<mo>(</mo>
<mi>F</mi>
<mo>_</mo>
<mi>V</mi>
<mo>-</mo>
<mi>N</mi>
<mo>_</mo>
<mi>V</mi>
<mo>)</mo>
</mrow>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mi>N</mi>
<mo>_</mo>
<mi>V</mi>
<mo>+</mo>
<mi>F</mi>
<mo>_</mo>
<mi>V</mi>
<mo>)</mo>
</mrow>
</mrow>
</mfrac>
<mo>;</mo>
</mrow>
其中,Zsence为映射后的深度数据,Z′buffer为映射前的深度数据,N_V为虚拟单摄像机到近裁剪平面的距离,F_V为虚拟单摄像机到远裁剪平面的距离。
5.根据权利要求3所述的构建方法,其特征在于,所述获取所述映射深度数据中的深度最小值和深度最大值的步骤包括:
根据所述映射深度数据构建深度信息直方图;
根据所述深度信息直方图,获取所述映射深度数据中的深度最小值和深度最大值。
6.根据权利要求1所述的构建方法,其特征在于,所述根据所述第一距离,确定所述左右虚拟摄像机的视间距的步骤包括:
根据所述第一距离,获取虚拟屏幕的宽度;
根据所述虚拟屏幕的宽度,获取所述虚拟屏幕和真实屏幕之间的缩放比例;
根据所述缩放比例和所述第一距离,确定所述左右虚拟摄像机的视间距。
7.根据权利要求6所述的构建方法,其特征在于,所述根据所述第一距离,获取所述虚拟屏幕的宽度的步骤包括:
通过如下公式获取所述虚拟屏幕的宽度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为虚拟单摄像机到最远物体的距离。
8.一种虚拟立体场景的构建装置,其特征在于,包括:
获取模块,用于获取虚拟场景的像素的深度数据;
第一确定模块,用于根据所述深度数据,确定所述虚拟场景中虚拟单摄像机到最近物体的距离与虚拟单摄像机到最远物体的距离;
第二确定模块,用于根据所述虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离,确定左右虚拟摄像机的视间距和投影参数;
偏移模块,用于根据所述左右虚拟摄像机的视间距和所述虚拟单摄像机,得到左右虚拟摄像机;
投影变换模块,用于根据所述左右虚拟摄像机和所述左右虚拟摄像机各自的投影参数,对所述虚拟场景进行非对称透视投影变换,从而构建虚拟立体场景;
所述第二确定模块包括第二确定子模块,所述第二确定子模块包括:
第二获取单元,用于通过如下公式获取真实场景中最大凸出距离下的第一视差dN_R:
<mrow>
<msub>
<mi>d</mi>
<mrow>
<mi>N</mi>
<mo>_</mo>
<mi>R</mi>
</mrow>
</msub>
<mo>=</mo>
<mfrac>
<mrow>
<mi>N</mi>
<mo>_</mo>
<mi>R</mi>
<mo>*</mo>
<mi>E</mi>
<mo>_</mo>
<mi>R</mi>
</mrow>
<mrow>
<mi>Z</mi>
<mo>_</mo>
<mi>R</mi>
<mo>-</mo>
<mi>N</mi>
<mo>_</mo>
<mi>R</mi>
</mrow>
</mfrac>
<mo>;</mo>
</mrow>
其中,N_R为所述最大凸出距离,E_R为真实场景中的视间距,Z_R为真实场景中双眼到真实屏幕的距离;
第三获取单元,用于通过如下公式获取真实场景中最大凹进距离下的第二视差dF_R:
<mrow>
<msub>
<mi>d</mi>
<mrow>
<mi>F</mi>
<mo>_</mo>
<mi>R</mi>
</mrow>
</msub>
<mo>=</mo>
<mfrac>
<mrow>
<mi>F</mi>
<mo>_</mo>
<mi>R</mi>
<mo>*</mo>
<mi>E</mi>
<mo>_</mo>
<mi>R</mi>
</mrow>
<mrow>
<mi>Z</mi>
<mo>_</mo>
<mi>R</mi>
<mo>+</mo>
<mi>F</mi>
<mo>_</mo>
<mi>R</mi>
</mrow>
</mfrac>
<mo>;</mo>
</mrow>
其中,F_R为所述最大凹进距离;
第一确定单元,用于根据真实场景中所述第一视差与所述第二视差之间的比值与虚拟场景中虚拟单摄像机到最近物体的距离下的第三视差与虚拟单摄像机到最远物体的距离下的第四视差之间的比值相等所构建的如下关系式,确定虚拟单摄像机到虚拟零视差平面的第一距离Con:
<mrow>
<mi>C</mi>
<mi>o</mi>
<mi>n</mi>
<mo>=</mo>
<mfrac>
<mrow>
<mi>R</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
<mrow>
<mfrac>
<mn>1</mn>
<mrow>
<mi>N</mi>
<mo>_</mo>
<mi>O</mi>
</mrow>
</mfrac>
<mo>+</mo>
<mfrac>
<mi>R</mi>
<mrow>
<mi>F</mi>
<mo>_</mo>
<mi>O</mi>
</mrow>
</mfrac>
</mrow>
</mfrac>
<mo>;</mo>
</mrow>
其中:N_O为虚拟单摄像机到最近物体的距离,F_O为虚拟单摄像机到最远物体的距离,R为所述第一视差dN_R与所述第二视差dF_R之间的比值,
第二确定单元,用于根据所述第一距离,确定所述左右虚拟摄像机的视间距;
第三确定单元,用于根据所述第一距离以及所述视间距,确定所述左右虚拟摄像机的投影参数。
9.根据权利要求8所述的构建装置,其特征在于,所述获取模块包括:
获取子模块,用于从所述虚拟场景的深度缓存区中读取所述虚拟场景每个像素的深度数据。
10.根据权利要求8所述的构建装置,其特征在于,所述第一确定模块包括:
查找子模块,用于遍历所述深度数据,查找所述深度数据中的深度最大值和深度最小值;
第一映射子模块,用于将所述深度最小值映射到虚拟场景下虚拟单摄像机到近裁剪平面的距离和虚拟单摄像机到远裁剪平面的距离之间,得到所述虚拟场景中虚拟单摄像机到最近物体的距离,将所述深度最大值映射到虚拟场景下虚拟单摄像机到近裁剪平面的距离和虚拟单摄像机到远裁剪平面的距离之间,得到所述虚拟场景中虚拟单摄像机到最远物体的距离;
或者
第二映射子模块,用于将所述深度数据的数据范围映射到虚拟场景下虚拟单摄像机到近裁剪平面的距离和虚拟单摄像机到远裁剪平面的距离之间,得到映射深度数据;
第一确定子模块,用于获取所述映射深度数据中的深度最小值和深度最大值,并根据所述深度最小值和所述深度最大值分别确定所述虚拟单摄像机到最近物体的距离和所述虚拟单摄像机到最远物体的距离。
11.根据权利要求10所述的构建装置,其特征在于,所述第一映射子模块或所述第二映射子模块,用于通过以下公式将深度数据映射到虚拟场景下虚拟单摄像机到近裁剪平面的距离和虚拟单摄像机到远裁剪平面的距离之间:
<mrow>
<msub>
<mi>Z</mi>
<mrow>
<mi>s</mi>
<mi>e</mi>
<mi>n</mi>
<mi>c</mi>
<mi>e</mi>
</mrow>
</msub>
<mo>=</mo>
<mfrac>
<mrow>
<mn>2</mn>
<mo>*</mo>
<mi>N</mi>
<mo>_</mo>
<mi>V</mi>
<mo>*</mo>
<mi>F</mi>
<mo>_</mo>
<mi>V</mi>
</mrow>
<mrow>
<msubsup>
<mi>Z</mi>
<mrow>
<mi>b</mi>
<mi>u</mi>
<mi>f</mi>
<mi>f</mi>
<mi>e</mi>
<mi>r</mi>
</mrow>
<mo>&prime;</mo>
</msubsup>
<mo>*</mo>
<mrow>
<mo>(</mo>
<mi>F</mi>
<mo>_</mo>
<mi>V</mi>
<mo>-</mo>
<mi>N</mi>
<mo>_</mo>
<mi>V</mi>
<mo>)</mo>
</mrow>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mi>N</mi>
<mo>_</mo>
<mi>V</mi>
<mo>+</mo>
<mi>F</mi>
<mo>_</mo>
<mi>V</mi>
<mo>)</mo>
</mrow>
</mrow>
</mfrac>
<mo>;</mo>
</mrow>
其中,Zsence为映射后的深度数据,Zb'uffer为映射前的深度数据,N_V为虚拟单摄像机到近裁剪平面的距离,F_V为虚拟单摄像机到远裁剪平面的距离。
12.根据权利要求10所述的构建装置,其特征在于,所述第一确定子模块包括:
构建单元,用于根据所述映射深度数据构建深度信息直方图;
第一获取单元,用于根据所述深度信息直方图,获取所述映射深度数据中的深度最小值和深度最大值。
13.根据权利要求8所述的构建装置,其特征在于,所述第二确定单元包括:
第一获取子单元,用于根据所述第一距离,获取虚拟屏幕的宽度;
第二获取子单元,用于根据所述虚拟屏幕的宽度,获取所述虚拟屏幕和真实屏幕之间的缩放比例;
第一确定子单元,用于根据所述缩放比例和所述第一距离,确定所述左右虚拟摄像机的视间距。
14.根据权利要求13所述的构建装置,其特征在于,所述第一获取子单元用于:
通过如下公式获取所述虚拟屏幕的宽度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为虚拟单摄像机到最远物体的距离。
15.一种立体显示设备,其特征在于,包括:显示屏,壳体、处理器、存储器、电路板和电源电路,其中:
所述显示屏嵌接在所述壳体上,与所述壳体一起围成封闭空间;
所述电路板安置在所述壳体和所述显示屏围成的空间内部,所述处理器和所述存储器设置在所述电路板上;
所述电源电路,用于为上述立体显示设备的各个电路或器件供电;
所述存储器用于存储可执行程序代码;
所述处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,执行:
获取虚拟场景的像素的深度数据;
根据所述深度数据,确定所述虚拟场景中虚拟单摄像机到最近物体的距离与虚拟单摄像机到最远物体的距离;
根据所述虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离,确定左右虚拟摄像机的视间距和投影参数;
根据所述左右虚拟摄像机的视间距和所述虚拟单摄像机,得到左右虚拟摄像机;
根据所述左右虚拟摄像机和所述左右虚拟摄像机各自的投影参数,对所述虚拟场景进行非对称透视投影变换,构建虚拟立体场景,进而通过所述显示屏将虚拟立体场景呈现出来;
其中,所述根据所述虚拟单摄像机到最近物体的距离和虚拟单摄像机到最远物体的距离,确定左右虚拟摄像机的视间距和投影参数包括:
通过如下公式获取真实场景中最大凸出距离下的第一视差dN_R:
<mrow>
<msub>
<mi>d</mi>
<mrow>
<mi>N</mi>
<mo>_</mo>
<mi>R</mi>
</mrow>
</msub>
<mo>=</mo>
<mfrac>
<mrow>
<mi>N</mi>
<mo>_</mo>
<mi>R</mi>
<mo>*</mo>
<mi>E</mi>
<mo>_</mo>
<mi>R</mi>
</mrow>
<mrow>
<mi>Z</mi>
<mo>_</mo>
<mi>R</mi>
<mo>-</mo>
<mi>N</mi>
<mo>_</mo>
<mi>R</mi>
</mrow>
</mfrac>
<mo>;</mo>
</mrow>
其中,N_R为所述最大凸出距离,E_R为真实场景中的视间距,Z_R为真实场景中双眼到真实屏幕的距离;
通过如下公式获取真实场景中最大凹进距离下的第二视差dF_R:
<mrow>
<msub>
<mi>d</mi>
<mrow>
<mi>F</mi>
<mo>_</mo>
<mi>R</mi>
</mrow>
</msub>
<mo>=</mo>
<mfrac>
<mrow>
<mi>F</mi>
<mo>_</mo>
<mi>R</mi>
<mo>*</mo>
<mi>E</mi>
<mo>_</mo>
<mi>R</mi>
</mrow>
<mrow>
<mi>Z</mi>
<mo>_</mo>
<mi>R</mi>
<mo>+</mo>
<mi>F</mi>
<mo>_</mo>
<mi>R</mi>
</mrow>
</mfrac>
<mo>;</mo>
</mrow>
其中,F_R为所述最大凹进距离;
根据真实场景中所述第一视差与所述第二视差之间的比值与虚拟场景中虚拟单摄像机到最近物体的距离下的第三视差与虚拟单摄像机到最远物体的距离下的第四视差之间的比值相等所构建的如下关系式,确定虚拟单摄像机到虚拟零视差平面的第一距离Con:
<mrow>
<mi>C</mi>
<mi>o</mi>
<mi>n</mi>
<mo>=</mo>
<mfrac>
<mrow>
<mi>R</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
<mrow>
<mfrac>
<mn>1</mn>
<mrow>
<mi>N</mi>
<mo>_</mo>
<mi>O</mi>
</mrow>
</mfrac>
<mo>+</mo>
<mfrac>
<mi>R</mi>
<mrow>
<mi>F</mi>
<mo>_</mo>
<mi>O</mi>
</mrow>
</mfrac>
</mrow>
</mfrac>
<mo>;</mo>
</mrow>
其中:N_O为虚拟单摄像机到最近物体的距离,F_O为虚拟单摄像机到最远物体的距离,R为所述第一视差dN_R与所述第二视差dF_R之间的比值,
根据所述第一距离,确定所述左右虚拟摄像机的视间距;
根据所述第一距离以及所述视间距,确定所述左右虚拟摄像机的投影参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610409173.8A CN106228613B (zh) | 2016-06-12 | 2016-06-12 | 一种虚拟立体场景的构建方法、装置及立体显示设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610409173.8A CN106228613B (zh) | 2016-06-12 | 2016-06-12 | 一种虚拟立体场景的构建方法、装置及立体显示设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106228613A CN106228613A (zh) | 2016-12-14 |
CN106228613B true CN106228613B (zh) | 2017-11-24 |
Family
ID=57519714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610409173.8A Active CN106228613B (zh) | 2016-06-12 | 2016-06-12 | 一种虚拟立体场景的构建方法、装置及立体显示设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106228613B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106791478A (zh) * | 2016-12-15 | 2017-05-31 | 山东数字人科技股份有限公司 | 一种三维数据实时立体展示系统 |
CN109542209A (zh) * | 2017-08-04 | 2019-03-29 | 北京灵境世界科技有限公司 | 一种适应人眼汇聚的方法 |
CN108181993A (zh) * | 2018-01-26 | 2018-06-19 | 成都科木信息技术有限公司 | 用于增强现实设备的场景绘制方法 |
CN110618751B (zh) * | 2018-06-19 | 2021-03-26 | 广东虚拟现实科技有限公司 | 虚拟对象的显示方法、装置、终端设备及存储介质 |
CN111275611B (zh) * | 2020-01-13 | 2024-02-06 | 深圳市华橙数字科技有限公司 | 三维场景中物体深度确定方法、装置、终端及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609977A (zh) * | 2012-01-12 | 2012-07-25 | 浙江大学 | 基于深度融合和曲面演变的多视点三维重建方法 |
CN102930550A (zh) * | 2012-11-20 | 2013-02-13 | 天津理工大学 | 立体图像绘制时虚拟相机分离距离的确定方法 |
CN104023221A (zh) * | 2014-06-23 | 2014-09-03 | 深圳超多维光电子有限公司 | 立体图像视差调节方法和装置 |
CN104093013A (zh) * | 2014-06-25 | 2014-10-08 | 中国科学院遥感与数字地球研究所 | 一种立体视觉三维可视化系统中自动调节图像视差的方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014501086A (ja) * | 2010-11-23 | 2014-01-16 | 深▲セン▼超多▲維▼光▲電▼子有限公司 | 立体画像取得システム及び方法 |
TWI566576B (zh) * | 2014-06-03 | 2017-01-11 | 宏碁股份有限公司 | 立體影像合成方法及裝置 |
-
2016
- 2016-06-12 CN CN201610409173.8A patent/CN106228613B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609977A (zh) * | 2012-01-12 | 2012-07-25 | 浙江大学 | 基于深度融合和曲面演变的多视点三维重建方法 |
CN102930550A (zh) * | 2012-11-20 | 2013-02-13 | 天津理工大学 | 立体图像绘制时虚拟相机分离距离的确定方法 |
CN104023221A (zh) * | 2014-06-23 | 2014-09-03 | 深圳超多维光电子有限公司 | 立体图像视差调节方法和装置 |
CN104093013A (zh) * | 2014-06-25 | 2014-10-08 | 中国科学院遥感与数字地球研究所 | 一种立体视觉三维可视化系统中自动调节图像视差的方法 |
Non-Patent Citations (1)
Title |
---|
《多视点立体显示系统建模及分析》;毕家瑜等;《光学技术》;20090731;第35卷(第4期);第575-578,583页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106228613A (zh) | 2016-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106228613B (zh) | 一种虚拟立体场景的构建方法、装置及立体显示设备 | |
US10186083B1 (en) | Method and system for navigating in panoramic images using voxel maps | |
US9924156B2 (en) | Stereo panoramic images | |
CN101833896B (zh) | 基于增强现实的地理信息指引方法与系统 | |
US7840032B2 (en) | Street-side maps and paths | |
CN103900583B (zh) | 用于即时定位与地图构建的设备和方法 | |
US8085990B2 (en) | Hybrid maps with embedded street-side images | |
KR101280170B1 (ko) | 이동 단말에서의 증강현실 기반 정보 처리 방법 | |
CN105241461A (zh) | 机器人的地图创建及定位方法和机器人系统 | |
CN106228530B (zh) | 一种立体摄影方法、装置及立体摄影设备 | |
CN105323252A (zh) | 基于增强现实技术实现互动的方法、系统和终端 | |
CN109478337A (zh) | 用于改进的表面法线估计的系统和方法 | |
CN105704478A (zh) | 用于虚拟和现实场景的立体显示方法、装置及电子设备 | |
CN106254854A (zh) | 三维图像的获得方法、装置及系统 | |
CN103914521B (zh) | 基于混合瓦片金字塔的街景影像存储的方法及装置 | |
CN107707899B (zh) | 包含运动目标的多视角图像处理方法、装置及电子设备 | |
Mattoccia | Stereo vision algorithms for fpgas | |
CN103971392A (zh) | 面向导航的三维视频数据处理方法、装置、系统及终端 | |
US20110018865A1 (en) | Method for providing three dimensional map service and geographic information system | |
US20110242271A1 (en) | Synthesizing Panoramic Three-Dimensional Images | |
CN110231832A (zh) | 用于无人机的避障方法和避障装置 | |
CN205247208U (zh) | 机器人系统 | |
CN102901488B (zh) | 一种自动生成房间平面图的方法及设备 | |
CN114881841A (zh) | 图像生成方法及其装置 | |
CN106231283B (zh) | 一种虚拟立体场景的构建方法、装置及立体显示设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20180726 Address after: 518054 Room 201, building A, 1 front Bay Road, Shenzhen Qianhai cooperation zone, Shenzhen, Guangdong Patentee after: Shenzhen super Technology Co., Ltd. Address before: 518053 H-1 Tung 101, overseas Chinese town, Nanshan District, Shenzhen, Guangdong. Patentee before: Shenzhen SuperD Photoelectronic Co., Ltd. |