CN101751690A - 使用环境遮挡的真实感成像的系统和方法 - Google Patents

使用环境遮挡的真实感成像的系统和方法 Download PDF

Info

Publication number
CN101751690A
CN101751690A CN200910222067A CN200910222067A CN101751690A CN 101751690 A CN101751690 A CN 101751690A CN 200910222067 A CN200910222067 A CN 200910222067A CN 200910222067 A CN200910222067 A CN 200910222067A CN 101751690 A CN101751690 A CN 101751690A
Authority
CN
China
Prior art keywords
light
scene
color
intersection point
pixel data
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.)
Granted
Application number
CN200910222067A
Other languages
English (en)
Other versions
CN101751690B (zh
Inventor
马克·R·纳特
乔奎因·马德鲁加
巴里·L·迈纳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101751690A publication Critical patent/CN101751690A/zh
Application granted granted Critical
Publication of CN101751690B publication Critical patent/CN101751690B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)
  • Image Processing (AREA)

Abstract

接收场景模型数据,该场景模型数据包括描述在场景中排列的物体的场景几何模型和多个像素数据。选择多个像素数据中的第一像素数据。基于第一像素数据生成主像素颜色和主光线。如果主光线与场景中的物体相交,则确定交点P。基于相交的物体和交点P,确定表面法矢量N。基于交点P确定主命中颜色。基于主命中颜色修改主像素颜色。基于交点P和表面法矢量N,产生多个环境遮挡(AO)光线,每个AO光线具有方向D。对于每个AO光线,反转AO光线方向D,并将AO光线起点O设置为场景外的点。使每个AO光线从AO光线起点向着交点P行进到场景中。如果AO光线在到达点P之前与物体相交,则从环境遮挡计算中排除该AO光线。如果AO光线在到达点P之前不与物体相交,则在环境遮挡计算中包括该光线。基于所包括的AO光线,估计环境遮挡。基于环境遮挡和主命中颜色,遮暗主像素颜色,并且基于像素数据的主像素颜色,生成图像。

Description

