用于光栅化图形数据以进行立体显示的图形接口和方法

文档序号:7944145阅读:349来源:国知局
专利名称:用于光栅化图形数据以进行立体显示的图形接口和方法
技术领域
一般来说,本发明涉及图形处理,具体地说,涉及用于光棚-化图 形数据的图形接口和方法。
背景技术
10 人类通过从两个稍微不同的有利位置感知世界而具有立体视觉。 每只眼睛看到世界的不同景观,而大脑利用这种差异来推断深度和距
离,从而感知三维(3D)视觉图景。
现有技术中正出现用于向观察者呈现立体图像(即,三维显示的 图像)的液晶显示(LCD)设备或面板。例如,授予Thomas等人的
15 美国专利号6,798,409公开了这样一种方法和显示器,其中提供3D沖莫 型的表示来作为3D图像进行呈现。该图像可在球状或双凸透镜状微 透镜阵列下呈现,以使得在不同的视角呈现出不同的图像。使用一组 正射投影来渲染这些图像。
授予Wasserman等人的美国专利号6,833,834公开了一种包括帧
20 緩冲器、写地址产生器和像素緩冲器的图形系统。写地址产生器为从 帧緩冲器输出的像素突发中的每个像素计算写地址。写地址对应于每 个相应像素在突发中的相对显示顺序。将突发中的每个像素存储到其 在像素緩冲器中的写地址。
授予Allen的美国专利号6,888,540公开了 一种用于从不同观察点
25 产生多个图像以显示3D场景的方法。使用包括第一、第二和第三正 交轴的齐次坐标系统、以及齐性值产生该场景的才莫型。从第一观察点 获得第一显示图像,并通过使用位移值和齐性值更新第一显示图像的 坐标值来获得一个或多个另外的显示图像。齐性值的使用减少了通过后处理获得另外图像所需的计算的复杂性。
授予Isakovic等人的美国专利申请公开号US 2002/0154145公开 了用于图像数据计算和同步数据输出的装置和方法。它还公开了用于 产生和复制能够合起来感知成一个具有三维效果的光图像的两个局 5部光图像的装备。该装置具有包括图形主机和至少两个图形客户机的 主机-客户机结构,图形主机和图形客户机通过第 一消息通道连接在
一起,第一消息通道用于交换第一消息,由此允许使局部光图像的计 算和投影同步。
授予Snuffer的美国专利申请公开号US 2004/00853IO公开了用于 10 提取和处理由OpenGL或常规二维监视器的其他基于API的图形应用 产生的三维图形数据以使得可使用该图形数据来在3D体显示系统上 显示三维图像的系统和方法。截取器净莫块截取送到OpenGL的指令, 并基于所截取的指令提取数据以供3D体显示系统使用。
授予Harmon等人的美国专利申请公开号US 2004/0179262公开
15 了适合与多视图立体显示器配合使用以产生图像的方法。截取从应用 传递到应用编程接口的代表将要显示的场景或对象的数据。在传递到 应用编程接口之前,处理所截取的数据以渲染多个祝图。
授予Sieckmann的美国专利申请公开号2004/0257360公开了 一种 用于将三维(3D)对象成像为对象图像的设备。该设备包括包含用于
20 将对象成像的显微镜的成像系统、以及与该成像系统通信的计算机。 致动器以特定的迅速方式在x、 y和z方向上改变对象的位置。记录设 备记录在对象的不同焦点级中的各个图像的栈。控制设备控制成像系 统的硬件,并且分析设备根据图像栈产生三维浮雕图像和紋理。控制 i殳备还将三维浮雕图像和紋理进行组合。
25 授予Routhier等人的美国专利申请公开号2005/0117637公开了用
于处理压缩立体图像流的系统。压缩图像流具有多个第一格式的帧, 每个帧由包括从左边图像取样的像素和从右边图像取样的像素的合 并图像组成。接收器接收压缩图像流,并且与接收器通信的解压缩模块将压缩图像流解压缩,然后将解压缩的图像流存储在帧緩沖器中。 串行化单元读取存储在帧緩冲器中的帧的像素,并且输出包括帧的左 边图像像素和右边图像像素的像素流。立体图像处理器接收该像素 流,緩冲这些像素,执行插补以便重新构造左边图像的像素和右边图 5 像的像素,并且输出重新构造后的左像素流和重新构造后的右像素 流。重新构造后的左右像素流具有与第一格式不同的格式。显示信号 产生器接收重新构造后的左右像素流以提供输出显示信号。
授予Lipton等人的美国专利申请公开号2005/0122395公开了用 于在立体图像观察系统中交叉多个透视图的系统和方法。棱镜片与具
io 有规定纵横比的显示区域紧密并置在一起。该显示区域包括多个扫描 行,每个扫描行包括多个像素,并且每个像素包括多个子像素。创建 具有与该显示区域相同的分辨率的图(map)以存储对应于显示区域 中的每个子像素的值。预先产生该图并进行存储以用于稍后通过查找 操作使用。緩冲器存储具有n个视图的帧,其中这'n,个视图中的
15 每个视图具有与显示区域相同的纵横比。还创建和存储多个掩模
(mask)。每个掩4莫对应于这V个视图中的唯--个视图,并且包括
不透明区域和多个透明视窗。当应用对应的掩才莫时将这'n,个视图 交叉,并且使用该图将值赋予每个子像素。
虽然光栅化图形数据的技术已存在,但仍需要对这些技术进行改
20 进。因而,本发明的目标是至少提供用于光栅化图形数据的新颖的图 形4妾口和方法。

