对场景进行立体渲染的方法、图形图像处理装置及设备、系统转让专利

申请号 : CN201110070830.8

文献号 : CN102157012B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 徐振华

申请人 : 深圳超多维光电子有限公司

摘要 :

一种对场景进行立体渲染的方法、图形图像处理装置及相应的设备、系统,该方法包括:计算出待渲染场景的与场景和相机间距离相关的深度参数及待渲染场景的场景规模参数;根据所述待渲染场景的与场景和相机间距离相关的深度参数及场景规模参数,确定第一相机和第二相机的零视差面深度;再基于确定的所述零视差面深度,使用所述第一相机和第二相机对所述待渲染场景分别进行渲染。相应地,所述图形图像处理装置包括场景分析模块,参数确定模块和立体渲染模块,所述图形图像处理装置可以用于移动终端、计算机系统和图像获取设备中。本发明可以使得立体渲染后的图形具有更好的立体显示效果。

权利要求 :

1.一种对场景进行立体渲染的方法,包括:

计算出待渲染场景的与场景和相机间距离相关的深度参数及待渲染场景的场景规模参数;

根据所述待渲染场景的与场景和相机间距离相关的深度参数及场景规模参数,确定第一相机和第二相机的零视差面深度;

基于确定的所述零视差面深度,使用所述第一相机和第二相机对所述待渲染场景分别进行渲染;

所述待渲染场景的与场景和相机间距离相关的深度参数包括待渲染场景的最小深度、平均深度和最大深度,所述平均深度等于所述待渲染场景中所有像素点的深度的平均值;

所述待渲染场景的场景规模参数包括所述最大深度减去最小深度得到的深度差。

2.如权利要求1所述的方法,其特征在于:

所述根据所述待渲染场景的与场景和相机间距离相关的深度参数及场景规模参数,确定第一相机和第二相机的零视差面深度,包括:根据所述最小深度、平均深度和最大深度的加权运算结果确定所述零视差面深度;其中,在各自的权值边界之内,所述最小深度的权值随所述最小深度和深度差的增大而增大,所述平均深度和最大深度的权值随所述最小深度和深度差的增大而减小或保持不变。

3.如权利要求2所述的方法,其特征在于:

所述最小深度、平均深度和最大深度的加权运算结果是对所述最小深度、平均深度和最大深度进行加权平均运算得到的结果,各深度参数的权值均大于等于0且小于等于1,且各深度参数的权值之和等于1。

4.如权利要求3所述的方法,其特征在于:

所述最大深度的权值为零,所述最小深度的权值根据所述最小深度和深度差的加权和及相应的权值边界得到,所述加权和在所述权值边界之内时,所述最小深度的权值等于所述加权和;所述加权和超过所述权值边界的上边界或下边界时,所述最小深度的权值等于所述上边界或下边界。

5.如权利要求4所述的方法,其特征在于:

所述最小深度的权值根据所述最小深度和深度差的加权和及相应的权值边界得到,其中,所述最小深度的权值和所述深度差的权值之和的倒数等于远裁剪面和近裁剪面之间的深度差的绝对值,所述相应的权值边界中的上边界小于1。

6.如权利要求1至5中任一权利要求所述的方法,其特征在于:

使用所述第一相机和第二相机对所述待渲染场景分别进行渲染之前,按以下方式确定进行渲染时所述第一相机和第二相机之间的间距:基于确定的零视差面深度,计算出所述待渲染场景中具有所述最大深度的像素点在第一视图和第二视图的视差等于允许的最大正视差时,所述第一相机和第二相机之间的第一间距;

基于确定的零视差面深度,计算出所述待渲染场景中具有所述最小深度的像素点在第一视图和第二视图的视差等于允许的最大负视差时,所述第一相机和第二相机之间的第二间距;

将所述第一间距和第二间距中较小的一个确定为所述间距。

7.一种图形图像处理装置,其特征在于,包括:

场景分析模块,用于计算出待渲染场景的与场景和相机间距离相关的深度参数及待渲染场景的场景规模参数;

参数确定模块,又包括:深度确定子模块,用于根据所述待渲染场景的与场景和相机间距离相关的深度参数及场景规模参数,确定第一相机和第二相机的零视差面深度;

立体渲染模块,用于基于确定的所述零视差面深度,使用所述第一相机和第二相机对所述待渲染场景分别进行渲染;

所述场景分析模块包括:

统计子模块,用于计算出待渲染场景的与场景和相机间距离相关的深度参数,所述深度参数包括待渲染场景的最小深度、平均深度和最大深度,所述平均深度等于所述待渲染场景中所有像素点的深度的平均值;