使用环境遮挡的真实感成像的系统和方法
技术领域
本发明一般涉及计算机图形和真实感(photorealistic)图像生成的领域,并且更具体地,涉及用于使用环境遮挡(ambient occlusion)的改善的真实感成像的系统和方法。
背景技术
现代计算机图形系统和方法包括设计为渲染在包括视频游戏、飞行和其他模拟、运动画面和许多其他应用之类的多种应用中使用的高质量图像的各种技术。例如,对于动画工作室,光线跟踪和全局照明技术现在在运动画面生产和特效中扮演不可或缺的角色。
一种常用方法是使用光线的分级组或“分组”,可针对分级加速结构(HAS)对其进行测试,以便根据例如当几何子集未到达观察点时的考虑,丢弃该子集。尽管传统方法理论上是有效的,但投射周围环境遮挡光线常常给高速缓存和本地存储器带来巨大的压力,并且需要非必要的工作量。
因而,需要针对与传统系统和方法有关的至少一些问题和缺点的用于实感成像的系统和/或方法。
发明内容
提供以下概要以有助于理解所公开实施例特有的一些创新特征,但不意图作为完整说明。通过作为整体考虑全部说明书、权利要求、附图和摘要,可以获得对实施例的各个方面的完整理解。
在一个实施例中,接收场景模型数据,该场景模型数据包括描述在场景中排列的物体的场景几何模型和多个像素数据。选择多个像素数据中的第一像素数据。基于第一像素数据生成主像素颜色和主光线。如果主光线与场景中的物体相交,则确定交点P。基于相交的物体和交点P,确定表面法矢量N。基于交点P确定主命中颜色。基于主命中颜色修改主像素颜色。基于交点P和表面法矢量N,产生多个环境遮挡(AO)光线,每个AO光线具有方向D。对于每个AO光线,反转AO光线方向D,并将AO光线起点O设置为场景外的点。使每个AO光线从AO光线起点向着交点P行进到场景中。如果AO光线在到达点P之前与物体相交,则从环境遮挡计算中排除该AO光线。如果AO光线在到达点P之前不与物体相交,则在环境遮挡计算中包括该光线。基于所包括的AO光线,估计环境遮挡。基于环境遮挡和主命中颜色,遮暗主像素颜色,并且基于像素数据的主像素颜色,生成图像。
附图说明
在附图中,相似附图标记指代各个视图之中相同或功能类似的元素,附图被并入在说明书中并形成说明书的一部分,进一步图示了实施例,并且与具体实施方式一起用于说明在此公开的实施例。
图1图示了示出根据优选实施例的计算机图形系统的框图;
图2图示了示出根据优选实施例在示例场景中的主光线投射的框图;
图3图示了示出根据优选实施例在示例场景中的环境遮挡光线的框图;
图4图示了示出根据优选实施例的对于环境遮挡的改进方法的例子的框图;
图5图示了描绘可根据优选实施例实现的改进的环境遮挡方法的逻辑操作步骤的高级流程图;
图6图示了描绘可根据优选实施例实现的改进的环境遮挡方法的逻辑操作步骤的高级流程图;
图7图示了描绘可根据优选实施例实现的改进的环境遮挡方法的逻辑操作步骤的高级流程图;以及
图8图示了示出可被配置为合并一个或多个优选实施例的示例计算机系统的框图。
具体实施方式
这些非限制性示例中讨论的具体值和配置可以变化,并且引用其仅仅用于例示至少一个实施例,而不是要限制本发明的范围。
在以下讨论中,描述一些具体细节以提供本发明的整体理解。本领域技术人员将理解,可以无需这样的具体细节而实践本发明。在其他实例中,以示意或框图形式图示了公知元件,以便不会在不必要的细节方面模糊本发明。此外,在最大程度上,省略了关于网络通信、电磁信令技术、用户接口或输入/输出技术等的细节,因为不认为这样的细节是获得本发明的完整理解所必需的,并认为其在相关领域技术普通人员的理解范围内。
如本领域技术人员将理解的,本发明可以实施为系统、方法或计算机程序产品。因此,本发明可采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或组合了软件和硬件方面的实施例的形式,它们在此可统称为“电路”、“模块”或“系统”。另外,本发明可以采取以表达的任何有形介质(在该介质上包含计算机可使用的程序代码)实现的计算机程序产品的形式。
可以采用一个或多个计算机可用或计算机可读介质的任何组合。计算机可用或计算机可读介质可以是(例如但不限于)电子、磁、光、电磁、红外或半导体系统、装置、设备或传播介质。计算机可读介质的更具体的例子(非穷尽列举)将包括以下:具有一条或多条线的电连接、便携式计算机盘碟、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CDROM)、光存储器件、诸如支持因特网或内部网之类的传输介质或磁存储器件。注意,计算机可用或计算机可读介质甚至可以是上面打印了程序的纸张或其它合适的介质,因为该程序可经由例如对纸张或其它介质的光学扫描被捕获,然后被编译、翻译,或者如果有必要以合适的方式处理,然后被存储到计算机存储器中。在本文的上下文中,计算机可用和计算机可读介质可以是能够包含、存储、通信、传播或传送由指令执行系统、装置或设备使用或与指令执行系统、装置或设备使用结合使用的程序的任何介质。计算机可用介质可以包括基带中的或作为载波的一部分的传播数据信号,其中计算机可用程序代码利用该传播数据信号来体现。可以使用任何适当的介质(包括但不限于无线、有线、光纤线缆、RF等)传送计算机可用程序代码。
可以用一个或多个编程语言(包括诸如Java、Smalltalk、C++等的面向对象的编程语言以及诸如“C”编程语言或类似编程语言的传统程序性编程语言)的任意组合编写用于执行本发明的操作的计算机程序代码。程序代码可以完全在用户计算机上执行、部分地在用户计算机上执行、作为单机软件包执行、部分地在用户计算机并部分第在远程计算机上执行、或完全在远程计算机或服务器上执行。在后一情况中,远程计算机可通过包括,包括局域网(LAN)或广域网(WAN)在内的任何类型的网络连接到用户计算机,或可以进行与外部计算机的连接(例如,使用因特网服务提供者通过因特网)。
下面参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图示和/或框图,描述本发明。将理解,流程图示和/或框图的每个块以及流程图示和/或框图中的块的组合可由计算机程序指令实现。可以将这些计算机程序指令提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,以产生机构使得经由计算机或其他可编程数据处理装置的处理器执行的指令建立用于实现流程图和/或框图块或多个块中指定的功能/动作的部件。
这些计算机程序指令还可以被存储在计算机可读介质中,该计算机可读介质可以引导计算机或其他可编程数据处理装置按特定方式运作,使得计算机可读介质中存储的指令产生包括实现在流程图和/或框图块或多个块中指定的功能/动作的指令部件的一件产品。
计算机程序指令还可以被加载到计算机或其他可编程数据处理装置上,以致使在计算机或其他可编程装置上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机或其他可编程装置上执行的指令提供用于实现在流程图和/或框图块或多个块中指定的功能/动作的处理。
适合于存储和/或执行程序代码的数据处理系统将包括通过系统总线直接或间接耦接到存储器元件的至少一个处理器。存储器元件可包括在程序代码的实际执行期间采用的本地存储器、大容量存储器和提供至少一些程序代码的临时存储以便减少在执行期间必须从大容量存储器取会代码的次数的高速缓冲存储器。
输入/输出或I/O设备(包括但不限于键盘、显示器、定点设备等)可直接或通过居间I/O控制器耦接到系统。网络适配器也可耦接到系统,以使得数据处理系统能够通过居间私有或公共网络耦接到其他数据处理系统或远处打印机或存储设备。调制解调器、电缆调制解调器和以太网卡正是一些目前可获得的类型的网络适配器。
现在参照附图,图1是图示根据本发明优选实施例用于使用环境遮挡的改进的真实感成像的系统100的某些组件的高级框图。通常,系统100使用环境遮挡进行真实感成像,并包括图形引擎102。
例如,许多真实感成像技术关注于跟踪假想光线在从光源经过场景移动时行进的路径。在“光线投射”中,对于场景中的每个像素,图形系统跟踪从场景中的所选观察点到所选光源的假想光线,基于光线在其到光源的路上是否与场景中的物体相交,更新像素色彩、遮暗(shading)和其他因素。以此方式,图形系统可以迅速确定观察点场景中的物体是否对观察点可见(可视性),以及场景中的其他物体是否阻挡来自光源的光落到物体上(直接阴影)。这样,图形系统可以将三维场景渲染为例如适合于计算机屏幕的二维图像。如这里所使用的,“光线投射”意味着针对可视性跟踪光线和直接阴影计算。
在“光线跟踪”中,具体地在Whitted型光线跟踪中,当跟踪光线与场景中的物体相交时,图形系统生成三种附加类型的光线即“次级光线”中的一个或多个,该“次级光线”的起源是跟踪光线和物体的交点,该三种附加类型的光线是:反射光线、折射光线和阴影光线。“反射”光线从相交点在原始光线的镜面反射路径的方向上行进。如果发射光线与另一物体相交,则该反射物体通过在第一物体上显示出反射物体的镜像(mirror image)而影响代表交点的像素。
如果原始跟踪光线与透明物体相交,则“折射”光线从交点在原始光线的折射路径的方向上行进,并且可以穿过物体行进。如果折射光线与另一物体相交,则图形系统相应地更新代表交点的像素。如果物体面对光源,则“阴影”光线跟踪从交点到光源的直线路径。如果阴影光线与不透明物体相交,则不透明物体阻挡来自光源的光到达交点,并且图形系统相应地更新代表交点的像素。
除了Whitted型次级光线之外,典型的图形系统还可进行多个其他场景操纵,以增强所描绘场景的实感度。例如,“全局照明”(用于将间接光照考虑因素添加到场景的技术的一般术语)通过改进场景光照的真实感将附加真实感添加到场景。因为全局照明技术常常是资源密集型的,因此一些典型的图形系统使用环境遮挡来模拟全局照明。通常,传统的“环境遮挡”从主交点和次级交点投射多条光线,基于与其他物体和表面相交的样本光线的数目计算覆盖率。
环境遮挡和光线跟踪的次级光线增加了在光线投射中不可获得的细节,这得到的是更具真实感的图像。然而,附加的光线也需要附加的计算和存储资源。这样的附加计算和存储需求已经常常使得交互的光线跟踪不实用或不可能。这里描述的新颖的实施例克服了一些这样的限制。
如下面将更详细描述的,系统100可以被配置为使用光线的分级组或“分组”,其中可针对分级加速结构(Hierarchical Acceleration Structure,HAS)对该光线的分级组或“分组”进行测试,以便根据例如当几何子集未到达观察点时的考虑,丢弃该子集。通常,HAS是由按顺序排列的节点构成的数据结构,并用来保存关于场景几何形状的信息,该信息可以用来评估特定光路是否与场景中的物体相交等等。示例HAS包括均匀网格、二叉树、KD树、八叉树和包围空间层级(bounded-volume hierarchy,BVH)。使用光线的分级分组和通过加速结构穿过(traverse)分组常常极大地降低了在维持可接受的准确度的同时所需的操作数量。
实践中,存在多种在求解环境遮挡积分中有用的典型技术。最直接的前向方式之一是其通过使用Monte Carlo或其他采样方法从交点P投射光线,然后对于与场景几何形状中的其他物体的相交进行测试,来近似在交点P处的可视性函数。通过不相交的环境光线的数目除以投射的光线总数,估计P处的环境暴露度。
HAS的典型有效的实现方式可以通过从前到后、从交点到场景边界或物体交点穿过场景,将环境遮挡光线与三维场景相交,由此避免不必要地穿过受遮挡的加速结构的各部分。例如,在一种方式中,层级中的每一级存储该级上子节点的最大分离(separation)的尺度。在运行时,图形引擎将该最大分离度和光线方向结合,以便选择首先访问哪个子节点。
尽管传统方法理论上是有效的,但是从交点P投射环境遮挡光线常常给高速缓存和本地存储器带来巨大压力,并且需要不必要的工作量。具体地,因为点P位于场景内部,并且由于从前到后穿过的性质,可能并且很有可能的是,图形引擎将在环境遮挡光线可以开始与P前面的场景几何形状相交之前,检查HAS的遮挡部分。由此,如下面更详细描述的,系统100提供了降低对高速缓存和本地存储器的压力来穿过HAS的机制。
广泛地,如下面更详细描述的,尽管改进了图形引擎用来确定对于特定场景的实感环境遮挡级的处理,系统100提供了极大地改善真实感成像质量的图形系统。所公开的实施例主要改进了光线跟踪性能,特别改进了环境遮挡操纵。另外,即使在具有有限本地存储器的系统中,这里描述的新颖的图形引擎和实施例也可以提供改善的光线跟踪性能。因此,所公开的实施例可以改善高端系统的性能,并使实现操作中可接受的图形性能(否则其会超出图形硬件的能力)。
更具体地,图形引擎102接收和处理场景模型输入104,生成多个像素颜色数据和其他信息。图形引擎102将所生成的信息传递给显示子系统106,该显示子系统106使用所生成的信息在显示器108上显示图像。典型的场景模型输入104包括描述场景中物体的排列的多个像素数据和场景几何模型。典型的运动画面可以包括数千静止图像,每个静止图像是场景中物体的排列。
通常,多个“像素数据”将场景中的物体与诸如显示屏幕之类的参考帧(reference frame)相关联,根据参考帧安排关于描述场景的像素的数量的有限上边界。在场景模型输入中使用的每个像素具有关联的像素数据。在一个实施例中,像素数据包括:像素的坐标参考,其表示像素与其他像素的相对位置;以及初级像素颜色,图形引擎102在像素数据的处理过程中修改该初级像素颜色,如下所述。在替代实施例中,像素数据不包括初级颜色,并且图形引擎102基于下面详细描述的处理,向多个像素数据中的每一个添加像素颜色。
在图示实施例中,图形引擎102包括输入/输出(I/O)模块120。通常,I/O模块120在他方面是传统的I/O接口。操作中,I/O模块120接收场景模型输入104。I/O模块120还耦接到显示子系统106。显示子系统106在其他方面是传统的显示子系统,并且被配置为从图形引擎102接收处理过的场景模型数据并基于处理过的场景模型数据在显示器108上显示图像。
在所图示的实施例中,图形引擎102包括协同处理单元(SPU)130和存储器140。SPU 130在其他方面是传统的处理单元(PU),如以下所述修改的。在一个实施例中,SPU 130是CellTM处理器。在替代实施例中,SPU 130是Broadband EngineTM处理器。存储器140在其他方面是传统的存储器模块140,如以下所述修改的。通常,操作中,图形引擎102接收未处理的场景模型数据104,并将未处理的场景模型数据104存储在存储器140中。SPU 130处理场景模型数据104,以生成适合于显示子系统106用来显示图像的处理过的场景模型数据。
更具体地,存储器140包括模型数据142。模型数据142是指在不同处理阶段中接收的场景模型数据。在一个实施例中,模型数据142被排列为HAS。在一个实施例中,模型数据142被排列为包围空间层次(BVH)。
SPU 130包括渲染模块132和本地存储器134。渲染模块132是被配置为处理场景模型数据的逻辑块(下面更详细描述)。本地存储器134在其他方面是传统的PU本地存储器,如以下描述采用的。通常,SPU 130从存储器140中检索模型数据142的多个部分,将检索的部分存储在本地存储器134中。在一个实施例中,检索的部分是多个像素数据中的每个单个像素数据。如下面更详细描述的,渲染模块132处理场景模型数据的检索的部分,添加像素颜色或修改已有像素颜色,并将修改的像素数据返回模型数据142。
更具体地,图形引擎102接收场景模型数据104,并执行在此所述的新颖的环境遮挡技术。图2图示了示例场景200中的主光线投射。场景200包括多个物体210和表面220。从观察点232投射的主光线230在交点240处与表面220相交。表面法矢量(normal)250表示垂直于表面220(在点240)的矢量的方向。
图3图示了在具有观察点332的示例场景300中的环境遮挡光线投射。多个环境遮挡光线350从表面320的交点340离开。环境遮挡光线350中的一些将与物体310相交。
图4图示了在具有观察点432和场景边界402的场景400中根据优选实施例的改进的环境遮挡光线处理。多个环境遮挡(AO)光线450从起点向场景边界402外行进。通常,场景边界402代表对图形引擎已知的场景模型数据的限制。
每个AO光线450从其起点在朝向表面420的交点440的直线上向场景边界402外行进。在一些实施例中,图形引擎将AO光线450分为分组460。如所示,具有起点452a、452b和456的AO光线450在它们去向交点440的路上不与场景中的物体相交。因此,这些光线被包括在后续环境遮挡计算中。
如所示,具有起点454a和454b的AO光线450在它们去向交点440的路上与物体410a相交。这样,表面420部分被物体410a遮挡,这些光线不被包括在后续环境遮挡计算中。
在一个实施例中,图形引擎在环境遮挡计算中考虑所有AO光线,将“被包括”的AO光线的数目除以“被包括的”和“被排除的”AO光线两者的总数,以生成覆盖率。在替代实施例中,图形引擎在环境遮挡和/或遮暗计算中仅仅考虑“被包括的”AO光线。
图5图示了使用环境遮挡的真实感成像的方法的一个实施例。具体地,图5图示了描绘由例如可以根据优选实施例实现的图1的系统100执行的逻辑操作步骤的高级流程图500。通常,除非另外指明,否则诸如图1的图形引擎102之类的图形引擎执行该方法的步骤。
如块505所示,处理开始,其中图形引擎接收场景模型数据,该场景模型数据包括场景几何模型和多个像素数据。在一个实施例中,多个像素数据中的一个或多个包括初级像素颜色。接下来,如块510所示,图形引擎选择多个像素数据之一作为当前像素数据。
接下来,如块515所示,图形引擎基于当前像素数据生成主像素颜色。在一个实施例中,图形引擎基于初级像素颜色生成主像素颜色。接下来,如块520所示,图形引擎基于当前像素数据生成主光线。对了清楚说明,在所示实施例中,图形引擎每像素生成一个主光线。在替代实施例中,在对每个主光线的如下所述的一个或多个步骤之后,图形引擎对每像素生成多个主光线。
接下来,如判定块525所示,图形引擎基于场景几何模型确定主光线是否与场景中的物体相交。如果在块525处主光线与场景中的物体相交,则处理沿着“是”分支继续到块530。
接下来,如块530所示,图形引擎基于主光线和物体的相交,确定交点P。接下来,如块535所示,图形引擎基于主光线和物体的相交,确定表面法矢量N。
接下来,如块540所示,图形引擎基于主光线和物体的相交,确定主命中颜色(hit color)。接下来,如块545所示,图形引擎基于主命中颜色,修改主像素颜色。处理继续到图6的标记“A”。
图6图示了使用环境遮挡的真实感成像的方法的一个实施例。具体地,图6图示了描绘由例如可以根据优选实施例实现的图1的系统100执行的逻辑操作步骤的高级流程图600。通常,除非另外指明,否则诸如图1的图形引擎102之类的图形引擎执行该方法的步骤。
处理从标记“A”继续到块605。如块605所示,图形引擎基于交点P和表面法矢量N,生成多个环境遮挡(AO)光线,每个AO光线具有光线方向。
接下来,如块610所示,图形引擎将AO光线分为分组。接下来,如判定块615所示,图形引擎确定是否存在要处理的任何AO光线/分组。在第一次运行时,将有至少一个AO光线要处理。如果在判定块615处存在要处理的AO光线/分组,则处理沿着“是”分支继续到块620。
接下来,如块620所示,图形引擎选择至少一个AO光线/分组之一作为当前AO光线/分组。接下来,如块625所示,图形引擎反转当前AO光线(或当前分组中的每个AO光线)的方向。接下来,如块630所示,图形引擎沿着当前AO光线的原始方向,改变源自交点P的AO光线,将起点O设为已知为场景边界外部的点。
接下来,如块635所示,图形引擎设置最大AO光线穿行。在一个实施例中,最大光线穿行代表起点O和交点P之间的场景内距离。在替代实施例中,最大光线穿行代表HAS中场景边界和交点P之间的节点数。
接下来,如块640所示,图形引擎沿着AO光线的方向使当前AO光线从其起点O向HAS的第一节点前进。接下来,如判定块645所示,图形引擎确定AO光线是否命中(hit)场景中的物体。如果在判定块645处图形引擎确定AO光线已经碰到场景中的物体,则处理沿着“是”分支继续到块650。如块650所示,图形引擎排除该AO光线,并且处理返回到标记“B”,即判定块615,其中图形引擎确定是否存在任何另外的AO光线/分组要处理。
如果在判定块645处图形引擎确定AO光线没有碰到场景中的物体(在当前节点),则处理沿着“否”分支继续到判定块655。如判定块655所示,图形引擎确定AO光线是否已经到达交点P。如果在判定块655处,AO光线已经到达交点P,则处理沿着“是”分支继续到块660。
在一个实施例中,在判定块655处,图形引擎还确定AO光线是否行进了其最大穿行距离,并且如果是这样,则认为AO光线已经到达了交点P。如块660所示,图形引擎包括AO光线,并且处理返回到标记“B”,即判定块615,其中图形引擎确定是否存在任何另外的AO光线/分组要处理。
如果在判定块655处,AO光线还未到达交点P,则处理沿着“否”分支继续到块665。如块665所示,图形引擎选择下一HAS节点作为当前HAS节点,并且处理返回块640,其中图形引擎使AO光线向当前HAS节点前进。
因此,如块640至665所示,图形引擎使每个AO光线从其起点朝向交点P前进到场景中。如果AO光线在去向交点的路上碰到物体,则图形引擎排除该AO光线并选择下一AO光线进行处理。如果AO光线在去向交点的路上未碰到物体,则图形引擎包括该AO光线并选择下一AO光线进行处理。
如果在块615处没有更多的AO光线/分组(对于当前主光线交点),则处理沿着“否”分支继续到图7的标记“C”。
图7图示了使用环境遮挡的真实感成像的方法的一个实施例。具体地,图7图示了描绘由例如可以根据优选实施例实现的图1的系统100执行的逻辑操作步骤的高级流程图700。通常,除非另外指明,否则诸如图1的图形引擎102之类的图形引擎执行该方法的步骤。
处理从标记“C”继续到块705。如块705所示,图形引擎基于所包括的AO光线计算对于当前像素的AO覆盖度。在替代实施例中,图形引擎基于所包括的和所排除的AO光线两者计算对于当前像素的AO覆盖度。
接下来,如块710所示,图形引擎基于所计算的AO覆盖度修改主像素颜色。接下来,如判定块715所示,图形引擎确定是否存在另外的像素和/或像素数据要处理。如果在判定块1430处存在另外的像素要处理,则处理沿着“是”分支继续到标记“D”,返回图5的块510,其中图形引擎选择下一像素数据作为当前像素数据,并且处理如上所述继续。
如果在块525处主光线不与场景中的物体相交,则处理沿着“否”分支继续到标记“E”,其中处理继续到如上所述的判定块715。接下来,如块720所示,图形引擎存储具有多个像素数据的场景模型数据。接下来,如块725所示,显示子系统基于多个像素数据生成用于显示的图像。
因此,与其他方法和系统相比,所公开的实施例提供了许多优点。例如,即使在具有有限本地存储器的系统中,在此描述的图形引擎也可以提供改进的光线跟踪性能。所公开的实施例还改进了可升级(scalable)以满足期望的真实感质量和用于实施图形引擎的具体系统的需求的环境遮挡性能。
如上所述,可以实践在此所述的一个或多个实施例,或者另外在计算机系统中实现。通常,如在此使用的术语“计算机”是指任何自动计算机器。因而,术语“计算机”不仅包括诸如膝上型计算机、个人计算机、小型机和大型机之类的通用计算机,还包括诸如个人数字助理(PDA)、网络使能的手持设备、因特网或网络使能的移动电话之类的设备和其他合适的设备。图8是提供图示了可用来实践在此所述的一个或多个实施例的示例计算机系统的细节的框图。
具体地,图8图示了计算机系统800。计算机系统800包括计算机802。计算机802在其他方面是传统的计算机,并包括至少一个处理器810。处理器810在其他方面是传统的计算机处理器,并且可以包括单核、双核中央处理单元(PU)、协同PU、附连PU或其他合适的处理器。
处理器810耦接到系统总线812。总线812在其他方面是传统的系统总线。如所示,计算机802的各种组件耦接到总线812。例如,计算机802还包括存储器820,其通过总线812耦接到处理器810。存储器820在其他方面是传统的计算机主存储器,并且可以包括例如随机存取存储器(RAM)。通常,存储器820存储应用822、操作系统824和存取功能826。
通常,应用822在其他方面是传统的软件程序应用,并且可以包括任意数量的典型程序,以及并入了本发明的一个或多个实施例的计算机程序。操作系统824在其他方面是传统的操作系统,并且可包括例如Unix、AIX、Linux、Microsoft WindowsTM、MacOSTM和其他合适的操作系统。存取功能826在其他方面是传统的存取功能,包括网络连接功能,并且可被包括在操作系统824中。
计算机802还包括存储器830。通常,存储器830在其他方面是用于存储数据的传统设备和/或多个设备。如所示,存储器830可包括硬盘832、闪存或其他易失性存储器834和/或光学存储设备836。本领域技术人员将理解,还可以采用其他存储介质。
I/O接口840也耦接到总线812。I/O接口840在其他方面传统的接口。如所示,I/O接口840耦接到计算机802外部的设备。具体地,I/O接口840耦接到用户输入设备842和显示设备844。输入设备842在其他方面是传统的输入设备,并且可以包括例如鼠标、键盘、数字键区、触摸敏感屏幕、麦克风、网络摄像机和其他合适的输入设备。显示设备844在其他方面是传统的显示装置,并且可以包括例如监视器、LCD显示器、GUI屏幕、文本屏幕、触摸敏感屏幕、Braille显示器和其他合适的显示设备。
网络适配器850也耦接到总线812。网络适配器850在其他方面是传统的网络适配器,并且可包括例如无线、以太网、LAN、WAN或其他合适的适配器。如所示,网络适配器850可以将计算机802耦接到其他计算机和设备852。其他计算机和设备852在其他方面是在联网环境中典型采用的传统计算机和设备。本领域技术人员将理解,存在适合于计算机802和计算机系统800的许多其他联网配置。
附图中的流程图和框图图示了根据本发明各种实施例的系统、方法和计算机程序产品的可能的实现方式的体系结构、功能性和操作。为此,流程图或框图中的每个块可以代表模块、片段或部分代码,其包括用于实现指定逻辑功能的一个或多个可执行指令。还应注意,在一些替换实现方式中,块中注明的功能可不按照图中注明的顺序进行。例如,取决于所涉及的功能性,连续示出的两个块实际上可以基本同时执行,或者有时可按相反顺序执行块。还将注意,可以通过执行指定功能或动作的专用的基于硬件的系统或专用硬件和计算机指令的组合来实现框图和/或流程图示中的每个块以及框图和/或流程图示中的块的组合。
将理解,可以按期望地将上面公开的以及其他特征和功能的变化或者其替代物组合为许多其他不同的系统或应用。此外,本领域技术人员可以继续在其中进行各种目前不能预见或不可预期的替代、修改、变化或改进,它们也应被所附权利要求所包括。