发明内容
因此,在一方面,提供可操作以产生立体图像帧的图形接口,该 25立体图像帧包括与第 一观察位置相关联的第 一组像素和与第二观察 位置相关联的第二组像素,所述图形接口包括光栅化器,光栅化器检 查第一图像的像素以确定第一图像中对应于所述笫一组像素的那些 像素,检查第二图像的像素以确定第二图像中对应于所述第二组像素
6的那些像素,并仅光栅化所确定的像素,从而产生所述立体图像帧。
在一个实施例中,指定第一组像素由观察者的左眼观察,而指定 第二组像素由观察者的右眼观察。第 一组像素和第二組像素相互交织
(interleaved),以使得立体图像帧的每行像素和每列像素包括相等数量 5的来自笫一组的像素和来自第二组的像素。立体图像帧的每行像素和 每列像素还包括交替的第 一组和笫二组的像素。
在一个实施例中,光4册化器检查形成图形基元(graphics primitives) 的像素,这些图形基元由第一和第二图像构造而成。预片元化 (per-fragment)操作模块与光栅化器通信,并处理由经过光栅化的像 10 素得到的片元。存储器存储经过处理的片元。
根据另一方面,提供光栅化图形数据的方法,该图形数据形成用 于在显示器上呈现的三维图像帧。该显示器具有与第一观察位置相关 联的第一组像素和与第二观察位置相关联的第二组像素。该方法包 括检查第 一 图像的像素以确定第 一 图像的对应于第 一组像素的像 15 素,并检查第二图像的像素以确定第二图像的对应于第二组像素的像 素。光栅化所确定的第一组和第二组的像素。
冲艮据又一方面,提供包含机器可读代码的计算机可读介质,该机 器可读代码用于光栅化图形数据,该图形数据形成用于在显示器上呈 现的三维图像帧。该才几器可读代码包括用于检查第一图像的像素以 20 确定第一图像的对应于第一组像素的像素的机器可读代码,用于检查 笫二图像的像素以确定第二图像的对应于第二组像素的像素的机器 可读代码,以及用于光^f册化所确定的第一组和第二组的像素的机器可 读代码。
25