计算子模块,用于计算出待渲染场景的场景规模参数,所述场景规模参数包括所述最大深度减去最小深度得到的深度差。

8.如权利要求7所述的图形图像处理装置,其特征在于:

所述深度确定子模块是根据所述最小深度、平均深度和最大深度的加权运算结果确定所述零视差面深度;其中,在各自的权值边界之内,所述最小深度的权值随所述最小深度和深度差的增大而增大,所述平均深度和最大深度的权值随所述最小深度和深度差的增大而减小或保持不变。

9.如权利要求8所述的图形图像处理装置,其特征在于:

所述深度确定子模块是根据对所述最小深度、平均深度和最大深度进行加权平均运算得到的结果确定所述零视差面深度,各深度参数的权值均大于等于0且小于等于1,且各深度参数的权值之和等于1。

10.如权利要求9所述的图形图像处理装置,其特征在于:

所述深度确定子模块根据对所述最小深度、平均深度和最大深度进行加权平均运算得到的结果确定所述零视差面深度时,将所述最大深度的权值设为零,根据所述最小深度和深度差的加权和及相应的权值边界得到所述最小深度的权值,所述加权和在所述权值边界之内时,所述最小深度的权值等于所述加权和;所述加权和超过所述权值边界的上边界或下边界时,所述最小深度的权值等于所述上边界或下边界。

11.如权利要求10所述的图形图像处理装置,其特征在于:

所述深度确定子模块根据所述最小深度和深度差的加权和及相应的权值边界得到所述最小深度的权值,其中,所述最小深度的权值和所述深度差的权值之和的倒数等于远裁剪面和近裁剪面之间的深度差的绝对值。

12.如权利要求7所述的图形图像处理装置,其特征在于:

所述图形图像处理装置基于中央处理器(CPU)、协处理器(GPU)、可编程逻辑器件(FPGA)和专用集成电路(ASIC)中的一种或多种实现。

13.如权利要求7所述的图形图像处理装置,其特征在于:

所述参数确定模块还包括间距确定子模块,用于确定进行渲染时所述第一相机和第二相机之间的间距;

所述参数确定模块又包括:

第一运算单元,用于基于确定的零视差面深度,计算出所述待渲染场景中具有所述最大深度的像素点在第一视图和第二视图的视差等于设定的最大正视差时,所述第一相机和第二相机之间的第一间距;

第二运算单元,用于基于确定的零视差面深度,计算出所述待渲染场景中具有所述最小深度的像素点在第一视图和第二视图的视差等于设定的最大负视差时,所述第一相机和第二相机之间的第二间距;

判决单元,用于将所述第一间距和第二间距中较小的一个确定为所述间距。

14.一种移动终端,包括立体显示器,其特征在于,还包括如权利要求7至13中任一权利要求所述的图形图像处理装置,所述图形图像处理装置使用第一相机和第二相机对所述待渲染场景分别进行渲染后,将渲染得到的两幅图形传送到所述立体显示器进行显示。

15.一种计算机系统,包括图形存储装置、图形图像处理装置和立体显示装置,其特征在于:所述图形存储装置,用于保存待渲染场景的图像数据和属性数据,其中,所述属性数据包括所述待渲染场景中各像素点的深度;

所述图形图像处理装置,采用如权利要求7至13中任一权利要求所述的图形图像处理装置,其中,所述待渲染场景中各像素点的深度从所述图形存储装置中读取,且在使用第一相机和第二相机对所述待渲染场景分别进行渲染后,将渲染得到的两幅图形传送到所述立体显示装置;

所述立体显示装置,用于基于所述两幅图形对所述待渲染场景进行立体显示。

16.一种图像获取设备,包括图像获取装置和图像显示设备,其特征在于,还包括如权利要求7至13中任一权利要求所述的图形图像处理装置,所述图形图像处理装置计算所使用的所述待渲染场景中各像素点的深度从所述图像获取装置得到,在使用第一相机和第二相机对所述待渲染场景分别进行渲染后,将渲染得到的两幅图形传送到所述图像显示设备。

17.如权利要求16所述的图像获取设备,其特征在于,所述图像获取设备为立体照相机或者立体摄影机。

说明书 :

对场景进行立体渲染的方法、图形图像处理装置及设备、系

技术领域

[0001] 本发明涉及一种图形处理技术,特别是涉及一种对场景进行立体渲染的方法、图形图像处理装置及设备、系统。

背景技术