Claims (13)

1.一种方法,包括:
接收场景模型数据,所述场景模型数据包括描述在场景中排列的物体的场景几何模型和多个像素数据;
选择所述多个像素数据中的第一像素数据;
基于所述第一像素数据生成主像素颜色;
基于所述第一像素数据生成主光线;
确定所述主光线是否与所述场景中的物体相交;
如果所述主光线与所述场景中的物体相交,则确定交点P;
基于相交的物体和交点P,确定表面法矢量N;
基于交点P确定主命中颜色;
基于所述主命中颜色修改主像素颜色;
基于交点P和表面法矢量N,确定多个环境遮挡AO光线,每个AO光线具有方向D;
对于每个AO光线,反转AO光线方向D,并将AO光线起点O设置为场景外的点;
使每个AO光线从AO光线起点向着交点P行进到场景中;
如果AO光线在到达点P之前与物体相交,则从环境遮挡计算中排除该AO光线;
如果AO光线在到达点P之前不与物体相交,则在环境遮挡计算中包括该AO光线;
基于所包括的AO光线,估计环境遮挡;
基于环境遮挡和主命中颜色,遮暗所述主像素颜色;以及
基于像素数据的主像素颜色生成图像。
2.如权利要求1所述的方法,还包括:对于每个AO光线设置最大穿行距离。
3.如权利要求2所述的方法,其中所述穿行距离是AO光线起点和点P之间的距离。
4.如权利要求1所述的方法,还包括:将所述场景几何模型组织为包括多个节点的分级加速结构HAS。
5.如权利要求4所述的方法,其中所述HAS是kd树。
6.如权利要求4所述的方法,其中所述HAS是包围空间层级。
7.如权利要求4所述的方法,其中使每个AO光线行进包括:逐节点穿过HAS。
8.如权利要求1所述的方法,还包括:将AO光线分为分组。
9.一种用于生成图像的计算机系统,包括用于实现权利要求1-8的任一方法的部件。
10.一种系统,包括:
图像显示器,耦接到显示子系统;
处理器,耦接到所述显示子系统,并被配置为:
接收场景模型数据,所述场景模型数据包括描述在场景中排列的物体的场景几何模型和多个像素数据;
选择所述多个像素数据中的第一像素数据;
基于所述第一像素数据生成主像素颜色;
基于所述第一像素数据生成主光线;
确定所述主光线是否与所述场景中的物体相交;
如果所述主光线与所述场景中的物体相交,则确定交点P;
基于相交的物体和交点P,确定表面法矢量N;
基于交点P确定主命中颜色;
基于所述主命中颜色修改主像素颜色;
基于交点P和表面法矢量N,确定多个环境遮挡AO光线,每个AO光线具有方向D;
对于每个AO光线,反转AO光线方向D,并将AO光线起点O设置为场景外的点;
使每个AO光线从AO光线起点向着交点P行进到场景中;
如果AO光线在到达点P之前与物体相交,则从环境遮挡计算中排除该AO光线;
如果AO光线在到达点P之前不与物体相交,则在环境遮挡计算中包括该AO光线;
基于所包括的AO光线,估计环境遮挡;
基于环境遮挡和主命中颜色,遮暗所述主像素颜色;以及
基于像素数据的主像素颜色,生成图像。
11.如权利要求10所述的系统,其中所述处理器还被配置为对于每个AO光线设置最大穿行距离。
12.如权利要求10所述的系统,其中所述处理器还被配置为将所述场景几何模型组织为包括多个节点的分级加速结构HAS。
13.如权利要求12所述的系统,其中使每个AO光线行进包括:逐节点穿过HAS。
CN2009102220679A 2008-12-05 2009-11-13 使用环境遮挡的真实感成像的系统和方法 Expired - Fee Related CN101751690B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/329,470 US9483864B2 (en) 2008-12-05 2008-12-05 System and method for photorealistic imaging using ambient occlusion
US12/329,470 2008-12-05

