使用偏移和分色实现立体三维视觉效果的方法和装置的制作方法

文档序号:7779088阅读:393来源:国知局
专利名称:使用偏移和分色实现立体三维视觉效果的方法和装置的制作方法
技术领域
本发明一般地涉及三维(3D)图形渲染,更具体地,本发明涉及在3D图形渲染过程中使用偏移和分色来产生立体视觉效果的方法和装置。
背景技术
3D图形渲染管线(Rendering Pipeline)负责执行一系列必要的步骤从而把3D场景转换为可以在显示器上显示的二维(2D)图像。3D图形渲染管线通常大致包括以下步骤:从局部坐标系转换到世界坐标系;从世界坐标系转换到视图坐标系;投影变换;和视口(viewport)变换。目前比较流行的两大图形应用程序接口(API) OpenGL和Direct3D都有自己的渲染管线。为了产生带给观赏者身临其境的体验的立体3D图像,传统的方法是通过两眼的视角差异,分别产生给左、右眼观看的图像,并且通过各种方式叠合这两个图像,使观看者产生立体感受。当要产生实时的立体3D图像时,则需要实时地产生左、右眼的图像,使观看者持续感受到立体感。但是这个过程目前必须通过修改渲染管线来完成。NVidia公司的3D视觉技术就是通过大幅修改渲染管线中的驱动程序来完成的。然而这通常意味着复杂的运算。并且,要得到左眼和右眼的图像,需要知道目前观看者的世界位置。通过在目前观看者的世界位置处设置两台虚拟的摄影机来产生供左、右眼观看的左眼和右眼图像。然而,在很多情况下,我们无法知道三维世界中观看者的位置,所以无法取得左右眼的位置。此外,产生立体视觉的技术通常分为两大类:基于眼镜的和不基于眼镜的。基于眼镜的立体视觉技术又包括色差式、快门式、偏光式等。基于眼镜的立体视觉技术优点在于成本通常较低并且对观看者的头部运动范围没有特殊要求。

发明内容
考虑到上述问题,本发明提出一种使用偏移和分色来实现立体三维视觉效果的方法和装置。该方法和装置在完全不知道原本三维世界中观看者的位置的情况下,就能够通过视口(viewport)偏移和分色实现立体三维视觉效果。并且,与现有技术相比,本发明无需修改渲染管线中的驱动程序。根据本发明的一个方面,一种实现立体三维视觉效果的方法包括:接收3D场景;对滤除了第一颜色分量的所接收3D场景执行3D绘图命令来生成第一 2D图像,同时记录所述3D绘图命令;对视口进行水平偏移;对滤除了第二颜色分量的视口内的3D场景执行所记录的3D绘图命令来生成第二 2D图像,并将所述第二 2D图像叠合到所述第一 2D图像上;以及输出叠合后的2D图像,该2D图像通过滤光眼镜产生立体三维视觉效果。对视口进行水平偏移的偏移量可以是预定的值。第一颜色可以是红色,第二颜色可以是蓝色,并且滤光眼镜是红蓝滤光眼镜。可替代地,第一颜色可以是红色,第二颜色可以是蓝色,并且滤光眼镜是红蓝滤光眼镜。该方法是在三维图形渲染过程中(比如在OpenGL和Direct3D的渲染管线中)执行的,并且,叠合是通过不清除颜色缓冲器(ColorBuffer)来实现的。根据本发明的另一方面,一种实现立体三维视觉效果的装置,包括:接收装置,用于接收3D场景;视口偏移装置,用于对视口进行水平偏移;分色装置,用于对滤除了第一颜色分量的所接收3D场景执行3D绘图命令来生成第一 2D图像,同时记录所述3D绘图命令,并且用于对滤除了第二颜色分量的经偏移的视口内的3D场景执行所记录的3D绘图命令来生成第二 2D图像,并将所述第二 2D图像叠合到所述第一 2D图像上;以及输出装置,用于输出叠合后的2D图像,该2D图像通过滤光眼镜产生立体三维视觉效果。根据本发明的又一方面,一种实现立体三维视觉效果的终端设备包括上述装置。例如,该终端设备可以是移动电话、PDA、平板电脑、膝上型计算机、桌上型计算机、TV等设备。本发明通过对视口进行水平偏移并对所执行的3D绘图命令进行记录,能够在完全不知道原本三维世界中观看者的位置的情况下产生立体三维视觉效果。这样,可以对所有原本没有立体三维效果的画面,产生适用于滤光眼镜的立体三维视觉效果。另外,本发明不需要对渲染管线中的现有驱动程序进行修改。此外,本发明能够实时地生成通过滤光眼镜产生立体三维视觉效果的2D图像。