[0002] 人眼的眼球在看一个物体的时候,首先会找到一个感兴趣的点,从而两个眼球会去汇聚(convergence)。然后眼球会变焦,把眼球的焦点调节到正好能够使得物体能成像在焦点处,这时成的像是最清晰的。但是对于立体显示器而言,人眼的眼球永远是盯着立体显示器的屏幕观看的,只是由于左右眼看到的图像不同,形成视差,从而产生了立体感。
[0003] 在观看立体显示器时造成疲劳的一个很大的原因就是焦点跟汇聚点的不匹配,不匹配的程度越大,疲劳感越强。以图1a为例,图中的两个黑点表示人的两只眼球,空心的“十”字表示物体。当人眼想看屏幕里边(凹进)的一个物体时,本应该调节使得眼球变焦,直到两只眼球的焦点(focus)与该物体(汇聚点)匹配上,此时的视差(即两个光轴与屏幕的交点之间的距离)为d。但是,现在由于人眼盯着屏幕,两只眼球的焦点落在屏幕上,而汇聚点不变,视差为0。所以,|d-0|可以作为衡量这种不匹配的一个值。图1b表示了人眼想看屏幕外边(凸出)的物体时形成视差d的情形。
[0004] 在2D技术中的渲染只需要用一个相机进行渲染,在3D技术如三维游戏中对场景进行立体渲染以用于立体显示时,需要得到两幅带有视差的视图,所以需要使用第一相机和第二相机(文中的相机均指立体渲染时使用的虚拟相机,也可称为左相机和右相机)。请参照图2,将2D环境下的单个相机分别向左偏移Lsep/2和向右偏移Lsep/2得到第一相机和第二相机。α是相机的开角,Lsep是第一相机和第二相机的间距,Zcon是第一相机和第二相机的零视差面深度,即第一相机和第二相机的汇聚点与第一相机和第二相机间连线之间的距离,Lsep和Zcon定下来后,相机的光轴与第一相机和第二相机之间连线所成的角度β也就确定了。
[0005] 对场景进行立体渲染以用于立体显示时,Lsep和Zcon对立体显示效果非常重要,Zcon决定了场景的哪些部分会显示在屏幕外面(凸出),哪些部分会显示在屏幕里面(凹进),Lsep也与场景中物体凹进、凸出的程度有关。所以这两个参数直接决定了立体显示的场景的真实感和舒适感。现有技术对场景进行立体渲染时,大部分都是固定Lsep,而将Zcon设在场景中间,这样只能保证出现立体效果,但不能给观看者带来尽可能真实的立体效果。

发明内容