Publications (2)

Publication Number Publication Date
CN101751690A true CN101751690A (zh) 2010-06-23
CN101751690B CN101751690B (zh) 2012-05-30

Family

ID=42230551

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009102220679A Expired - Fee Related CN101751690B (zh) 2008-12-05 2009-11-13 使用环境遮挡的真实感成像的系统和方法

Country Status (5)

Country Link
US (1) US9483864B2 (zh)
JP (1) JP5460259B2 (zh)
KR (1) KR101072093B1 (zh)
CN (1) CN101751690B (zh)
TW (1) TW201028956A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102194219A (zh) * 2011-05-18 2011-09-21 刘征 一种被障碍物遮挡图像的优化显示方法
CN104050710A (zh) * 2013-03-14 2014-09-17 想象技术有限公司 用隐式几何体进行3d图形渲染
CN110599389A (zh) * 2019-09-10 2019-12-20 苏州蜗牛数字科技股份有限公司 一种判断环境探针遮挡的方法及其系统
US10970912B2 (en) 2013-03-14 2021-04-06 Imagination Technologies Limited 3-D graphics rendering with implicit geometry

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102009042328B4 (de) * 2009-09-21 2024-02-15 Siemens Healthcare Gmbh Effiziente Bestimmung von Lichteffekten beim Volume Rendering
FR2966623A1 (fr) * 2010-10-21 2012-04-27 Thomson Licensing Procede d’estimation de l’occultation dans un environnement virtuel
US9153068B2 (en) * 2011-06-24 2015-10-06 Nvidia Corporation Clipless time and lens bounds for improved sample test efficiency in image rendering
US20130033507A1 (en) * 2011-08-04 2013-02-07 Nvidia Corporation System, method, and computer program product for constructing an acceleration structure
CN102592305A (zh) * 2011-09-06 2012-07-18 浙江大学 自适应的屏幕空间环境光遮蔽方法
KR102072515B1 (ko) 2012-10-16 2020-02-03 삼성전자주식회사 영상 처리 장치 및 방법
US20140160124A1 (en) * 2012-12-12 2014-06-12 Nvidia Corporation Visible polygon data structure and method of use thereof
KR102164541B1 (ko) 2013-10-22 2020-10-12 삼성전자 주식회사 레이 트레이싱 시스템에서의 가속 구조 생성 장치 및 그 생성 방법
US9697640B2 (en) * 2014-04-21 2017-07-04 Qualcomm Incorporated Start node determination for tree traversal in ray tracing applications
WO2015167159A1 (en) * 2014-05-02 2015-11-05 Samsung Electronics Co., Ltd. Rendering system and method for generating ray
WO2019224804A1 (en) * 2018-05-21 2019-11-28 Adshir Ltd. Fast generation of ray traced reflections of virtual objects in real world environment
CA3045133C (en) * 2019-06-03 2023-03-21 Eidos Interactive Corp. Systems and methods for augmented reality applications
US11263800B2 (en) * 2019-12-27 2022-03-01 Intel Corporation Apparatus and method for quantized convergent direction-based ray sorting

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7773088B2 (en) * 2000-06-19 2010-08-10 Mental Images Gmbh Simultaneous simulation of markov chains using quasi-monte carlo techniques
US7499053B2 (en) * 2000-06-19 2009-03-03 Mental Images Gmbh Real-time precision ray tracing
US6940504B1 (en) * 2000-11-21 2005-09-06 Microsoft Corporation Rendering volumetric fog and other gaseous phenomena using an alpha channel
US6853377B2 (en) * 2002-06-26 2005-02-08 Nvidia Corporation System and method of improved calculation of diffusely reflected light
NZ540742A (en) * 2002-11-15 2007-10-26 Sunfish Studio Inc Visible surface determination system & methodology in computer graphics using interval analysis
DE102004007835A1 (de) * 2004-02-17 2005-09-15 Universität des Saarlandes Vorrichtung zur Darstellung von dynamischen komplexen Szenen
US7567248B1 (en) * 2004-04-28 2009-07-28 Mark William R System and method for computing intersections between rays and surfaces
US7184052B2 (en) * 2004-06-18 2007-02-27 Microsoft Corporation Real-time texture rendering using generalized displacement maps
US7348975B2 (en) 2004-12-28 2008-03-25 Intel Corporation Applications of interval arithmetic for reduction of number of computations in ray tracing problems
US8184119B2 (en) * 2005-07-13 2012-05-22 Siemens Medical Solutions Usa, Inc. Fast ambient occlusion for direct volume rendering
US7439973B2 (en) * 2005-08-11 2008-10-21 International Business Machines Corporation Ray tracing with depth buffered display
US7973790B2 (en) * 2005-08-11 2011-07-05 Realtime Technology Ag Method for hybrid rasterization and raytracing with consistent programmable shading
ATE421737T1 (de) * 2005-08-26 2009-02-15 Koninkl Philips Electronics Nv Verfahren zur erzeugung eines 2-d-bildes eines 3- d-objekts
US7692651B2 (en) * 2005-09-22 2010-04-06 Siemens Medical Solutions Usa, Inc. Method and apparatus for providing efficient space leaping using a neighbor guided emptiness map in octree traversal for a fast ray casting algorithm
FR2896895B1 (fr) * 2006-02-01 2008-09-26 Redway Soc Par Actions Simplifiee Procede de synthese d'une image virtuelle par lancer de faisceaux
US7408550B2 (en) * 2006-07-24 2008-08-05 Bunnell Michael T System and methods for real-time rendering of deformable geometry with global illumination
US7675518B1 (en) * 2006-09-05 2010-03-09 Adobe Systems, Incorporated System and method for generating image shadows with ray-coherent integration of extruded transparency maps
US7884819B2 (en) * 2006-09-27 2011-02-08 International Business Machines Corporation Pixel color accumulation in a ray tracing image processing system
CN101178854A (zh) * 2006-11-07 2008-05-14 奥城同立科技开发(北京)有限公司 交通道路图像多向抓拍方法和电子警察系统
US7836258B2 (en) * 2006-11-13 2010-11-16 International Business Machines Corporation Dynamic data cache invalidate with data dependent expiration
US8139060B2 (en) * 2006-11-28 2012-03-20 International Business Machines Corporation Ray tracing image processing system
TWI322392B (en) * 2006-12-14 2010-03-21 Inst Information Industry Apparatus, method, application program, and computer readable medium thereof capable of pre-storing data for generating self-shadow of a 3d object
US7969438B2 (en) * 2007-01-23 2011-06-28 Pacific Data Images Llc Soft shadows for cinematic lighting for computer graphics
US8390621B2 (en) * 2007-01-24 2013-03-05 Take Two Interactive Software, Inc. System and method for calculating multi-resolution dynamic ambient occlusion
JP2008262493A (ja) 2007-04-13 2008-10-30 Sony Corp 情報処理装置および情報処理方法、プログラム、並びに、記録媒体
CN101141633B (zh) * 2007-08-28 2011-01-05 湖南大学 一种复杂场景中的运动目标检测与跟踪方法
US8063902B2 (en) * 2007-10-12 2011-11-22 Caustic Graphics, Inc. Method and apparatus for increasing efficiency of transmission and/or storage of rays for parallelized ray intersection testing
US8237711B2 (en) * 2007-11-19 2012-08-07 Caustic Graphics, Inc. Tracing of shader-generated ray groups using coupled intersection testing
US8878849B2 (en) * 2007-12-14 2014-11-04 Nvidia Corporation Horizon split ambient occlusion
US20090309877A1 (en) * 2008-06-16 2009-12-17 Microsoft Corporation Soft shadow rendering

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102194219A (zh) * 2011-05-18 2011-09-21 刘征 一种被障碍物遮挡图像的优化显示方法
CN102194219B (zh) * 2011-05-18 2014-05-07 刘征 一种被障碍物遮挡图像的优化显示方法
CN104050710A (zh) * 2013-03-14 2014-09-17 想象技术有限公司 用隐式几何体进行3d图形渲染
CN104050710B (zh) * 2013-03-14 2019-08-23 想象技术有限公司 用隐式几何体进行3d图形渲染的方法和系统
US10970912B2 (en) 2013-03-14 2021-04-06 Imagination Technologies Limited 3-D graphics rendering with implicit geometry
US11562526B2 (en) 2013-03-14 2023-01-24 Imagination Technologies Limited 3-D graphics rendering with implicit geometry
US11861787B2 (en) 2013-03-14 2024-01-02 Imagination Technologies Limited 3-D graphics rendering with implicit geometry
CN110599389A (zh) * 2019-09-10 2019-12-20 苏州蜗牛数字科技股份有限公司 一种判断环境探针遮挡的方法及其系统