图1A示出当眼睛感觉物体呈现在显示屏幕上时的左右眼投影情形;图1B示出当眼睛感觉物体呈现在显示屏幕前方时的左右眼投影情形;图2示出了根据本发明的使用偏移和分色实现立体三维视觉效果的装置的内部结构框图;以及图3是示出根据本发明的使用偏移和分色实现立体三维视觉效果的方法的流程图。
具体实施例方式在下面对本发明的详细描述中阐述了很多具体细节,以便于充分理解本发明。但是,没有这些具体细节也可以实施本发明,对于本领域的技术人员来说是很明显的。在另外一些例子里,没有对公知的方法、过程、部件和电路进行详细的描述,以避免喧宾夺主、淡化了本发明的主要内容。另外,下文中将结合特定实施例描述本发明,但本发明也可以以硬件、软件、固件或其结合的形式实现。如上所述,当要产生实时的立体3D图像时,则需要实时的产生左、右眼的图像,但是这个过程目前必须通过修改渲染管线来完成。并且,要得到左眼和右眼的图像,需要知道目前观看者的世界位置。而在很多情况下,我们无法知道三维世界中观看者的位置,所以无法取得左右眼的位置。本发明通过对视口进行水平偏移,能够在完全不知道原本三维世界中观看者的位置的情况下产生立体三维视觉效果。这样,可以对所有原本没有立体三维效果的画面,产生适用于滤光眼镜的立体三维视觉效果。另外,本发明不需要对渲染管线中的现有驱动程序进行修改。此外,本发明能够实时地生成通过滤光眼镜产生立体三维视觉效果的2D图像。
以下,参考附图来详细描述根据本发明的一个具体实施例。图1A和IB分别示出了当眼睛感觉物体呈现在显示屏幕上时和在显示屏幕前方时的左右眼投影情形。通过比较两图可以看出,当产生立体视觉时,左右眼的投影画面有了位移(即偏移)。具体地,在图1A中,指向左眼L的四条线段代表左眼看到屏幕(用线段AB表示)上的板子的视线,并且指向左眼R的四条线段代表右眼看到屏幕AB上的板子的视线。指向左眼L的四条线段之中外侧的实线表示左眼看整个屏幕的视线边缘(从BL到AL),而内侧的虚线表示左眼看到板子的视线边缘。指向右眼R的四条线段之中外侧的实线表示右眼看整个屏幕的视线边缘(从AR到BR),而内侧的虚线表示左眼看到板子的视线边缘。在立体红蓝镜片上,两眼的视线范围在中间有重复的部分。在两眼视线范围重复的部分(AL到BR)中,两条指向左眼的虚线间的部分表示左眼看到的对象在左眼画面上呈现的位置,而两条指向右眼的虚线间的部分表示右眼看到的对象在右眼画面上出现的位置。两者交叠的区域用更深的颜色来表示。如果这时候我们把左右眼的画面进行偏移,也就是让中间的交叠范围变大,如图1B所示,则左右眼观看对象的视线交汇处就会感觉往眼睛方向前移(屏幕AB左侧的对象),这时候就会感觉原本的对象看似往眼前突出。可以跟图1A对比,利用左右眼投影画面的位移,让对象看起来更近一些。这表示并不需要在三维绘图转换成屏幕上的影像时,使用两个摄影机来模拟左右眼的视差来产生立体影像。而是可以直接把屏幕上的影像分色后做左右偏移,一样能产生立体感的效果。图2示出根据本发明的使用偏移和分色实现立体三维视觉效果的终端设备200的内部结构框图。设备200可以是移动电话、PDA、平板电脑、膝上型计算机、桌上型计算机、TV等设备。如图所示,设备200包括3D场景接收装置201、分色装置202、视口偏移装置203和2D图像输出装置。如上所述,3D图形渲染管线负责执行一系列必要的步骤从而把3D场景转换为可以在显示器上显示的2D图像。3D场景接收装置201接收并存储输入到3D图形渲染管线中的3D场景,然后将所接收到的3D场景逐个输出给分色装置202和视口偏移装置203。分色装置202从接收装置201接收3D场景,滤除所接收3D场景中的红色分量,然后对所接收场景中的剩余分量执行3D绘图命令以生成第一 2D图像,同时记录所执行的3D绘图命令。视口偏移装置203对视口进行水平偏移,该水平偏移的量是通过多次实验确定的可适用于设备200的预定值。这里,将视口偏移预定的值仅是示例性的,在本发明的其他实施例中,可以根据实际需要灵活地确定视口的偏移量。分色装置202还从视口偏移装置203接收偏移后的视口中的3D场景,从中滤除蓝色分量,然后执行所记录的3D绘图命令以生成第二 2D图像。另外,分色装置202将第二 2D图像叠合到第一 2D图像上。这里,在OpenGL环境下,该叠合可以通过在对偏移后的视口中的3D场景执行相应处理时不清除颜色缓冲器来实现。输出装置204将叠合后的2D图像输出,该2D图像通过红蓝滤光眼镜可产生立体三维视觉效果。虽然在本示例中,先产生滤除了红色分量的2D图像,再产生滤除了蓝色分量的2D图像。但这仅是示例性的。可替代地,可以先产生滤除了蓝色分量的2D图像,再产生滤除了红色分量的2D图像。或者,可以先产生滤除了一组颜色分量的2D图像,再产生滤除了另一组颜色分量的2D图像。然而,在这种情况下,需要使用相应的滤光眼镜。图3是示出根据本发明的使用偏移和分色实现立体三维视觉效果的方法的流程图。在步骤S301,接收3D场景。在步骤S302,对滤除了红色分量的所接收3D场景执行3D绘图命令来生成第一 2D图像,同时记录所述3D绘图命令。在步骤S303,对视口进行水平偏移,水平偏移的量是一预定值;在步骤S304,对滤除了蓝色分量的视口内的3D场景执行所记录的3D绘图命令来生成第二 2D图像,并将所述第二 2D图像叠合到所述第一 2D图像上。在步骤S305,输出叠合后的2D图像,该2D图像通过红蓝滤光眼镜产生立体三维视觉效果。在本发明的一个具体示例中,上述方法是在应用程序接口 OpenGL环境下实现的,该方法的具体步骤如下:1.收到glClear O命令时开始记录GL绘图命令;2.先清除深度缓冲器(Z-buffer)与颜色缓冲器(Color buffer),并只开启红色通道;3.执行与记录gl绘图命令;4.收到 glFinishO 时,先不执行 glFinish();5.先执行 glClearO 清除 Z-buffer ;6.偏移视口 ;7.只开启蓝色通道;8.将之前记录的命令重新执行;以及9.执行 glFinishO。这里的红色通道指滤除红色分量的通道,相应的,这里的蓝色通道指滤除蓝色分量的通道。以上给出了本发明的方法在OpenGL环境下实现的具体步骤。然而,本发明并不限于此,本发明也可以在其他的应用程序接口中实现,比如在Direct3D中实现。本发明通过仅在3D图形渲染过程中简单地对视口进行水平偏移,就能够实现立体三维的视觉效果。本发明并不需要知道观察者在世界空间中的位置。因此,本发明可以对原本没有立体三维效果的画面,产生适用于滤光眼镜的立体三维视觉效果。另外,本发明不需要对渲染管线中的现有驱动程序进行修改。此外,本发明能够实时地生成通过滤光眼镜产生立体三维视觉效果的2D图像。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神之后,作出各种改变、修改和添加,或者改变步骤之间的顺序。本发明的元素可以实现为硬件、软件、固件或者它们的组合,并且可以用在它们的系统、子系统、部件或者子部件中。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。本发明可以以其他的具体形式实现,而不脱离其精神和本质特征。因此,当前的实施例在所有方面都被看作是示例性的而非限定性的,本发明的范围由所附权利要求而非上述描述定义,并且,落入权利要求的含义和等同物的范围内的全部改变从而都被包括在本发明的范围之中。
权利要求
1.一种实现立体三维视觉效果的方法,包括: 接收3D场景; 对滤除了第一颜色分量的所接收3D场景执行3D绘图命令来生成第一 2D图像,同时记录所述3D绘图命令; 对视口进行水平偏移; 对滤除了第二颜色分量的视口内的3D场景执行所记录的3D绘图命令来生成第二 2D图像,并将所述第二 2D图像叠合到所述第一 2D图像上;以及 输出叠合后的2D图像,该2D图像通过滤光眼镜产生立体三维视觉效果。
2.根据权利要求1所述的方法,其中,对所述视口进行水平偏移的偏移量是预定的值。
3.根据权利要求1所述的方法,其中,所述第一颜色是红色,所述第二颜色是蓝色,并且其中,所述滤光眼镜是红蓝滤光眼镜。
4.根据权利要求1所述的方法,其中,所述第一颜色是蓝色,所述第二颜色是红色,并且其中,所述滤光眼镜是红蓝滤光眼镜。
5.根据权利要求1所述的方法,其中,所述方法是在三维图形渲染过程中执行的,并且,所述叠合是通过不清除颜色缓冲器来实现的。
6.根据权利要求5所述的方法,其中,所述三维图形渲染过程使用应用程序接口OpenGL中的三维图形渲染管线来实现。
7.根据权利要求1所述的方法,其中,所述叠合后的2D图像是实时地生成的。
8.一种实现立体三维视觉效果的装置,包括: 接收装置,用于接收3D场景; 视口偏移装置,用于对视口进行水平偏移; 分色装置,用于对滤除了第一颜色分量的所接收3D场景执行3D绘图命令来生成第一2D图像,同时记录所述3D绘图命令,并且用于对滤除了第二颜色分量的经偏移的视口内的3D场景执行所记录的3D绘图命令来生成第二 2D图像,并将所述第二 2D图像叠合到所述第一 2D图像上;以及 输出装置,用于输出叠合后的2D图像,该2D图像通过滤光眼镜产生立体三维视觉效果O
9.根据权利要求8所述的装置,其中,对所述视口进行水平偏移的偏移量是预定的值。
10.根据权利要求8所述的装置,其中,所述第一颜色是红色,所述第二颜色是蓝色,并且其中,所述滤光眼镜是红蓝滤光眼镜。
11.根据权利要求8所述的装置,其中,所述第一颜色是蓝色,所述第二颜色是红色,并且其中,所述滤光眼镜是红蓝滤光眼镜。
12.根据权利要求8所述的装置,其中,所述叠合是通过不清除颜色缓冲器来实现的。
13.根据权利要求8所述的装置,其中,所述叠合后的2D图像是实时地生成的。
14.一种实现立体三维视觉效果的终端设备,包括根据权利要求8-13中任意一项所述的装置。
全文摘要
本发明提供了一种使用偏移和分色实现立体三维视觉效果的方法和装置。实现立体三维视觉效果的方法包括接收3D场景;对滤除了第一颜色分量的所接收3D场景执行3D绘图命令来生成第一2D图像,同时记录所述3D绘图命令;对视口进行水平偏移;对滤除了第二颜色分量的视口内的3D场景执行所记录的3D绘图命令来生成第二2D图像,并将所述第二2D图像叠合到所述第一2D图像上;以及输出叠合后的2D图像,该2D图像通过滤光眼镜产生立体三维视觉效果。
文档编号H04N13/00GK103167298SQ20111041864
公开日2013年6月19日 申请日期2011年12月9日 优先权日2011年12月9日
发明者江国昌, 叶思义 申请人:金耀有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1