[0006] 本发明要解决的技术问题是提供一种对场景进行立体渲染的方法,该方法使得立体渲染后的图形具有更好的立体显示效果。
[0007] 为了解决上述问题,本发明提供了一种对场景进行立体渲染的方法,包括:
[0008] 计算出待渲染场景的与场景和相机间距离相关的深度参数及待渲染场景的场景规模参数;
[0009] 根据所述待渲染场景的与场景和相机间距离相关的深度参数及场景规模参数,确定第一相机和第二相机的零视差面深度;
[0010] 基于确定的所述零视差面深度,使用所述第一相机和第二相机对所述待渲染场景分别进行渲染。
[0011] 较佳地,
[0012] 所述待渲染场景的与场景和相机间距离相关的深度参数包括待渲染场景的最小深度、平均深度和最大深度,所述平均深度等于所述待渲染场景中所有像素点的深度的平均值。
[0013] 所述待渲染场景的场景规模参数包括所述最大深度减去最小深度得到的深度差。
[0014] 较佳地,
[0015] 所述根据所述待渲染场景的与场景和相机间距离相关的深度参数及场景规模参数,确定第一相机和第二相机的零视差面深度,包括:
[0016] 根据所述最小深度、平均深度和最大深度的加权运算结果确定所述零视差面深度;其中,在各自的权值边界之内,所述最小深度的权值随所述最小深度和深度差的增大而增大,所述平均深度和最大深度的权值随所述最小深度和深度差的增大而减小或保持不变。
[0017] 较佳地,
[0018] 所述最小深度、平均深度和最大深度的加权运算结果是对所述最小深度、平均深度和最大深度进行加权平均运算得到的结果,各深度参数的权值均大于等于0且小于等于1,且各深度参数的权值之和等于1。
[0019] 较佳地,
[0020] 所述最大深度的权值为零,所述最小深度的权值根据所述最小深度和深度差的加权和及相应的权值边界得到,所述加权和在所述权值边界之内时,所述最小深度的权值等于所述加权和;所述加权和超过所述权值边界的上边界或下边界时,所述最小深度的权值等于所述上边界或下边界。
[0021] 较佳地,
[0022] 所述最小深度的权值根据所述最小深度和深度差的加权和及相应的权值边界得到,其中,所述最小深度的权值和所述深度差的权值之和的倒数等于远裁剪面和近裁剪面之间的深度差的绝对值,所述相应的权值边界中的上边界小于1。
[0023] 较佳地,
[0024] 使用所述第一相机和第二相机对所述待渲染场景分别进行渲染之前,按以下方式确定进行渲染时所述第一相机和第二相机之间的第一间距:
[0025] 基于确定的零视差面深度,计算出所述待渲染场景中具有所述最大深度的像素点在第一视图和第二视图的视差等于允许的最大正视差时,所述第一相机和第二相机之间的第二间距;
[0026] 基于确定的零视差面深度,计算出所述待渲染场景中具有所述最小深度的像素点在第一视图和第二视图的视差等于允许的最大负视差时,所述第一相机和第二相机之间的第三间距;
[0027] 将所述第二间距和第三间距中较小的一个确定为所述第一间距。
[0028] 本发明要解决的另一技术问题是提供一种图形图像处理装置,该图形图像处理装置对场景进行立体渲染后得到的图形具有更好的立体显示效果。
[0029] 为了解决上述问题,本发明提供了一种图形图像处理装置,其特征在于,包括:
[0030] 场景分析模块,用于计算出待渲染场景的与场景和相机间距离相关的深度参数及待渲染场景的场景规模参数;
[0031] 参数确定模块,又包括:深度确定子模块,用于根据所述待渲染场景的与场景和相机间距离相关的深度参数及场景规模参数,确定第一相机和第二相机的零视差面深度;
[0032] 立体渲染模块,用于基于确定的所述零视差面深度,使用所述第一相机和第二相机对所述待渲染场景分别进行渲染。
[0033] 较佳地,
[0034] 所述场景分析模块包括:
[0035] 统计子模块,用于计算出待渲染场景的与场景和相机间距离相关的深度参数,所述深度参数包括待渲染场景的最小深度、平均深度和最大深度,所述平均深度等于所述待渲染场景中所有像素点的深度的平均值;
[0036] 计算子模块,用于计算出待渲染场景的场景规模参数,所述场景规模参数包括所述最大深度减去最小深度得到的深度差。
[0037] 较佳地,
[0038] 所述深度确定子模块是根据所述最小深度、平均深度和最大深度的加权运算结果确定所述零视差面深度;其中,在各自的权值边界之内,所述最小深度的权值随所述最小深度和深度差的增大而增大,所述平均深度和最大深度的权值随所述最小深度和深度差的增大而减小或保持不变。
[0039] 较佳地,
[0040] 所述深度确定子模块是根据对所述最小深度、平均深度和最大深度进行加权平均运算得到的结果确定所述零视差面深度,各深度参数的权值均大于等于0且小于等于1,且各深度参数的权值之和等于1。
[0041] 较佳地,
[0042] 所述深度确定子模块根据对所述最小深度、平均深度和最大深度进行加权平均运算得到的结果确定所述零视差面深度时,将所述最大深度的权值设为零,根据所述最小深度和深度差的加权和及相应的权值边界得到所述最小深度的权值,所述加权和在所述权值边界之内时,所述最小深度的权值等于所述加权和;所述加权和超过所述权值边界的上边界或下边界时,所述最小深度的权值等于所述上边界或下边界。
[0043] 较佳地,
[0044] 所述深度确定子模块根据所述最小深度和深度差的加权和及相应的权值边界得到所述最小深度的权值,其中,所述最小深度的权值和所述深度差的权值之和的倒数等于远裁剪面和近裁剪面之间的深度差的绝对值。
[0045] 较佳地,
[0046] 所述图形图像处理装置基于中央处理器(CPU)、协处理器(GPU)、可编程逻辑器件(FPGA)和专用集成电路(ASIC)中的一种或多种实现。
[0047] 较佳地,
[0048] 所述参数确定模块还包括间距确定子模块,用于确定进行渲染时所述第一相机和第二相机之间的第一间距;
[0049] 所述参数确定模块又包括:
[0050] 第一间距运算单元,用于基于确定的零视差面深度,计算出所述待渲染场景中具有所述最大深度的像素点在第一视图和第二视图的视差等于设定的最大正视差时,所述第一相机和第二相机之间的第二间距;
[0051] 第二间距运算单元,用于基于确定的零视差面深度,计算出所述待渲染场景中具有所述最小深度的像素点在第一视图和第二视图的视差等于设定的最大负视差时,所述第一相机和第二相机之间的第三间距;
[0052] 判决单元,用于将所述第二间距和第三间距中较小的一个确定为所述第一间距。
[0053] 上述方法和图形图像处理装置在对场景进行立体渲染时,根据场景规模和场景与相机间距离的特点自适应地计算出第一相机和第二相机的零视差面深度,使得立体渲染后的图形可以给观看者带来更真实的立体效果。此外,还可以通过对第一相机和第二相机的间距的限制,保证观看者的舒适感,取得尽可能好的立体效果。上述方案可以应用于如三维游戏、三维动画和三维电影等需要对场景进行立体渲染和显示的场合。
[0054] 本发明要解决的又一技术问题是提供一种移动终端,该移动终端对场景进行立体渲染后得到的图形具有更好的立体显示效果。
[0055] 为了解决上述问题,本发明提供了一种移动终端,包括立体显示器,其特征在于,还包括如本发明提供的图形图像处理装置,所述图形图像处理装置使用第一相机和第二相机对所述待渲染场景分别进行渲染后,将渲染得到的两幅图形传送到所述立体显示器进行显示。
[0056] 因为采用了上述图形图像处理装置,该移动终端对场景进行立体渲染后得到的图形具有更好的立体显示效果。
[0057] 本发明要解决的又一技术问题是提供一种计算机系统,该计算机系统对场景进行立体渲染后得到的图形具有更好的立体显示效果。
[0058] 为了解决上述问题,本发明提供了一种计算机系统,包括图形存储装置、图形图像处理装置和立体显示装置,其特征在于:
[0059] 所述图形存储装置,用于保存待渲染场景的图像数据和属性数据,其中,所述属性数据包括所述待渲染场景中各像素点的深度;
[0060] 所述图形图像处理装置,采用本发明提供的图形图像处理装置,其中,所述待渲染场景中各像素点的深度从所述图形存储装置中读取,且在使用第一相机和第二相机对所述待渲染场景分别进行渲染后,将渲染得到的两幅图形传送到所述立体显示装置;
[0061] 所述立体显示装置,用于基于所述两幅图形对所述待渲染场景进行立体显示。
[0062] 因为采用了上述图形图像处理装置,该计算机系统对场景进行立体渲染后得到的图形具有更好的立体显示效果。
[0063] 本发明要解决的又一技术问题是提供一种图像获取设备,该图像获取设备对场景进行立体渲染后得到的图形具有更好的立体显示效果。
[0064] 为了解决上述问题,本发明提供了一种图像获取设备,包括图像获取装置和图像显示设备,其特征在于,还包括本发明提供的图形图像处理装置,所述图形图像处理装置计算所使用的所述待渲染场景中各像素点的深度从所述图像获取装置得到,在使用第一相机和第二相机对所述待渲染场景分别进行渲染后,将渲染得到的两幅图形传送到所述图像显示设备。
[0065] 较佳地,所述图像获取设备可以为立体照相机或者立体摄影机。
[0066] 因为采用了上述图形图像处理装置,该图像获取设备对场景进行立体渲染后得到的图形具有更好的立体显示效果。