Also Published As

Publication number Publication date
KR101072093B1 (ko) 2011-10-10
JP2010134919A (ja) 2010-06-17
US20100141652A1 (en) 2010-06-10
US9483864B2 (en) 2016-11-01
KR20100065060A (ko) 2010-06-15
TW201028956A (en) 2010-08-01
JP5460259B2 (ja) 2014-04-02
CN101751690B (zh) 2012-05-30

Similar Documents

Publication Publication Date Title
CN101751690B (zh) 使用环境遮挡的真实感成像的系统和方法
US11562526B2 (en) 3-D graphics rendering with implicit geometry
CN113781626B (zh) 遍历在射线追踪中使用的数据的技术
KR101054702B1 (ko) 광선 추적 이미지 처리 시스템의 픽셀 컬러 결정
US8525826B2 (en) System for iterative interactive ray tracing in a multiprocessor environment
US20220392144A1 (en) Image rendering method and apparatus, electronic device, and storage medium
CN117132448A (zh) 针对射线跟踪系统的减小的加速结构
CN113808245B (zh) 用于遍历光线追踪加速结构的增强技术
CN113808241B (zh) 共享顶点的射线追踪图元的硬件加速
US11315303B2 (en) Graphics processing
Suárez et al. An efficient terrain Level of Detail implementation for mobile devices and performance study
CN112041894A (zh) 渲染期间提高涉及水面的场景的真实感
Chandak et al. FastV: From‐point Visibility Culling on Complex Models
KR100939212B1 (ko) 광선 집합을 이용한 병렬 광선 추적 방법 및 시스템
Takimoto et al. Dressi: A Hardware‐Agnostic Differentiable Renderer with Reactive Shader Packing and Soft Rasterization
CN117726496A (zh) 使用光线剪裁减少假阳性光线遍历
CN117726732A (zh) 减少包围体层次结构中的假阳性光线遍历
Nery et al. Efficient hardware implementation of Ray Tracing based on an embedded software for intersection computation
CN115531877B (zh) 一种虚拟引擎中距离测量的方法及其系统
Chiu et al. Efficient Progressive Radiance Estimation Engine Architecture and Implementation for Progressive Photon Mapping
Jákó Hardware accelerated hybrid rendering on PowerVR GPUs
Nery et al. Parallel processing of intersections for ray-tracing in application-specific processors and GPGPUs
Hornbeck Spatial Partitioning for Distributed Path-Tracing Workloads
CN117726743A (zh) 使用点退化剔除减少假阳性光线遍历
CN117689793A (zh) 用于光线追踪的部分加速结构的生成和遍历

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120530