现在将参照附图更充分地描述实施例,附图中 图1A和1B是现有一支术的3D图形系统的框图; 图2是用于光栅化图形数据的3D图形系统的框图;图3是图2中的3D图形系统的框图,其更好地示出它的显示硬 件的组件;
图4是形成图2中的3D图形系统的一部分的LCD面板的像素图; 图5示出左边的图像和右边的图像,它们组合后产生立体图像帧; 5 图6是驱动图4中的LCD面板的方法的流程图;以及
图7是用于光栅化图形数据的备选3D图形系统的示意框图。
具体实施例方式
如上所讨论,存在使得能够显示三维(3D)图像的软件工具和库。
10 例如,OpenGL是用于二维(2D)和三维(3D)图形应用的工业标准 图形应用编程接口 (API)。 一般来说,OpenGL API处理表示从主机 应用(例如计算机辅助设计(CAD)软件、视频游戏、3D用户接口 等)接收的将要渲染的对象的图形数据,并在显示设备上渲染图形对 象以便观看。将要渲染的每个图形对象的图形数据包括3D坐标和相
15关联数据(通常称为顶点)的数组。图形对象顶点表示为4元素齐次 向量[x,y,z,w],其中x、 y和z是3D空间中的顶点坐标,而w是一 (1)。当接收到图形对象的图形对象顶点时,OpenGL API变换图形 对象顶点,并通过将多组图形对象顶点集中在一起以形成点、线、三 角形和多边形来构造图形基元。然后,将所构造的图形基元渲染成位
20 图以用于在显示i殳备上显示。
在其当前形式中,OpenGL API提供对传统立体显示器的支持, 其中对于将要显示的每个图像帧,通过专用硬件产生图像的左右版本 以用于独立呈现给观察者的每只眼睛,其中每个版本相对于相同的3D 空间具有独立的优势。用于将图像帧的左边图像和右边图像呈现^^观
25 察者的硬件可根据立体显示器的类型而采用不同的形式。例如,可用 两个小的头戴式显示面板将左边的图像和右边的图像呈现给观察者 的两只眼睛,其中每个显示面板呈现左边的图像和右边的图像中的相 应图像。或者,可以按照交替的方式在单个监视器上呈现左边的图像和右边的图像。在这种情况中,使用特制的(偏光)目艮镜,在显示左边的图像期间,遮挡右眼,而在显示右边的图像期间,遮挡左眼。将认识到,不管用来向观察者呈现图像帧的左边的图像和右边的图像的硬件如何,都产生和显示每个图像帧的完整且独立的左右图像。不幸5 的是,为每个图像帧渲染每个图像的两个完整版本的过程会引起每样东西要绘制两次,这在计算上和存储上是花费很高的。
现在转到图1A和1B,示出适于渲染3D图形图像的现有技术的3D图形系统的框图。参考图1A,图形系统100A包括诸如视频游戏的应用程序102、用于向应用程序102l是供3D图形库以^t于渲染3D
10图形图像的OpenGL应用程序接口 (API) 106、 ;f见频驱动器108、显示硬件IIO(如图形处理单元(GPU))、以及左右显示面板112和114,其中每个显示面板与观察者的对应的一只眼睛对齐。视频驱动器108提供OpenGL API 106和显示硬件110之间的接口连接(interfacing )。通过使用应用程序102和OpenGL API,显示硬件110将3D图形图像
15 格式转换(format)以产生相同图像的两个不同的版本,其中对于将要显示的每个图像帧,每个图像(即,左右图像)相对于相同的3D空间具有不同的优势。然后,将所产生的左右图像应用到对应的显示面板112和114并呈现给观察者的两只眼睛,以使得观察者感知到3D图像。图1B示出与图1A中示出的3D图形系统100A相似的另一3D图形
20 系统100B。在此实施例中,除了应用程序102、 OpenGLAPI106、视频驱动器108、显示硬件110以及左右显示面板112和114之外,图形系统100B还包括专用库模块118,专用库模块118提供额外的3D图形库以用于创建日益复杂的图形基元,从而使得能够产生更精细的3D图像渲染。
25 虽然上文将图形系统IOOA和IOOB描述为分别包括左右显示面板
112和114,但是如前面提到的,图形系统IOOA和IOOB可备选地包括单个显示面板。在这种情况中,显示面板以交替的方式显示每个图像帧的完整的左右图像。观察者所戴的偏光眼镜在显示右边图像期间遮挡观察者的左眼,并在显示左边图像期间遮挡观察者的右眼,以使
得观察者感知到3D图像。
将认识到,不管采用什么样的显示硬件,对于将要显示的每个图像帧,图形系统100A和100B产生和显示同一图像的两个完整的版本。5这使得净处理和存储需求增加。
现在参考图2,示出图形系统200,图形系统200包括诸如视频游戏的应用程序202、用于向应用程序202提供3D图形库以便于渲染3D图形图像的OpenGL应用程序接口(API)204、视频驱动器206、显示硬件208 (如GPU)和液晶显示(LCD)面板210。视频驱动器
应用程序202和OpenGL API 204,显示硬件208将3D图形图像格式转换以产生立体图像帧用于通过LCD面板210呈现。
图3更好地示出显示硬件208的组件。由图可见,显示硬件208包括硬件光栅化器(rasterizer)304、预片元化操作模块306和后台緩冲
15器308。如果需要,光栅化器304将图形基元转换为片元以便通过预片元化操作沖莫块306进行处理。每个片元(fragment)包括颜色、纹理、坐标、深度和后台緩沖器位置值。预片元化操作才莫块306对要求处理的片元进行一项或多项测试和修改,包括^旦不限于才臭版测试、深度测试和融合。将不要求处理的片元和经过预片元化操作模块306处理的
20 片元写入到后台緩冲器308以形成最终的位图,然后输出到LCD面板210。在该实施例中,后台緩沖器308包括组织成多个逻辑緩冲器的位平面的矩形阵列。为了减少净处理和存储需求,显示硬件208仅光栅化左右图像中形成将看到的立体图像帧的部分的那些像素,这将在下文进行描述。
25 图4示出LCD面板210的像素图。在该实施例中,LCD面板210
与由Sanyo Epson成像设^^^ ( SEE))开发的LCD面板相似。LCD面板210的指定用观察者的右眼看的像素以'R,标记,而LCD面板210的指定用观察者的左眼看的像素以'L,标记。右眼和左眼像素R和L相互交织以形成棋盘图案,这便于从观察者的角度产生3D显示效果。对于这种棋盘图案,在LCD面板210的任何给定的像素行或像素列中,百分之五十(50% )的像素是右目艮像素R,而百分之五十(50% )的像素是左眼像素L。 LCD面板210还包括滤波器(filter)(未示5 出),该滤波器包括覆盖LCD面板的像素的屏障栅格。该滤波器使得只有从特定方向才能看到来自LCD面板210的每个像素的光。当观察者相对于LCD面板210处于正确的观察位置时,左眼像素L只能用观察者的左眼看到,而右眼像素R只能用观察者的右眼看到。结果,在这样的观察位置,当LCD面板210呈现立体图像帧时,因为左眼
10.看到由左眼像素L形成的图像,而右眼看到由右眼像素R形成的图像,所以观察者看到相同图像的两个不同版本。这允许从观察者的视角产生3D图像,而不需要显示相同图像的两个完整的版本。
一般来说,在操作过程中,当图形系统200将要显示立体图像帧时,与现有技术的图形系统相似,应用程序202与OpenGL API 204
15 结合产生相同图像的左右两个单像(monoscopic)版本,其中每个图像相对于相同的3D空间具有不同的优势。为了限制数据处理,仅光栅化每个图像中将形成显示在LCD面板210上且供观察者观看的立体图像帧的一部分的那些像素。结果,因为每个图像仅用来驱动LCD面板210的一半像素,所以丟弃每个图像中的一半数据。然后,显示
20 硬件208组合这两个图像的经过光栅化的像素以产生立体图像帧用于显示。例如,如图5所示,示出单像的左边图像410L和单像的右边图像410R,它们组合后产生单个立体图像帧410S以用于显示。嵌入块(inset)411L和411R分别突出显示图像410L和410R的左下角的四个像素。嵌入块411L包括像素412L、 414L、 416L和418L,而嵌入
25 块411R包括像素412R、 414R、 416R和418R。仅光栅化(rasterize)嵌入块411L的像素412L和418L,并且仅光栅化嵌入块411R的像素414R和416R。丢弃像素414L、 416L、 412R和418R。组合图像410L和410R的经过光栅化的像素以产生立体图像帧410S。在立体图像帧410S中,嵌入块411S包括像素412L、 414R、 416R和418L。将认识到,立体图像帧410S具有来自左右图像410L和410R的经过光栅化的像素的棋盘分布。
当图形系统200将要产生立体图像帧以用于显示在LCD面板2105 上时,OpenGLAPI204变换形成完整的左右图像的图形对象的图形对象顶点,并通过集合多组经过变换的图形对象顶点来构造左右图像的图形基元。因为仅每个左右图像的子集形成将要显示的立体图像帧的一部分,所以为了减少数据处理,仅将形成图形基元并且当显示立体图像帧时可被观察者看到的像素渲染成位图。图6更好地示出图形系
10 统200在渲染图形基元期间执行的步骤。
首先,在构造完左右图像(left and right images)的图形基元后,选择其中一个图形基元(步骤602)。在步骤604,确定形成所选择的图形基元的像素列表。像素列表可用执行'包围盒(boundingbox),例行程序的多种算法之一产生。包围盒例行程序的使用避免了为了确定
15 所选择的图形基元所占用的像素而要处理图像中的每个像素。 一旦产生了像素列表,便选择列表中的第一个像素,并做检验以确定该像素是否位于当显示立体图像帧时观察者能看到的位置(步骤606)。例如,如果所选图形基元形成左边图像的一部分,则检查所选像素以确定它的位置是否对应于LCD面板210的左眼像素L之一。如果所选图形
20 基元形成右边图像的一部分,则检查所选像素以确定它的位置是否对应于LCD面板210的右眼像素R之一。在步骤606,如果所选像素位于不会形成将要显示的立体图像帧的一部分的位置,则丟弃所选像素。然后,做检验以确定所选像素是否是列表中的最后一个像素(步骤608)。如果确定所选像素是列表中的最后一个像素,则认为所选图
25 形基元的渲染过程完成,此时选择下一个图形基元(步骤602)。如果所选像素不是列表中的最后 一个像素,则在步骤610选择列表中的下一个像素,并且过程返回到步骤606。
在步骤606,如果所选像素位于形成将要显示的立体图像帧的一
12部分的位置,则由光栅化器304光栅化所选像素(步骤612)。接着,如果需要,对所得片元进行预片元化操作(步骤614),然后写入到后台緩沖器308 (步骤616)。在步骤616之后,过程进行到步骤608,在步骤608,做检验以确定所选像素是否是像素列表中的最后一个像
5素。如果确定所选像素是列表中的最后一个像素,则认为所选图形基元的渲染过程完成,此时选择下一个图形基元(步骤602)。如果不是,则在步骤610选择列表中的下一个像素,并且过程转回到步骤606。将认识到,仅光栅化图形基元中当在LCD面板210上显示立体图像帧时会看到的那些像素。这样当然减少了处理和存储需求。
10 尽管上文将光栅化器304描述为是显示硬件208内的硬件光栅化
器,但光栅化器304可作为位于视频驱动器206或OpenGL API 204
中的软件模块来实现。
现在转到图7,示出用于光栅化3D图像的另一图形系统720。在该实施例中,图形系统720根据从应用程序接收的命令利用OpenGL
153D图形库来光栅化与3D图像(如一个或多个图形基元)相关联的像素。如图所示,图形系统720包括处理单元722 (如CPU或GPU)、随机存取存储器("RAM")724、非易失性存储器726、通信接口 728、显示硬件730、用户接口 732和与LCD面板210相似的LCD面板734,它们都通过局部总线736通信。处理单元722将光栅化软件应用程序
20 从非易失性存储器726取出(retrieve)到RAM724中,用于由处理单元722执行。光栅化软件应用程序以与图6中示出的方式相似的方式渲染图形基元,并在LCD面板734上呈现所得位图。通过用户接口 732,观察者可选择将经过渲染的3D图像传送到非易失性存储器726,或者通过通信接口 728传送到一个或多个远程存储设备和/或远程显示
25 器。非易失性存储器726还可存储可用来支持其他图形处理操作的另外的软件应用。
光栅化软件应用可包括包含例行程序、程序、对象组件、数据结构等的程序才莫块,并且可以实施为存储在计算机可读介质上的计算机可读程序代码。计算机可读介质是可存储数据的任何数据存储设备, 这些数据以后可通过计算机系统读取。计算机可读介质的实例包括例
如只读存储器、随机存取存储器、CD-ROM、磁带和光数据存储设备。 计算机可读程序代码也可分布在包括耦合的计算机系统的网络上,以
5便以分布的方式存储和执行计算机可读程序代码。
虽然描述了实施例,但本领域的技术人员将认识到,在不脱离由
所附权利要求限定的这些实施例的精神和范围的情况下,可做出变动 和修改。
权利要求
1. 一种可操作以产生包括与第一观察位置相关联的第一组像素和与第二观察位置相关联的第二组像素的立体图像帧的图形接口,所述图形接口包括光栅化器,所述光栅化器检查第一图像的像素以确定所述第一图像的对应于所述第一组像素的那些像素,并且检查第二图像的像素以确定所述第二图像的对应于所述第二组像素的那些像素,并且仅光栅化所确定的像素,从而产生所述立体图像帧。
2. 如权利要求1所述的图形接口,其中指定所述第一组像素由 观察者的左眼观察,而指定所述第二组像素由观察者的右眼观察。
3. 如权利要求2所述的图形接口,其中所述第一组像素和所述第二组像素相互交织,以使得所述立体图像帧的每行像素和每列像素包括相等数量的来自所述第一组的像素和来自所述第二组的像素。
4. 如权利要求3所述的图形接口,其中所述立体图像帧的每行 像素和每列像素包括交替的所述第一组和所述第二组的像素。
5. 如权利要求2所述的图形接口,其中所述光栅化器检查形成图形基元的像素,所述图形基元由所述第一图像和所述第二图像构造而成。
6. 如权利要求5所述的图形接口,还包括与所述光栅化器通信 的预片元化操作模块,所述预片元化操作^t块处理由经过光栅化的像素得到的片元。
7. 如权利要求6所述的图形接口,还包括用于存储经过处理的片元的存储器。
8. 如权利要求5所述的图形接口,还包括与所述光栅化器通信 的存储器。
9. 如权利要求7所述的图形接口,其中所述存储器包括后台緩冲器。
10. —种光栅化形成用于在显示器上呈现的三维图像帧的图形数据的方法,所述显示器具有与第 一观察位置相关联的第 一组像素和与第二观察位置相关联的第二組像素,所述方法包括检查第 一 图像的像素以确定所述第 一 图像的对应于所述第 一组乂条J^aA乂炎本.'i个,T、 "V i个,T、, 检查第二图像的像素以确定所述第二图像的对应于所述第二组像素的像素;以及光栅化所述第 一组和所述第二组的所确定的像素。
11.如权利要求10所述的方法,其中在所述检查过程中,检查形成所述第 一 图像和所述第二图像的图形基元的像素。
12.如权利要求11所述方法,还包括对经过光栅化的像素进行片元操作。
13. 如权利要求12所述的方法,还包括在片元操作之后在存储器中存储所述经过光栅化的像素,从而形成最终的位图。
14. 如权利要求11所述的方法,还包括存储所述经过光栅化的 像素。
15. 如权利要求14所述的方法,还包括将所述笫一组像素显示给观察者的左眼,并将所述第二组像素显示给观察者的右眼。
16. —种包含机器可读代码的计算机可读介质,所述机器可读代码用于光栅化形成用于在显示器上呈现的三维图像帧的图形数据,所 迷机器可读代码包括用于检查第一图像的像素以确定所述第一图像的对应于所述第一组像素的像素的机器可读代码;用于检查第二图像的像素以确定所述第二图像的对应于所述第二组像素的像素的机器可读代码;以及 用于光栅化所述第一组和所述第二组的所确定的像素的机器可读代码。
全文摘要
图形接口可操作以产生立体图像帧,该立体图像帧包括与第一观察位置相关联的第一组像素和与第二观察位置相关联的第二组像素。该图形接口包括光栅化器,该光栅化器检查第一图像的像素以确定第一图像中对应于第一组像素的那些像素,检查第二图像的像素以确定第二图像中对应于第二组像素的那些像素,并且仅光栅化所确定的像素,从而产生立体图像帧。
文档编号H04N13/00GK101483787SQ20091000351
公开日2009年7月15日 申请日期2009年1月7日 优先权日2008年1月8日
发明者G·塞勒斯 申请人:精工爱普生株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1