附图说明

[0067] 图1a和图1b分别是人眼观看屏幕里边(凹进)和屏幕外边(凸出)的物体的示意图;
[0068] 图2是使用第一相机和第二相机对场景进行渲染时相关参数的示意图;
[0069] 图3a和图3b分别是近距离渲染小场景和远距离渲染大场景时得到的示例性的立体显示图像;
[0070] 图4是本发明第一实施例对场景进行立体渲染的方法的流程图;
[0071] 图5是使用单相机对场景进行渲染的示意图;
[0072] 图6是最小深度的权值与场景规模参数Zs、相机与场景间的最小距离Zmin的关系的示意图;
[0073] 图7是本发明第一实施例图形图像处理装置的模块图;
[0074] 图8a和图8b分别是待渲染场景中具有最大深度和最小深度的像素点在第一视图和第二视图上的视差的示意图。

具体实施方式

[0075] 为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
[0076] 第一实施例
[0077] 本实施例对多个物体组成的场景进行立体渲染时,根据场景规模和相机与场景间的距离的特点,对第一相机和第二相机的零视差面深度进行调整,可以取得理想的立体显示效果。
[0078] 人们在近距离观察小场景时,会将注意力放在某个物体上,希望看到更多细节,所以在立体显示时,如果让场景中的物体凸出的多一些,会显得更真实。如图3a的示例,近距离观察少数几个物体组成的小场景时,此时希望前面的物体凸出更多一些。而人们在远距离观察大场景时,会想更多地得到全景的感受,所以在立体显示时如果让场景中的物体凹进的多一些,可以带来更强的立体纵深感。远距离观察很多物体组成的大场景时,如图3b的示例,因为场景规模很大,为了得到一种纵深感,可以让场景中的物体凹进的多一些,同时也可以避免场景被显示器切边的影响。
[0079] 为此,可以先计算出待渲染场景的与场景和相机间距离相关的深度参数以及场景规模参数;然后,根据所述与场景和相机间距离相关的深度参数以及场景规模参数确定第一相机和第二相机的零视差面深度;最后,基于所述零视差面深度,使用第一相机和第二相机对所述待渲染场景分别进行渲染。
[0080] 对场景进行立体渲染之前,可以使用单相机对3D场景进行绘制,得到待渲染场景。图5示出了普通的使用单相机对3D场景进行绘制的示意图。图中的ABCD所在平面为远裁剪面(Back clipping plane),A’B’C’D’所在平面为近裁剪面(Front clipping plane)。只有在近裁剪面和远裁剪面之间的场景中的像素点才可能被投影到EFGH所在的投影平面(View plane),这两个面之外的部分都会被裁掉。投影到投影平面的各像素点构成了待渲染的场景。文中,近裁剪面和远裁剪面之间的距离表示为Zf-Zn,其中Zf为远裁剪面的深度,Zn为近裁剪面的深度。Zf,Zn在某一应用中可以取为常数。
[0081] 本实施例对场景进行立体渲染的方法如图4所示,包括:
[0082] 步骤110,根据待渲染场景中各像素点的深度,确定待渲染场景的最小深度Zmin、平均深度Zavg和最大深度Zmax,并计算深度差Zs=Zmax-Zmin;
[0083] 待渲染场景中各像素点的深度即这些像素点所在的横断面与第一相机和第二相机所在横断面之间的距离。其中,Zmin为待渲染场景中与相机距离最近的像素点的深度;Zavg为待渲染场景中所有像素点的深度的平均值;Zmax为待渲染场景中与相机距离最远的像素点的深度。Zmin、Zavg和Zmax均是与场景和相机间距离相关的深度参数,其中,Zmin在文中也称为相机与场景间的最小距离,用于表示观察待渲染场景的距离的特点。Zs作为场景规模参数,用于表示待渲染场景的场景规模的特点。上述像素点的深度的数据可以从相应的存储装置如缓存中获取。
[0084] 步骤120,根据最小深度Zmin、平均深度Zavg和最大深度Zmax的加权运算结果确定第一相机和第二相机的零视差面深度Zcon,其中,在各自的权值边界之内,Zmin的权值随Zmin和Zs增大而增大,Zavg和Zmax的权值随Zmin和Zs增大而减小或保持不变;
[0085] 需要说明的是,根据Zmin、Zavg和Zmax的加权运算结果确定Zcon时,Zcon可以根据相应的运算公式计算得到;Zcon也可以根据计算出的Zmin、Zavg和Zmax查找预先根据加权运算保存的结果如包含Zcon与Zmin、Zavg和Zmax的对应关系的表而得到;Zcon也可以结合上述计算和查表两种方式得到。
[0086] 上述Zmin和Zs增大包括Zmin和Zs同时增大,及Zmin和Zs中一个增大一个不变的情况。
[0087] 在相应的权值边界之内,Zmin的权值随Zmin和Zs增大而增大时,可以是只要Zmin和Zs增大,Zmin的权值即增大;也可以是在Zmin和Zs增大一定数值后,Zmin的权值再增大。即Zmin的权值可以连续取值,也可以取离散值。
[0088] 上述加权运算可以采用加权平均运算,即,零视差面深度con可以根据下式计算:
[0089] Zcon=Zmin·α+Zavg·β+Zmax·γ 式(1)
[0090] 其中,α为Zmin的权值,β为Zavg的权值,γ为Zmax的权值,因为是加权平均运算,因此各权值满足:α+β+γ=1,0≤α≤1,0≤β≤1,0≤γ≤1。根据上述权值变化的约束条件,本实施例中,α,β,γ还满足:α随Zmin和Zs增大而增大,且在α增大时,β,γ同时减小或者一个不变一个减小。
[0091] 权值γ可以为固定值也可以根据Zmin和Zs确定,不限定于某种特定的方式。在一个示例中,取γ=0,则式(1)可以表示为:
[0092] Zcon=Zmin·α+Zavg·(1-α) 式(2)
[0093] 此时,0≤α<1,β=1-α。
[0094] 步骤130,基于确定的零视差面深度Zcon,使用第一相机和第二相机对所述待渲染场景分别进行渲染。
[0095] 本步骤中,最小深度Zmin的权值α可以根据Zmin和Zs的加权和及权值α的边界确定,具体可以采用以下方式:
[0096] 令:
[0097] 式(3)
[0098] 其中,Zf为对场景渲染时的远裁剪面的深度,Zn为对场景渲染时的近裁剪面的深度,k为预设的系数,0<k<1。k可以采用经验值,代表了d和s的权重。
[0099] 如图6所示,根据场景规模和相机与场景间距离的特点,大致可以分为近距离渲染小场景(如室内场景)、远距离渲染小场景、近距离渲染大场景(如室外场景)及远距离渲染大场景等情况。其中,Zmin和Zs都小的时候,属于近距离渲染小场景的情况,Zmin和Zs都大的时候,属于远距离渲染大场景的情况。
[0100] 根据本实施例的方法,在Zmin和Zs都小的时候,Zmin的权值α比较小,计算出的第一相机和第二相机的零视差面深度Zcon相对较大,场景中就有较多的部分位于零视差面之前,这样完成立体渲染进行立体显示时,场景中的物体就会凸出的多一些,符合人们近距离观察小场景时想看到更多细节的习惯。而Zmin和Zs都大的时候,Zmin的权值α比较大,计算出的第一相机和第二相机的零视差面深度Zcon相对小一些,场景中就有较多的部分位于零视差面之后,这样完成立体渲染进行立体显示时,场景中的物体就会凹进的多一些,符合人们远距离观察大场景想更多地得到全景感受的习惯。因此,采用本实施例方法对场景进行立体渲染的方法可以给观察者带来更真实的立体效果。
[0101] 相应地,本实施例还提供了一种图形图像处理装置,该图形图像处理装置可以基于中央处理器(CPU)、协处理器(GPU)、可编程逻辑器件(FPGA)和专用集成电路(ASIC)中的一种或多种实现。可以是CPU、GPU运行相应的软件来实现,也可以基于FPGA、ASIC等逻辑电路中的硬件逻辑来实现,或者部分基于硬件逻辑电路,部分基于软件来实现。
[0102] 如图7所示(图中以虚线示出了第二实施例的间距确定子模块202),本实施例的图形图像处理装置包括场景分析模块10、参数确定模块20和立体渲染模块30,其中:
[0103] 所述场景分析模块10,用于计算出待渲染场景的与场景和相机间距离相关的深度参数及待渲染场景的场景规模参数。
[0104] 该场景分析模块10又包括:
[0105] 统计子模块101,用于计算出待渲染场景的与场景和相机间距离相关的深度参数,所述深度参数包括待渲染场景的最小深度、平均深度和最大深度,所述平均深度等于所述待渲染场景中所有像素点的深度的平均值;
[0106] 计算子模块102,用于计算出待渲染场景的场景规模参数,所述场景规模参数包括所述最大深度减去最小深度得到的深度差。
[0107] 所述参数确定模块20,又包括:
[0108] 深度确定子模块201,用于根据所述待渲染场景的与场景和相机间距离相关的深度参数及场景规模参数,确定第一相机和第二相机的零视差面深度。在本实施例中,是根据所述最小深度、平均深度和最大深度的加权运算结果确定所述零视差面深度;其中,在各自的权值边界之内,所述最小深度的权值随所述最小深度和深度差的增大而增大,所述平均深度和最大深度的权值随所述最小深度和深度差的增大而减小或保持不变。上述加权运算可以为加权平均运算,各深度参数的权值均大于等于0且小于等于1,且各深度参数的权值之和等于1。
[0109] 在一个示例中,深度确定子模块将所述最大深度的权值设为零,根据所述最小深度和深度差的加权和及相应的权值边界得到所述最小深度的权值,所述加权和在所述权值边界之内时,所述最小深度的权值等于所述加权和;所述加权和超过所述权值边界的上边界或下边界时,所述最小深度的权值等于所述上边界或下边界。其中,所述最小深度的权值和所述深度差的权值之和的倒数可以等于远裁剪面和近裁剪面之间的深度差的绝对值。
[0110] 所述立体渲染模块30,用于基于确定的所述零视差面深度,使用所述第一相机和第二相机对所述待渲染场景分别进行渲染。
[0111] 上述图形图像处理装置可以应用于具有立体显示器的设备中,如手机、电脑、电视等等中。
[0112] 相应地,本实施例还提供了一种移动终端,包括立体显示器,还包括本实施例的图形图像处理装置,该图形图像处理装置使用第一相机和第二相机对所述待渲染场景分别进行渲染后,将渲染得到的两幅图形传送到所述立体显示器进行显示。
[0113] 相应地,本实施例又提供了一种计算机系统,包括图形存储装置、图形图像处理装置和立体显示装置,其中:
[0114] 所述图形存储装置,用于保存待渲染场景的图像数据和属性数据,其中,所述属性数据包括所述待渲染场景中各像素点的深度;
[0115] 所述图形图像处理装置,采用本实施例的图形图像处理装置,其中,所述待渲染场景中各像素点的深度从所述图形存储装置中读取,且在使用第一相机和第二相机对所述待渲染场景分别进行渲染后,将渲染得到的两幅图形传送到所述立体显示装置;
[0116] 所述立体显示装置,用于基于所述两幅图形对所述待渲染场景进行立体显示。
[0117] 相应地,本实施例再提供了一种图像获取设备,包括图像获取装置和图像显示设备,还包括本实施例的图形图像处理装置,所述图形图像处理装置计算所使用的所述待渲染场景中各像素点的深度从所述图像获取装置得到,在使用第一相机和第二相机对所述待渲染场景分别进行渲染后,将渲染得到的两幅图形传送到所述图像显示设备。所述图像获取设备可以为立体照相机或者立体摄影机。
[0118] 第二实施例
[0119] 第一实施例中,进行渲染时第一相机和第二相机之间的间距Lsep可以按现有技术的方式处理。本实施例则在第一实施例的基础上,采用了下文所述的确定间距Lsep的方法。
[0120] 人眼的间距一般是65mm左右,因此物体在第一视图和第二视图的正负视差不能过大,否则会带来眼睛的疲劳感。物体在第一视图和第二视图的正负视差与第一相机和第二相机的间距、零视差面深度和物体的深度相关,通过预先设置允许的最大正负视差对第一相机和第二相机的间距进行限制。
[0121] 请参照图8a,示出了待渲染场景中具有最大深度的像素点在第一视图和第二视图的视差D1,D1>0,渲染时第一相机和第二相机的零视差面对应于显示屏幕。由图可知:
[0122]
[0123] 式中各参数含义同上文,当D1等于允许的最大正视差时,得到的Lsep记为Lsep1。
[0124] 请参照图8b,示出了待渲染场景中具有最小深度的像素点在第一视图和第二视图的视差D2,D2<0。由图可知:
[0125]
[0126] 将D2等于允许的最大负视差时,得到的Lsep记为Lsep2。
[0127] 本实施例中,最大正视差和最大正负视差可以根据人眼的间距取值,例如,可取[-65mm,65mm]。
[0128] 本实施例对场景进行立体渲染的方法,包括:按第一实施例的步骤110和120处理,得到Zcon后,按上述方式计算得到Lsep1和Lsep2,将Lsep1和Lsep2中较小的一个确定为进行渲染时第一相机和第二相机的间距Lsep。然后,基于确定的Zcon和Lsep,使用第一相机和第二相机对待渲染场景分别进行渲染,生成用于立体显示的两幅图形。
[0129] 按以上方式确定的Lsep,能够保证场景中的所有物体的视差范围在允许的最大正负视差的范围内,从而保证人眼不会感到疲劳。同时,由于Lsep按允许的最大正负视差取值,可以使得场景中的物体凸出或凹入的程度较大,取得更好的立体显示效果。
[0130] 相应地,本实施例对场景进行立体渲染的系统,在第一实施例系统的基础上,参数确定模块还包括:
[0131] 间距确定子模块202,用于确定进行渲染时所述第一相机和第二相机之间的第一间距。
[0132] 所述间距确定子模块202又包括:
[0133] 第一间距运算单元,用于基于确定的零视差面深度,计算出所述待渲染场景中具有所述最大深度的像素点在第一视图和第二视图的视差等于设定的最大正视差时,所述第一相机和第二相机之间的第二间距;
[0134] 第二间距运算单元,用于基于确定的零视差面深度,计算出所述待渲染场景中具有所述最小深度的像素点在第一视图和第二视图的视差等于设定的最大负视差时,所述第一相机和第二相机之间的第三间距;
[0135] 判决单元,用于将所述第二间距和第三间距中较小的一个确定为所述第一间距。
[0136] 本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各装置/模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
[0137] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。