CN101178807A - 具有光照改变的帧的再渲染加速 - Google Patents

具有光照改变的帧的再渲染加速 Download PDF

Info

Publication number
CN101178807A
CN101178807A CNA2007101300427A CN200710130042A CN101178807A CN 101178807 A CN101178807 A CN 101178807A CN A2007101300427 A CNA2007101300427 A CN A2007101300427A CN 200710130042 A CN200710130042 A CN 200710130042A CN 101178807 A CN101178807 A CN 101178807A
Authority
CN
China
Prior art keywords
frame
square frame
playing
cache memory
information
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
CNA2007101300427A
Other languages
English (en)
Other versions
CN101178807B (zh
Inventor
拉多米尔·梅奇
拉里·I·格里茨
埃里克·B·恩德尔顿
约翰·F·施拉克
丹尼尔·埃利奥特·韦克斯勒
菲利普·A·内梅茨
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.)
Nvidia Corp
Original Assignee
Nvidia 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 Nvidia Corp filed Critical Nvidia Corp
Publication of CN101178807A publication Critical patent/CN101178807A/zh
Application granted granted Critical
Publication of CN101178807B publication Critical patent/CN101178807B/zh
Active 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/50Lighting effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering

Abstract

本发明揭示用于加速图形帧的再渲染的实施例。

Description

具有光照改变的帧的再渲染加速
技术领域
本文揭示的主题涉及计算机图形渲染,且更特定来说涉及加速帧的再渲染。
背景技术
对于高质量渲染,例如对于胶片视觉效果和/或动画,单一帧的渲染可能花费许多分钟或甚至许多小时。在技术员需要对原本已完成的场景作出光照改变时的创造性过程中可能发生显著的瓶颈。由于对于每个改变(在何处放置光、光的颜色、光是否应投射阴影、阴影的模糊程度应如何,等),必须针对将对光照技术员和/或引导者变为可见的改变执行再渲染,所以此过程可能非常耗时。增加过程的耗时特性的是光照设计的重复特性。作出改变,对帧进行再渲染,观察结果,作出更多改变,对帧进行再渲染等,直到光照技术员和/或引导者对结果满意为止。因为每次渲染可能花费许多小时来完成,所以光照过程可能非常耗时且低效。
发明内容
附图说明
在本说明书的结束部分特定指出并清楚地主张了主题。然而如果结合附图阅读,那么通过参考以下具体实施方式可最佳地理解关于操作的组织和方法两者的所主张的主题,以及其目的、特征和优点,附图中:
图1是包括图形处理单元的计算平台的示范性实施例的方框图;
图2是包括多个光源和多个三维对象的示范性场景的图;
图3是交互式再光照过程的示范性实施例的图;
图4是用于加速帧的再渲染的方法的示范性实施例的流程图;
图5是用于加速帧的再渲染的方法的额外示范性实施例的流程图;
图6是用于加速帧的再渲染的方法的额外示范性实施例的流程图;
图7是用于加速帧的再光照的方法的额外示范性实施例的流程图;
图8是用于加速帧的再光照的方法的示范性实施例的流程图,所述方法包括将与帧的渲染相关联的对象信息存储在对象索引化高速缓冲存储器中;
图9是描绘与对象上一点相关联的多个光的信息块的图;
图10是栅格高速缓冲存储器的示范性实施例的方框图;
图11是用于确定与渲染操作相关联的项目的优先列表中哪些将被高速缓冲存储的方法的示范性实施例的流程图;
图12是用于再计算依据经修改的外部文件的经高速缓冲存储的对象信息的方法的示范性实施例的流程图;
图13是用于执行较低保真度渲染的方法的示范性实施例的流程图;
图14是用于渐进精细化场景的渲染的方法的示范性实施例的流程图;
图15是描绘正通过较低保真度和较高保真度过程渲染的场景的示范性显示的图;
图16是用于中断帧的渲染的方法的示范性实施例的流程图;
图17是用于中断帧的渲染并对帧进行再渲染的方法的示范性实施例的流程图;
图18是描绘包括光源和两个对象的示范性场景的图;
图19是用于确定对象之间的光照相依性的方法的示范性实施例的流程图;
图20是用于加速响应于景深改变而进行的帧的再渲染的方法的示范性实施例的流程图;
图21是用于加速响应于相机参数改变而进行的帧的再渲染的方法的示范性实施例的流程图;
图22是用于加速响应于相机位置改变而进行的帧的再渲染的方法的示范性实施例的流程图;以及
图23是用于加速响应于相机位置改变而进行的帧的再渲染的方法的另一示范性实施例的流程图。
具体实施方式
在以下具体实施方式中,陈述许多特定细节以提供对所主张主题的详尽理解。然而,所属领域的技术人员将了解,可在没有这些特定细节的情况下实践所主张的主题。在其它情况下,没有详细描述众所周知的方法、程序、组件和/或电路。
如上文所指出,现有技术的难题,尤其是例如再光照领域中的难题,可包含对经重新光照的帧的非常耗时且低效的再渲染。因此,需要可加速对经重新光照的帧的再渲染的技术和/或系统。
根据用于加速具有光照改变的帧的再渲染的方法的实施例,对应于帧的一个或一个以上三维(3D)对象的信息可存储在对象索引化高速缓冲存储器中。可使3D对象离散化为多个点。高速缓冲存储器可包含在帧的再渲染中可使用的中间和/或最终遮影值。光照改变可由用户(例如,光照技术员)指定。可确定所述多个点中哪些点(如果存在的话)受到所指定的光照改变影响。对于受到光照改变影响的点,可确定将再计算哪些遮影操作以便实施光照改变。可使用再计算的遮影操作与存储在对象索引化高速缓冲存储器中的中间和/或最终遮影值的至少一子集的组合来对帧进行再渲染。
通过将中间遮影结果存储在由对象索引化的高速缓冲存储器中,且通过在适合于对帧进行再渲染的地方使用中间遮影结果,可在再光照操作期间实现显著的时间节省。显著的时间节省可提供明显改进的交互式再光照过程,其可由动画师、光照技术员等在较大有利程度上加以使用。
本说明书中对“一个实施例”或“一实施例”的参考意味着结合实施例描述的特定特征、结构或特性包含在所主张的主题的至少一个实施例中。因此,短语“在一个实施例中”和/或“一实施例”在本说明书中各处的出现不一定全都指代同一实施例。此外,可在一个或一个以上实施例中组合特定特征、结构和/或特性。
本文提及的“指令”涉及表示一个或一个以上逻辑运算的表达式。举例来说,指令可通过可由用于对一个或一个以上数据对象执行一个或一个以上操作的机器(例如,处理器)进行解译而为“机器可读的”。然而,这仅仅是指令的实例,且所主张的主题在此方面不受限制。在另一实例中,本文提及的指令可涉及可由具有包含经编码命令的命令集的处理器或其它处理电路执行的经编码命令。此指令可以处理器或处理电路所理解的机器语言的形式进行编码。同样,这些仅仅是指令的实例,且所主张的主题在这些方面不受限制。
本文提到的“存储媒体”涉及能够维持可由一个或一个以上机器感知的表达式的媒体。举例来说,存储媒体可包括用于存储机器可读指令和/或信息的一个或一个以上存储装置。此类存储装置可包括包含例如磁性、光学和/或半导体存储媒体的若干媒体类型中的任一种。然而,这些仅仅是存储媒体的实例,且所主张的主题在这些方面不受限制。
本文提到的“逻辑”涉及用于执行一个或一个以上逻辑运算的结构。举例来说,逻辑可包括至少部分基于一个或一个以上输入信号而提供一个或一个以上输出信号的电路。此类电路可包括接收数字输入信号并提供数字输出信号的有限状态机,或响应于一个或一个以上模拟输入信号而提供一个或一个以上模拟输出信号的电路。可例如在专用集成电路(ASIC)和/或现场可编程门阵列(FPGA)中提供此类电路。而且,逻辑可包括存储在存储媒体中的机器可读指令,所述存储媒体与处理器或其它处理电路组合以执行此类机器可读指令。然而,这些仅仅是可提供逻辑的结构的实例,且所主张的主题在这些方面不受限制。
除非另外具体规定,否则如从以下论述内容中所明了,将了解本说明书中利用例如“处理”、“计算”、“选择”、“形成”、“启用”、“抑制”、“识别”、“起始”、“询问”、“获得”、“维持”、“表示”、“修改”、“接收”、“传输”、“存储”、“认证”、“授权”、“代管”、“确定”和/或类似术语的术语的论述内容涉及可由计算平台(例如,计算机或类似的电子计算装置)执行的动作和/或过程,所述计算平台操纵和/或转变所述计算平台的处理器、存储器、寄存器和/或其它信息存储、传输、接收和/或显示装置内的表示为物理、电子和/或磁性量和/或其它物理量的数据。因此,计算平台是指包含处理和/或存储信号形式的数据的能力的系统或装置。因此,在此上下文中,计算平台可包括硬件、软件、固件和/或其任何组合。此外,除非另外具体规定,否则本文中参看流程图或以另外方式描述的过程也可由计算平台整体或部分地执行和/或控制。
本文提及的“计算机程序”涉及指令的经组织的列表,所述指令如果被执行就会导致或促使计算机、计算装置和/或机器以特定方式运作。这里举例来说,计算机程序可包括可经执行以执行一个或一个以上所需任务的机器可读指令。在一个特定实施例中,尽管所主张的主题在此方面不受限制,但计算机程序可定义输入数据和输出数据,使得程序的执行可至少部分基于输入数据而提供输出数据。然而,这些仅仅是计算机程序的实例,且所主张的主题在这些方面不受限制。
在以下描述和/或权利要求书中,可使用术语耦合和/或连接以及其派生词。在特定实施例中,连接可用于指示两个或两个以上元件彼此直接实体接触和/或电接触。耦合可表示两个或两个以上元件直接实体接触和/或电接触。然而,耦合也可表示两个或两个以上元件可能彼此没有直接接触,但仍可彼此协作和/或相互作用。
如本文所使用,术语“和/或”可表示“和”,其可表示“或”,其可表示“互斥或”,其可表示“一者”,其可表示“某些但并非全部”,其可表示“任一者均不”,且/或其可表示“两者”,但所主张的主题在此方面不受限制。
如本文所使用,术语“渲染”和/或“再渲染”表示包含用于基于存储在计算平台内的三维数据而产生图像的各种各样技术中的任一者。以上术语也可表示借助于软件程序从模型产生图像的过程,但所主张的主题的范围在此方面不受限制。模型可包括数据结构中3D对象的描述。模型可包括几何形状、视点、表面和/或光照信息。这些仅仅是模型的实例,且所主张的主题的范围在此方面不受限制。以上术语也可用于描述计算视频编缉文件中的效果以产生最终视频输出的过程。
此外,如本文所使用,术语“遮影器”和/或“遮影”可指代在3D计算机图形中用于确定对象或图像的表面性质的任何过程。遮影器可利用关于光吸收、漫射、纹理映射、反射、折射、成影等的信息。“遮影”可进一步指代对象表面的颜色和亮度可如何随着光照而变化。这些仅仅是遮影的实例,且所主张的主题在此方面不受限制。
同样,如本文所使用,术语“光栅化”可指代3D对象转换为像素以最终输出到显示装置所借助的任何过程。对于一个或一个以上实施例,光栅化和/或再光栅化操作可由图形处理单元执行,但所主张的主题在此方面不受限制。
另外,本文使用的术语“高速缓冲存储器”表示包含能够存储在渲染过程中使用的信息的任何数据结构。“对象索引化”高速缓冲存储器可包括可以逐个对象为基础进行索引化的数据结构。也就是说,可根据信息与哪一对象相关联来组织和/或存取存储在高速缓冲存储器中的信息。如本文使用的对象索引化高速缓冲存储器也可称为“栅格高速缓冲存储器”。术语“栅格”可指代在镶嵌或切割操作之后与对象相关联的点的栅格。
对于一个或一个以上实施例,对象索引化高速缓冲存储器可包括能够保持渲染结果(或许是对象遮影结果)的任何数据结构,其中每一结果可能伴随有可能影响所述结果的计算的零或更多输入值的列表。如果针对与存储在高速缓冲存储器中的输入值匹配的输入值,需要特定的渲染结果,那么可从高速缓冲存储器快速检索正确结果,因此节省了再计算结果的时间。
对于一个或一个以上实施例,可不将存储器查找操作高速缓冲存储在对象索引化高速缓冲存储器中。可高速缓冲存储最终和/或中间渲染结果。对于一示范性实施例,对象索引化高速缓冲存储器可包括含有先前计算出的渲染结果的表。如果在帧的渲染期间需要渲染结果,那么可确定所需要的结果是否存在于高速缓冲存储器中。如果所需的结果存在,那么可比所需结果不存在时可能花费的时间更快地完成帧的渲染。如果所需的结果不存在于高速缓冲存储器中,那么可计算所需的结果并可将计算出的结果存储在高速缓冲存储器中以供可能在后续渲染操作中使用。
对于一实施例,如果存储器资源的情况是高速缓冲存储器空间有限,那么可丢弃存储在高速缓冲存储器中的较老的信息,以便存储较新的信息。此外,对于一些实施例,如果发生影响所存储信息的有效性的事件,那么可使高速缓冲存储器条目失效。可丢弃失效的信息,且如果在后续渲染操作中需要,可再计算失效的信息。举例来说,如果光照参数改变,那么可丢弃受所述改变影响的高速缓冲存储的结果。在光照参数改变之后可发生再渲染,且可再计算先前丢弃的结果。对于一实施例,每一高速缓冲存储器条目可存储对象名和对象渲染结果(例如,颜色),还有所述结果所依据的输入信息的列表。同样,对于一个或一个以上实施例,含有计算出的渲染结果的对象索引化高速缓冲存储器可存储在系统存储器和/或图形存储器中。对象索引化高速缓冲存储器也可存储在非易失性存储装置(例如,磁盘驱动器)上。以上仅仅是可如何组织对象索引化高速缓冲存储器和何种类型的信息可存储在对象索引化高速缓冲存储器上以及在渲染过程中可如何利用此类信息的实例,且所主张的主题的范围在这些方面不受限制。
图1是计算平台100的示范性实施例的方框图。计算平台100可包括CPU 110和耦合到CPU 110的存储器控制器集线器120。存储器控制器集线器120进一步耦合到系统存储器130,耦合到图形处理单元(GPU)150,且耦合到输入/输出集线器140。GPU 150进一步耦合到显示装置160,显示装置160可包括CRT显示器、平板LCD显示器、投影仪或其它类型的显示装置。图形存储器170也耦合到GPU 150。平台100还可包括可能耦合到输入/输出集线器140的一个或一个以上存储媒体读取装置(未图示)。
尽管示范性系统100图示为具有组件的特定配置,但使用各种各样配置中的任一种的其它实施例是可能的。举例来说,利用多个CPU和/或GPU的实施例是可能的。此外,可在各种各样电子装置中的任一种中利用本文描述的示范性实施例,所述电子装置包含(但不限于)计算平台、游戏控制台和装置等。此外,对于一些实施例,多个计算平台可经耦合以共同操作来执行本文描述的再光照加速技术。
图2是包括光源220、230和240以及多个三维对象250、260和270的示范性场景的图。尽管场景200意图表示3D图像场景,但为了便于说明和简化论述,在二维中说明场景200。图2中还描绘相机210(表示观看点)和图像平面280,3D对象可在光栅化过程期间以算术方式投影到所述图像平面280上。平截头体线211意图说明场景200的视见平截头体的边界。
对于此示范性场景,可对3D对象250、260和270进行镶嵌(切割)以产生点的网栅格。各个对象的点可称为离散化的。图2中描绘一些示范性点,包含点251、262和264。
一般来说,渲染可认为是两部分的过程。对于一个部分,可解决可见性问题。举例来说,对于给定的观看点(对于此实例,由相机210说明),一些对象或对象的部分可能被阻挡。类似地,各个光源可能会或可能不会影响每一对象的每一点。解决可见性问题可考虑对象和光源的位置及关系,以及观看点。举例来说,对象260上的若干点对于光源中的一者或一者以上来说可能是不可见的。举例来说,参看点262和264,其中点262对光230来说不可见,而点264可见。如果光230从位置A移动到位置B,那么暴露于所述光的点集合可能改变。如果光230处于位置B,那么点262对于光230来说可见,而点264不可见。
对于此示范性场景,用虚线说明对象250、260和270的从相机的观看点被阻挡的部分。类似地用虚线标记对象的落在视见平截头体外部的部分。还用虚线标记光射线的由对象阻断的部分。
对于渲染过程的第二部分,可确定/计算每一像素(投影到图像平面280上)的颜色。遮影过程可考虑关于各个对象表面上的颜色和/或纹理图案、强度、位置和颜色或光源、对象的相对接近度等的信息。当然,这些仅仅是在渲染过程中可使用的信息类型的实例。
图3是交互式再光照过程的示范性实施例的图。在方框310处,可对帧进行渲染。在方框320处,可对帧作出修改,在此实例中可能为对一个或一个以上光照参数作出修改。改变可由技术员指定,例如光照技术员、动画师或其它用户。在方框330处可进行处理以准备帧(包含经修改的光照参数)来进行渲染,且在方框310处可使用经修改、经处理的光信息进行新的渲染。所述循环可视需要重复许多次,直到技术员对结果满意为止。
图4是用于加速帧的再光照的方法的示范性实施例的流程图。在方框410处,可发生帧的渲染。此渲染可包括帧的初始渲染。对于初始渲染,可确定哪一对象或对象的哪些部分可见以及执行其它渲染操作。初始渲染也可包括场景数据的初始导入。初始渲染的一些或全部结果可存储在一个或一个以上栅格高速缓冲存储器450中。
在方框420处,可对一个或一个以上光照参数作出修改。在方框430处可进行处理以在方框440处准备帧来进行再渲染。然而,对于再渲染,如果仅一个或一些光被移动或以另外的方式改变,那么仅再执行受所述改变影响的计算。对于未受光照改变影响的计算,使用存储在栅格高速缓冲存储器450中的一者或一者以上中的信息,借此显著减少执行再渲染所需的计算量。举例来说,因为改变仅涉及一个或一个以上光(相机未移动),所以不必要再执行在初始渲染时执行的可见性操作。
因此,对于此示范性实施例和其它示范性实施例,通过仅再发送用于再渲染的光(不再导出和再读取整个场景),不考虑在初始渲染中不可见的对象(关于哪些对象可见和哪些对象不可见的信息可存储在一个或一个以上栅格高速缓冲存储器中),以及高速缓冲存储各个遮影操作的值,使得仅需要再计算受光照改变影响的操作,且其它操作可再使用其来自先前渲染的结果,可节省工作和时间。以此方式,具有显著改进的性能和/或效率的完全特征化的、很大程度上为交互式的再渲染是可能的。对于此实施例和其它实施例,经加速的再渲染在像素与像素之间可与完全渲染相同(所得的图像可能相同)。
图5是用于加速帧的再光照的方法的额外示范性实施例的流程图。对于此示范性实施例,在方框510处可读取场景数据。在方框520处,可对场景的对象执行切割(镶嵌)操作。在方框530处,可执行遮影操作,且在方框540处可对图像进行光栅化。在方框550处,可指定对一个或一个以上光照或遮影参数的改变。接着处理可返回方框530。不是再执行步骤530的全部内容,而是再执行因改变的参数而成为必要的操作,因此节省了时间并改进了效率。根据所主张的主题的实施例可包含方框510-550的全部、多于全部或少于全部。此外,方框510-550的次序仅仅是一种示范性次序,且所主张的主题的范围在此方面不受限制。
图6是用于加速帧的再渲染的方法的示范性实施例的流程图。在方框610处,可将与帧的渲染相关联的对象信息存储在对象索引化高速缓冲存储器中,且在方框620处,可修改光照参数。在方框630处,可使用存储在对象索引化高速缓冲存储器中的对象信息的至少一子集来对帧进行再渲染。根据所主张的主题的实施例可包含方框610-630的全部、多于全部或少于全部。此外,方框610-630的次序仅仅是一种示范性次序,且所主张的主题的范围在此方面不受限制。
图7是用于加速帧的再光照和再渲染的方法的额外示范性实施例的流程图。在方框710处,可使多个点离散化,其中所述多个点对应于帧的一个或一个以上对象。在方框720处,可修改光照参数。在方框730处,可确定所述多个点中哪些点受到光照参数的修改影响,且在方框740处,可确定针对受影响的点而再计算哪些操作。在方框750处,可对帧进行再光栅化。根据所主张的主题的实施例可包含方框710-750的全部、多于全部或少于全部。此外,方框710-750的次序仅仅是一种示范性次序,且所主张的主题的范围在此方面不受限制。
图8是用于加速帧的再光照的方法的示范性实施例的流程图,所述方法包括将与帧的渲染相关联的对象信息存储在对象索引化高速缓冲存储器中。在方框810处,可将对象信息存储在对象索引化高速缓冲存储器中。对象信息可包括中间遮影结果。在方框820处,可修改光照参数。在方框830处,可再计算受到光照参数的修改影响的对象信息。在方框840处,可使用再计算出的对象信息与经高速缓冲存储的中间遮影结果的组合来对帧进行再渲染。根据所主张的主题的实施例可包含方框810-840的全部、多于全部或少于全部。此外,方框810-840的次序仅仅是一种示范性次序,且所主张的主题的范围在此方面不受限制。
图9是描绘与对象上一点相关联的多个光的示范性信息块的图。对于此示范性实施例,示范性点包括点251。图9中描绘的信息块表示可存储在高速缓冲存储器中的与对象250(且特定来说,点251)相关联的可能的信息。方框910可包括表面图案信息。光方框920可包括与光源220有关的信息,光方框930可包括与光源230有关的信息,且光方框940可包括与光源240有关的信息。光源中的每一者均可具有与其相关联的阴影地图信息。可在硬件、软件或硬件与软件的组合中实施组合单元950。再次参看图2,在场景200的初始渲染之后,光源230可从位置A移动到位置B。对于此实例,在光改变之后执行场景的再渲染时,再计算受到光改变影响的点和计算。对于此实例,对于点251,表面图案信息和光220与240的信息没有受到光照改变影响。因此,可将来自方框910、920和940的信息提供到组合单元950。然而,与光源230相关联的光方框930可包括受到光照改变影响的信息,且可再计算存储在方框930处的信息的至少一子集。可将再计算的信息提供到组合单元950,组合单元950可产生点251的颜色数据。图9中描绘的示范性数据组织仅仅是示范性组织,且所主张的主题在此方面不受限制。
图10是栅格高速缓冲存储器1000的示范性实施例的方框图。如先前所提及,术语“栅格高速缓冲存储器”可指代可根据一个或一个以上对象和/或对象的点而索引化的数据结构。对于此实例,栅格高速缓冲存储器1000可包括遮影器输入数据1010和遮影器输出及中间结果数据1020。遮影器输入数据1010可包括关于对象的位置、法线信息、颜色参数等的信息。遮影器输出及中间结果数据1020可包括颜色信息、光控制参数信息、大量计算的结果、检验点(check-pointing)信息等。与本文描述的实施例有关的高速缓冲存储器可(例如)存储在图形存储器、系统存储器和/或非易失性存储装置(例如,硬盘驱动器)中,或存储在以上的组合中。当然,这仅仅是栅格高速缓冲存储器的一个可能实例,且所主张的主题的范围在此方面不受限制。
对于一实施例,除了高速缓冲存储个别光和/或预光照表面图案的最终结果外,还可高速缓冲存储个别遮影器操作的结果。另外,对于一示范性实施例,可由软件开发商指定将高速缓冲存储的指令的种类。对于一些实施例,可由用户指定将高速缓冲存储的指令的种类。关于将高速缓冲存储哪些种类的指令的确定可基于用户偏好和/或计算平台资源可用性(例如,可用的存储器)。可预定所述确定,或可动态和/或自动地作出所述确定,这可能取决于可用的资源。对于一些实施例,可能有利的是高速缓冲存储因尤其耗时且/或耗费资源而花费较多的指令。举例来说,可高速缓冲存储纹理查找操作的结果。并且对于一些实施例,可高速缓冲存储特定指令和/或特定参数。这些仅仅是可高速缓冲存储的信息种类和/或可如何作出确定的实例,且所主张的主题的范围在这些方面不受限制。
对于一个或一个以上实施例,可由通过串接栅格点的指令的所有输入参数产生的名称来识别高速缓冲存储器和/或高速缓冲存储器条目。然而,这仅仅是可如何识别高速缓冲存储器或高速缓冲存储器条目的实例,且所主张的主题的范围在此方面不受限制。
一些实施例可采用将高速缓冲存储的操作的优先列表。所述列表可在高优先权操作到低优先权操作的范围内变动。高优先权操作可包括计算时尤其耗时的那些操作,且低优先权操作可包括再计算时相对较快的那些操作。在高优先权级与低优先权级之间可能存在各种各样的中间优先权级。此优先操作的列表可包括高速缓冲存储器的计算与存储器折衷的按比例增减。举例来说,当存储器资源变得较为不足时,可自动再计算而不是高速缓冲存储较低优先权操作中的较多者。可自动确定再计算哪些操作和高速缓冲存储哪些操作,或者在其它实施例中,用户可指定高速缓冲存储以及再计算哪些优先权级的操作。可在软件应用程序中向用户提供菜单项,通过所述菜单项用户可指示他或她的关于高速缓冲存储哪些操作的偏好。
图11是用于确定项目的优先列表中哪些项目将被高速缓冲存储的方法的示范性实施例的流程图。在方框1110处,确定与渲染操作相关联的可能可高速缓冲存储的项目的优先列表中哪些项目将被高速缓冲存储。如上所述,所述确定可基于多种考虑,包含(但不限于)计算平台资源(例如存储器)的可用性。此上下文中的术语“项目”意图包含可存储在高速缓冲存储器中的任何信息,包含以上描述的信息类型。花费较多的操作(耗时和/或耗费资源)可被给定顶级优先权,且可被高速缓冲存储,而较低优先权操作(可容易地再计算的操作)在某些情况下(例如,在存储器资源不足的情况下)可能不会被高速缓冲存储。
在方框1120处,将经选择用于高速缓冲存储的优先项目存储在对象索引化高速缓冲存储器中。在方框1130处,可修改光照参数,且在方框1140处,可使用存储在对象索引化高速缓冲存储器中的项目的至少一子集来对帧进行再渲染。根据所主张的主题的实施例可包含方框1110-1140的全部、多于全部或少于全部。此外,方框1110-1140的次序仅仅是一种示范性次序,且所主张的主题的范围在此方面不受限制。
在某些情况下高速缓冲存储器和/或高速缓冲存储器条目可(例如)至少部分依据外部文件,例如阴影地图。对于一实施例,如果外部文件经修改,那么可自动再计算依据所述外部文件的指令。
图12是用于再计算依据经修改的外部文件的对象信息的方法的示范性实施例的流程图。在方框1210处,可确定存储在对象索引化高速缓冲存储器中的对象信息是否依据外部文件。如果无对象信息依据外部文件,那么处理进行到方框1240。如果存储在对象索引化高速缓冲存储器中的对象信息确实依据外部文件,那么在方框1220处确定外部文件是否已被修改。如果外部文件未被修改,那么处理进行到方框1240。如果外部文件已被修改,那么在方框1230处再计算依据经修改的文件的对象信息。在方框1240处,使用经再计算的遮影操作与存储在高速缓冲存储器中的信息的组合对帧进行再渲染。根据所主张的主题的实施例可包含方框1210-1240的全部、多于全部或少于全部。此外,方框1210-1240的次序仅是一种示范性次序,且所主张的主题的范围在此方面不受限制。
当光照技术员或其它用户正对场景的光或其它元素作出改变时,常见的情况是,技术员将在他或她对结果满意之前对光或其它元素作出若干改变。如果技术员必须在改变之间等待完全保真度,那么所述过程可能非常耗时。本文描述的再渲染加速技术和方法可使所述过程耗时更少。对于一些实施例,可通过场景的渐进精细化而更进一步地加速所述过程。如本文所使用,术语“渐进精细化”意谓包括用于初始地以小于完全保真度显示场景,接着进行场景的较高保真度或完全保真度表现的技术。利用渐进精细化,技术员可能能够从场景的较低保真度型式中确定最近的变化是否可能令人满意。这一确定可以非常及时的方式进行,而不是等待较高保真度或完全保真度型式。
对于一示范性实施例,与完全保真度渲染的可能的情况相比,较低保真度表现可基于已被更粗略地切割的场景。换句话说,与完全保真度渲染的将出现的情况相比,用于较低保真度表现的场景的每一对象可被离散化为较少的点。对于一实施例,较低保真度场景的最终光栅化可以完全像素分辨率发生。对于其它实施例,可通过限制像素分辨率和/或通过消除例如防混叠和/或模糊的一些功能来进一步加速较低分辨率渲染。通过维持较低保真度渲染的完全像素分辨率,可避免较低像素分辨率显示器的固有斑驳外观,从而为技术员提供对完全保真度渲染可能外观的更好主意。
对于一些实施例,可显示较低保真度渲染,且随后可将较高保真度渲染叠加在较低保真度显示之上。较高保真度渲染可随着较高保真度区域变得可用而逐个区域地代替较低保真度型式,直到已以较高保真度型式更新整个显示为止。举例来说,在一个实施例中,可从顶部向底部、或从底部向顶部、或从左向右、或从右向左更新显示,或者可首先在由技术员指定的区域发生更新。当然,这些仅是可如何以较高保真度显示更新较低保真度显示的实例,且所主张的主题的范围在这些方面不受限制。此外,对于一些实施例,用户可在任何点中断再渲染过程(不管是较低保真度还是较高保真度)。
如本文所使用,术语“区域”意谓指代场景、帧和/或显示的任何子集。区域可包括各种各样的形状和/或大小中的任一者。区域可包括像素、对象和/或其它数据结构。
对于一些实施例,用户可指定首先再渲染场景或帧的哪些区域。举例来说,用户可指定首先再渲染帧的矩形部分。或者,在另一实施例中,用户可指定帧的坐标(也许通过使用指点装置选择显示器上的一点),且可渲染紧邻围绕选定的坐标的区域,且接着可渲染从所述坐标以螺旋样式延伸出的帧的其它区域。对于一个实施例,可针对整个帧执行帧的较低优先权渲染,接着可在用户指定的区域或点处开始帧的较高优先权渲染。然而,这些仅是帧的区域可被渲染的次序的实例,且所主张的主题的范围在这些方面不受限制。
为了利用通过本文描述的技术和方法而成为可能的再渲染加速特性,可存储任何特定场景的两个副本。一个副本可表示场景的较低保真度型式,且另一副本可表示较高和/或完全保真度型式。所述副本中的每一者可维持如上所述的对象索引化高速缓冲存储器以实现场景的加速再渲染。
尽管对于以上示范性实施例,论述了两个保真度级别(以及两个相应的场景副本),但所主张的主题的范围并不限于此,且其它实施例可利用少于或多于两个保真度级别。
图13是执行较低保真度渲染的方法的示范性实施例的流程图。在方框1310处,将与帧的较低保真度渲染相关联的对象信息存储在第一对象索引化高速缓冲存储器中。在方框1320处,可将与帧的较高保真度渲染相关联的对象信息存储在第二对象索引化高速缓冲存储器中。在方框1330处,可修改光照参数,且在方框1340处,可使用存储在第一对象索引化高速缓冲存储器中的对象信息的至少一子集来执行帧的较低保真度渲染。根据所主张的主题的实施例可包含方框1310-1340的全部、多于全部或少于全部。此外,方框1310-1340的次序仅是一种示范性次序,且所主张的主题的范围在此方面不受限制。
图14是渐进地使场景的渲染精细化的方法的示范性实施例的流程图。在方框1410处,存储场景的较低保真度和较高保真度型式。可将与场景的所述两种型式相关联的对象信息存储在对象索引化高速缓冲存储器中。在方框1420处,可从用户接收显示区域优先权信息。来自用户的优先权信息可包括关于将首先以较高保真度渲染哪个或哪些区域的指示。上文描述了用于对区域区分优先的一些可能的方案,但所主张的主题的范围在这些方面不受限制。在方框1430处,可执行场景的较低保真度渲染,且在方框1440处,可以较高保真度渲染最高优先权区域。在方框1450处,可同样以较高保真度渲染下一较低优先权区域。在方框1460处,可确定是否已渲染最后的区域。如果没有,那么处理返回方框1450,其中渲染下一较低优先权区域。如果已渲染最后的区域,那么处理结束。根据所主张的主题的实施例可包含方框1410-1460的全部、多于全部或少于全部。此外,方框1410-1460的次序仅是一种示范性次序,且所主张的主题的范围在此方面不受限制。
如上所述,对于一些实施例,用户可指示首先渲染场景的哪个区域,或哪些区域具有较高优先权。对于一些实施例,用户可中断渲染并选择和/或再选择接着要渲染的区域。举例来说,用户可对光照参数作出改变,且用户可能希望在帧的特定区域中看到光照改变的效果。用户可初始地选择要首先渲染的区域。对于一些实施例,用户也可稍后选择帧的接着要渲染的另一区域。也就是说,用户可中断当前渲染操作,并对帧的各个区域将发生渲染的次序再区分优先。
除了对帧的各个区域将发生渲染的次序再区分优先外,对于一个或一个以上实施例,用户可在任何点中断渲染并对光照参数作出改变。接着对于一些实施例,渲染操作可自动重新开始,或在其它实施例中可手动重新开始,且再次,用户可具有对帧的区域将被渲染的次序区分优先的能力。
对于一示范性实施例,可在任何点中断帧的渲染(不论是初始渲染还是再渲染)。举例来说,对于一些实施例,可在帧的初始渲染期间初始化一个或一个以上对象索引化高速缓冲存储器。对于一示范性实施例,用户可在初始渲染期间在已创建所有高速缓冲存储器之前作出光照改变。响应于光照参数的变化,可使用在帧的初始渲染(此实例中为部分渲染)期间创建的高速缓冲存储器而发生再渲染操作。再渲染操作也可初始化在帧的初始渲染期间未被初始化的额外高速缓冲存储器。
对于一个实例,帧的渲染(可以是初始渲染或再渲染)可以场景的较低保真度表现开始,如上所述。用户可能能够从较低保真度显示中辨别出可能需要光照改变。用户可在不等待完全保真度渲染完成的情况下作出所述改变。对于一实施例,用户可每当需要时中断帧的渲染,且渲染操作可响应于光照参数的改变而自动重新开始。对于一实施例,渲染操作可手动重新开始。对于一些实施例且如上所述,可确定哪些操作受到光照参数改变的影响,且可对那些操作进行再计算,同时可从适当高速缓冲存储器中检索未受影响的操作的结果。在一些情况下,如果用户在已针对一个或一个以上操作创建高速缓冲存储器之前中断渲染,那么也可计算那些操作并创建适当的对象索引化高速缓冲存储器。当然,这些仅是中断帧的渲染的实例,且所主张的主题的范围在这些方面不受限制。
图15是描绘通过较低保真度和较高保真度过程渲染的场景的示范性显示1500的图。对于此实例,也许根据上述实施例,场景已初始地使用较低保真度过程进行了渲染。可执行此实例的较高保真度渲染,其在场景的顶部处开始并沿着显示向下进行,如图中由水平虚线1515和相关联的箭头所描绘。对于此实例,线1515上方的区域1510已以较高保真度进行了再渲染。线1515下方的区域1520表示先前已以较低保真度渲染且正等待较高保真度渲染的区域。显示1500的交叉影线部分意谓描绘具有由较高保真度渲染产生的增加的表面细节的区域。
如先前所论述,对于一些实施例,用户可对渲染过程再区分优先或中断渲染过程。举例来说,用户可对一个或一个以上光照参数作出改变。对于此实例,当前处理中的渲染可停止并响应于光照参数的改变而重新开始。或者,作为另一实例,用户可能需要集中于显示的特定区域,且可在渲染剩余区域之前引导对所述区域执行较高保真度渲染。对于图15中描绘的实例,当较高保真度渲染正在进行时,用户可选择区域1522。可将区域1522视为高优先权区域,且可在低保真度显示区域1520内的剩余区域之前对区域1522进行处理。一旦已以较高保真度渲染区域1522,那么对于此实例,渲染过程可继续其从顶部向底部模式。用户接着可能需要再次中断从顶部向底部模式,且可选择接下来处理区域1524。用户可继续中断渲染过程任何次数,以对参数范围(包含但不限于光照参数)中的任一者作出改变,或对显示的区域将被渲染的次序再区分优先。
尽管图15的实例描绘对区域进行从顶部向底部处理,且尽管用户选择的高优先权区域展示为矩形区域,但这些仅是实例,且所主张的主题的范围在这些方面不受限制。
图16是中断帧的渲染的方法的示范性实施例的流程图。在方框1610处,可将与帧的渲染相关联的对象信息存储在对象索引化高速缓冲存储器中。在方框1620处,可中断渲染过程,且在方框1630处,可使用存储在对象索引化高速缓冲存储器中的对象信息的至少一子集来对帧进行再渲染。根据所主张的主题的实施例可包含方框1610-1630的全部、多于全部或少于全部。此外,方框1610-1630的次序仅是一种示范性次序,且所主张的主题的范围在此方面不受限制。
图17是中断帧的渲染并对帧进行再渲染的方法的示范性实施例的流程图。对于此实例,处理可开始于方框1705处,其中如所指示,可为当前区域分配高速缓冲存储器。对于此实例,可将待渲染的场景划分为许多区域。所述区域的每一者可具有与其相关联的一个或一个以上(或无)对象。对象索引化高速缓冲存储器可与所述对象相关联,如先前所论述。对于此实例,可能需要为帧的初始渲染分配高速缓冲存储器(在帧的初始渲染之前可能未建立高速缓冲存储器)。在方框1710处,作为渲染过程的一部分,可计算对象信息(也许包含中间遮影结果和/或其它信息)并将其存储在一个或一个以上高速缓冲存储器中。在方框1715处,可确定是否已渲染所有区域。如果是,那么处理结束。如果有区域剩余,那么处理可进行到方框1725,其中可确定用户是否已请求中断渲染操作。如果渲染尚未中断,那么在方框1720处,处理可针对下一区域开始,且图17的示范性过程可返回方框1705。
对于此实例,如果用户已请求中断渲染操作(例如,不论是对光照参数作出改变和/或是对区域将被渲染的次序再区分优先),那么在方框1727处可从用户接收光照参数和/或区域优先权信息,且在方框1730处可开始再渲染过程,其中可针对最高优先权区域进行处理。最高优先权区域可以是预定的,或可由用户选择,或可以是先前中断的渲染过程中待渲染的下一区域。当然,这些仅是可如何确定最高优先权区域的实例,且所主张的主题的范围在这些方面不受限制。
在方框1735处,对于当前区域,如果先前未分配高速缓冲存储器或如果需要额外的高速缓冲存储器,那么可分配高速缓冲存储器。如先前所论述,高速缓冲存储器可包括对象索引化高速缓冲存储器。在方框1740处,可使用经高速缓冲存储的对象信息和/或再计算的信息来渲染/再渲染当前区域,且在方框1745处,可将计算和/或再计算的信息高速缓冲存储在一个或一个以上先前分配的对象索引化高速缓冲存储器中。在方框1750处,如果有剩余区域要渲染,那么可在方框1755处开始下一区域的处理,且可在方框1735处继续渲染操作。如果没有剩余区域要渲染,那么处理结束。根据所主张的主题的实施例可包含方框1705-1750的全部、多于全部或少于全部。此外,方框1705-1750的次序仅是一种示范性次序,且所主张的主题的范围在此方面不受限制。
图18是包括光源1820、对象1830和对象1840的示范性场景1800的方框图。描绘相机1810以便说明此实例的相机的可能的观看点。场景1800意谓表示3D图形场景,其具有包括球体的对象1830和1840,但当然,所主张的主题的范围在此方面不受限制。
对于示范性场景1800,光源1820对于对象1840来说可能是可见的(即,为其提供光)。并且对于此实例,光源1820对于对象1830来说可能不可见。然而,对于此实例,对象1830上可见到来自对象1840的反射1835。如上所述,响应于光照参数的变化,可进行场景的再渲染。对于一些实施例,可再计算受到光照参数改变影响的对象信息,且在各种情况下,可从对象索引化高速缓冲存储器中提取未受光照参数改变影响的对象信息。对于图18的实例,显然,对光源1820的改变可影响与对象1840相关联的对象信息。然而,对于此实例,由于对象1830上的来自对象1840的反射的缘故,所以对象1830可间接受到对光源1820的改变的影响。因此,对于一些实施例,可为场景的一些或全部对象维持一相依性列表(或一个以上列表)。所述相依性列表可包括罗列哪些对象可将光反射和/或折射到特定对象上的信息。对于一实施例,相依性列表可自动产生并得以维持,而不需要用户干涉。对于一些实施例,用户可产生和/或修改相依性列表。
对于一实施例,可维持描述哪些对象可直接受到对各种光源的改变影响的一个或一个以上列表。可维持描述哪些对象可间接受到对各种光源的改变影响的一个或一个以上其它列表。这些列表可包含关于场景中各个对象之间的相依性的信息。对于示范性场景1800,描述直接受到光源1820影响的对象的列表可包含识别对象1840的信息。描述间接受到光源1820影响的对象的列表可包含识别对象1830的信息,且还可包含将对象1840识别为对象1830获得来自光源1820的光所依赖的对象的信息。或者,对于一实施例,不同于描述间接受到特定光源影响的对象的列表或除所述列表以外,可为每一对象维持包含识别特定对象所依赖的其它对象的信息的列表。因此,对于此与对象1830相关联的示范性列表,可识别出对象1840。此外,对于一些实施例,一个或一个以上对象可具有与其相关联的所述对象反射和/或折射光于其上的其它对象的列表。举例来说,与对象1840相关联的这种列表可包含识别对象1830的信息。上述用于产生和/或维持与对象之间的光照相依性有关的信息的技术和/或方法仅是实例,且所主张的主题的范围在这些方面不受限制。
对于一个或一个以上实施例,如果改变光照参数从而影响一个或一个以上对象,那么可确定其它对象是否可能通过反射和/或折射光的方式而间接受到光照改变的影响。这种确定可基于(至少部分)如上所述的包括相依性信息的列表。如果确定存在这些间接影响,那么可作为再渲染过程的一部分而再计算受到间接影响的对象的受影响对象信息。以此方式,对于此实例,如果作出影响对象1840的光照改变,那么可再计算与对象1830相关联的对象信息。对于一个或一个以上实施例,用户可选择启用或禁用对间接受影响对象信息的再计算。
尽管本文描述的用于辨别光照相依性的实施例论述以逐个对象为基础存储信息,但所主张的主题的范围在此方面不受限制。举例来说,用于辨别场景的对象之间的光照相依性的实施例可实施在利用可经像素索引化的缓冲器的再光照引擎中。这些缓冲器可为一个或一个以上像素存储关于哪些对象与特定像素相关联的信息。根据所主张的主题的像素索引化缓冲器的实施例可维持描述场景的对象之间的光照相依性的一个或一个以上列表。
图19是确定对象之间的光照相依性的方法的示范性实施例的流程图。在方框1910处,可修改光照参数。在方框1920处,可确定多个对象中哪些可直接受到对光照参数的修改影响。对于一实施例,如果对象对于正被修改的光源为可见的,那么可认为所述对象直接受到对光照参数的修改影响。在方框1930处,可确定所述多个对象中的哪些对象间接受到对光照参数的修改影响。对于一实施例,如果对象从直接受到对光照参数的修改影响的对象接收反射和/或折射光,那么可认为所述对象间接受到对光照参数的修改影响。然而,“直接受影响”和“间接受影响”的这些描述仅是实例,且所主张的主题的范围在这些方面不受限制。在方框1940处,可再计算与直接和间接受影响的对象相关联的对象信息。根据所主张的主题的实施例可包含方框1910-1940的全部、多于全部或少于全部。此外,方框1910-1940的次序仅是一种示范性次序,且所主张的主题的范围在此方面不受限制。
对于上述实施例中的至少一些实施例,可对光照参数作出改变,且可使用存储在一个或一个以上对象索引化高速缓冲存储器中的对象信息与受到光照参数改变影响的对象的再计算的信息的组合对帧进行再渲染。通过利用存储在高速缓冲存储器中的信息,可加速再渲染过程,如上所述。也可能有利的是,在场景的景深或其它相机/镜头参数改变的情况下提供加速再渲染。经加速的响应于例如景深的相机参数改变的再渲染可为技术员或其它用户提供快速反馈,且可增加技术员的生产力以及消耗较少的计算平台资源。
当用户改变场景的景深时提供某种程度的交互式用户体验的现有尝试可包含:也许通过改变各个像素的模糊度以试图以景深来近似完全渲染可能呈现的外观,来操纵二维图像的显示。如之前所论述,现有系统的完全保真度渲染可能非常耗时且/或耗费资源。
根据所主张的主题实施的实施例可将三维对象数据存储在对象索引化高速缓冲存储器中,如上所述。对于一个或一个以上实施例,当对相机参数作出改变时,可使用经高速缓冲存储的信息中的一些或全部,借此大大减少执行再渲染所需的计算量。此外,因为可针对光栅化操作优化图形处理单元,所以可以加速方式执行以新的相机参数进行的完全保真度再渲染,借此为技术员或其它用户提供更具交互性的体验。
图20是加速响应于景深的变化而进行的帧的再渲染的方法的示范性实施例的流程图。图20可与图5享有一些类似之处。可在方框2010处读取场景数据。在方框2020处,可对场景的对象执行切割(镶嵌)操作。在方框2030处,可执行遮影操作,且在方框2040处,可对图像进行光栅化。对于一个或一个以上实施例,遮影操作中的至少一些的结果可存储在一个或一个以上对象索引化高速缓冲存储器中。此外,对于一实施例,光栅化可由GPU执行,但所主张的主题的范围在此方面不受限制。在方框2050处,可对场景的景深作出改变。不是例如如上文结合图5描述返回遮影操作,而是处理可返回方框2040且可以更新的景深对帧进行再光栅化。因为对于此实施例不再执行切割和遮影操作,所以至少在先前遮影结果存储在一个或一个以上对象索引化高速缓冲存储器中的程度上,可对帧进行快速再渲染。对于一些实施例,可针对结果先前未存储在对象索引化高速缓冲存储器中的那些操作再计算一些遮影操作。根据所主张的主题的实施例可包含方框2010-2050的全部、多于全部或少于全部。此外,方框2010-2050的次序仅是一种示范性次序,且所主张的主题的范围在此方面不受限制。
图21是加速响应于相机参数修改而进行的帧的再渲染的方法的示范性实施例的流程图。在方框2110处,可将与帧的渲染相关联的对象信息存储在对象索引化高速缓冲存储器中,且在方框2120处,可修改相机参数。对于一实施例,相机参数可包括景深。在方框2130处,可使用存储在对象索引化高速缓冲存储器中的对象信息的至少一子集来对帧进行再渲染。根据所主张的主题的实施例可包含方框2110-2130的全部、多于全部或少于全部。此外,方框2110-2130的次序仅是一种示范性次序,且所主张的主题的范围在此方面不受限制。
除了加速响应于对相机参数的改变而执行的再渲染操作外,可能还需要加速响应于相机位置的改变而执行的再渲染操作。对于一些示范性实施例,相机位置可能与相机定向和/或视场相关,但所主张的主题的范围在此方面不受限制。如上所述,渲染过程的一部分可涉及确定从相机的视角来看哪些对象或对象上哪些点是可见的。如果相机移动,那么可见点的集合可能变化。对于在相机移动之前可能已被隐藏而现在可见的点,先前不会已高速缓冲存储任何信息,且因此可执行额外操作以分配高速缓冲存储器(如果先前未执行),计算遮影操作,且/或将计算结果存储在分配的高速缓冲存储器中。
图22是加速响应于相机位置的改变而进行的帧的再渲染的方法的示范性实施例的流程图。可在方框2210处读取场景数据。在方框2220处,可对场景的对象执行切割(镶嵌)操作。在方框2230处,可执行遮影操作,且在方框2240处,可对图像进行光栅化。对于一个或一个以上实施例,遮影操作中的至少一些的结果可存储在一个或一个以上对象索引化高速缓冲存储器中。此外,对于一实施例,光栅化可由GPU执行,但所主张的主题的范围在此方面不受限制。在方框2250处,可对场景的相机位置作出改变。为了再渲染场景,处理可返回方框2220。在方框2220处,可确定哪些先前隐藏的点现在是可见的且哪些先前可见的点现在被隐藏。在方框2230处,可针对对于相机来说现在是可见的先前隐藏的点执行遮影操作,且可将遮影结果存储在对象索引化高速缓冲存储器中。在方框2230处,也可再计算受到相机移动影响的其它点的遮影结果。在方框2240处,可使用新近可见的点和受到相机移动影响的其它点的计算出的遮影结果与先前高速缓冲存储在一个或一个以上对象索引化高速缓冲存储器中的对象信息的组合来对帧进行再光栅化。对于一个或一个以上实施例,再光栅化可由GPU执行。通过计算受到相机移动影响的点的遮影结果并使用高速缓冲存储的信息(在可能的情况下),可大大加速响应于相机位置的改变而进行的帧的再渲染。可通过使用一个或一个以上GPU执行光栅化操作来进一步加速再渲染。根据所主张的主题的实施例可包含方框2210-2250的全部、多于全部或少于全部。此外,方框2210-2250的次序仅是一种示范性次序,且所主张的主题的范围在此方面不受限制。
图23是加速响应于相机位置的改变而进行的帧的再渲染的方法的示范性实施例的流程图。在方框2310处,可将与帧的渲染相关联的对象信息存储在对象索引化高速缓冲存储器中,且在方框2320处,可修改相机位置。方框2330处,可使用存储在对象索引化高速缓冲存储器中的对象信息的至少一子集来对帧进行再渲染。根据所主张的主题的实施例可包含方框2310-2330的全部、多于全部或少于全部。此外,方框2310-2330的次序仅是一种示范性次序,且所主张的主题的范围在此方面不受限制。
在以上描述内容中,已描述所主张的主题的各个方面。出于阐释的目的,陈述了系统和配置以提供对所主张的主题的详尽理解。然而,得到本揭示案的益处的所属领域的技术人员应了解,可在没有特定细节的情况下实践所主张的主题。在其它情况下,省略和/或简化了众所周知的特征以免混淆所主张的主题。虽然本文已说明和/或描述了某些特征,但所属领域的技术人员现将构想出许多修改、替代、变化和/或等效物。因此,应了解,所附权利要求书希望涵盖在所主张的主题的真实精神内的所有此类修改和/或变化。

Claims (8)

1.一种方法,其包括:
将与帧的渲染相关联的对象信息存储在对象索引化高速缓冲存储器中;
修改光照参数;以及
使用存储在所述对象索引化高速缓冲存储器中的对象信息的至少一子集来再渲染所述帧。
2.根据权利要求1所述的方法,其中将与帧的渲染相关联的对象信息存储在对象索引化高速缓冲存储器中包括存储中间遮影结果。
3.根据权利要求1所述的方法,其进一步包括再计算受到所述光照参数的修改影响的对象信息。
4.根据权利要求1所述的方法,其中再渲染所述帧进一步包括使用所述再计算的对象信息来再渲染所述帧。
5.根据权利要求1所述的方法,其中再计算受到所述光照参数的修改影响的对象信息包括确定一个或一个以上对象的多个点中的哪些点受到所述光照参数的修改影响。
6.根据权利要求1所述的方法,其中再渲染所述帧包括使用图形处理单元对所述帧进行再光栅化。
7.根据权利要求1所述的方法,其中存储与帧的渲染相关联的对象信息包括存储与帧的初始渲染相关联的对象信息。
8.根据权利要求1所述的方法,其中将与帧的渲染相关联的对象信息存储在对象索引化高速缓冲存储器中包括存储最终遮影结果。
CN2007101300427A 2006-07-25 2007-07-25 具有光照改变的帧的再渲染加速方法 Active CN101178807B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/493,058 2006-07-25
US11/493,058 US8633927B2 (en) 2006-07-25 2006-07-25 Re-render acceleration of frame with lighting change

Publications (2)

Publication Number Publication Date
CN101178807A true CN101178807A (zh) 2008-05-14
CN101178807B CN101178807B (zh) 2011-04-06

Family

ID=38985711

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101300427A Active CN101178807B (zh) 2006-07-25 2007-07-25 具有光照改变的帧的再渲染加速方法

Country Status (4)

Country Link
US (1) US8633927B2 (zh)
KR (1) KR100908147B1 (zh)
CN (1) CN101178807B (zh)
TW (1) TWI479447B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8633927B2 (en) 2006-07-25 2014-01-21 Nvidia Corporation Re-render acceleration of frame with lighting change
US8022958B2 (en) * 2007-04-04 2011-09-20 Qualcomm Incorporated Indexes of graphics processing objects in graphics processing unit commands
US8547378B2 (en) * 2008-08-28 2013-10-01 Adobe Systems Incorporated Time-based degradation of images using a GPU
US8810572B2 (en) * 2011-10-31 2014-08-19 Qualcomm Incorporated Tessellation cache for object rendering
US8970596B2 (en) * 2012-02-17 2015-03-03 Apple Inc. Using render-graph characteristics to optimize the rendering of an adjusted image
EP3123449B1 (en) 2014-03-25 2020-01-01 Apple Inc. Method and system for representing a virtual object in a view of a real environment
KR102306780B1 (ko) * 2014-12-15 2021-09-30 삼성전자주식회사 영상 처리 장치 및 방법
US10155158B2 (en) 2016-06-13 2018-12-18 King.Com Ltd. Rendering method
KR101966247B1 (ko) * 2016-12-22 2019-04-08 주식회사 디지털아이디어 3차원 영상의 오브젝트 처리장치 및 그 동작 방법
CN114140571A (zh) * 2020-08-15 2022-03-04 华为云计算技术有限公司 渲染方法、设备以及系统
CN114255315A (zh) * 2020-09-25 2022-03-29 华为云计算技术有限公司 一种渲染方法、装置及设备

Family Cites Families (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5088054A (en) 1988-05-09 1992-02-11 Paris Ii Earl A Computer graphics hidden surface removal system
US5283860A (en) 1990-11-15 1994-02-01 International Business Machines Corporation System and method for displaying trimmed surfaces using bitplane masking
US5592678A (en) 1991-07-23 1997-01-07 International Business Machines Corporation Display adapter supporting priority based functions
US5388841A (en) 1992-01-30 1995-02-14 A/N Inc. External memory system having programmable graphics processor for use in a video game system or the like
GB9301661D0 (en) 1993-01-28 1993-03-17 Philips Electronics Uk Ltd Rendering an image
US5574835A (en) 1993-04-06 1996-11-12 Silicon Engines, Inc. Bounding box and projections detection of hidden polygons in three-dimensional spatial databases
US5596686A (en) 1994-04-21 1997-01-21 Silicon Engines, Inc. Method and apparatus for simultaneous parallel query graphics rendering Z-coordinate buffer
US5600763A (en) 1994-07-21 1997-02-04 Apple Computer, Inc. Error-bounded antialiased rendering of complex scenes
JPH11515121A (ja) 1995-07-26 1999-12-21 レイカー,インコーポレイティド スパンおよびサブスパン・ソーティング・レンダリング・システムのための方法および装置
US5808617A (en) * 1995-08-04 1998-09-15 Microsoft Corporation Method and system for depth complexity reduction in a graphics rendering system
US6064393A (en) * 1995-08-04 2000-05-16 Microsoft Corporation Method for measuring the fidelity of warped image layer approximations in a real-time graphics rendering pipeline
US5864342A (en) * 1995-08-04 1999-01-26 Microsoft Corporation Method and system for rendering graphical objects to image chunks
US5867166A (en) * 1995-08-04 1999-02-02 Microsoft Corporation Method and system for generating images using Gsprites
US5774386A (en) 1995-09-08 1998-06-30 Eastman Kodak Company Method and apparatus for performing function evaluation using a cache
US5977986A (en) 1995-12-06 1999-11-02 Intel Corporation Image encoding for faster decoding
US5701404A (en) 1996-05-31 1997-12-23 Softimage Method and system for efficiently trimming a nurbs surface with a projected curve
US6111582A (en) * 1996-12-20 2000-08-29 Jenkins; Barry L. System and method of image generation and encoding using primitive reprojection
US5914726A (en) * 1997-06-27 1999-06-22 Hewlett-Packard Co. Apparatus and method for managing graphic attributes in a memory cache of a programmable hierarchical interactive graphics system
US6437796B2 (en) 1998-02-17 2002-08-20 Sun Microsystems, Inc. Multiple processor visibility search system and method
US6329986B1 (en) 1998-02-21 2001-12-11 U.S. Philips Corporation Priority-based virtual environment
US6091422A (en) * 1998-04-03 2000-07-18 Avid Technology, Inc. System for editing complex visual data providing a continuously updated rendering
US6570578B1 (en) * 1998-04-03 2003-05-27 Avid Technology, Inc. System for automatic generation of selective partial renderings of complex scenes
AU5688199A (en) 1998-08-20 2000-03-14 Raycer, Inc. System, apparatus and method for spatially sorting image data in a three-dimensional graphics pipeline
US6771264B1 (en) * 1998-08-20 2004-08-03 Apple Computer, Inc. Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor
US7817158B1 (en) * 1998-10-23 2010-10-19 Autodesk, Inc. Specifying operations to be applied to the attributes of a set of objects
US6549210B1 (en) 1999-02-03 2003-04-15 Ati Technologies Inc. Method and apparatus for cache index hashing
US6614445B1 (en) 1999-03-23 2003-09-02 Microsoft Corporation Antialiasing method for computer graphics
US6603474B1 (en) 1999-05-27 2003-08-05 International Business Machines Corporation Method and apparatus for occlusion culling of objects in a data processing system
US6426747B1 (en) * 1999-06-04 2002-07-30 Microsoft Corporation Optimization of mesh locality for transparent vertex caching
US6577679B1 (en) 1999-09-30 2003-06-10 Hewlett-Packard Development Company Lp Method and apparatus for transcoding coded picture signals from object-based coding to block-based coding
US6377257B1 (en) 1999-10-04 2002-04-23 International Business Machines Corporation Methods and apparatus for delivering 3D graphics in a networked environment
US6684255B1 (en) 1999-10-26 2004-01-27 International Business Machines Corporation Methods and apparatus for transmission and rendering of complex 3D models over networks using mixed representations
US6459434B1 (en) 1999-11-03 2002-10-01 Intel Corporation Apparatus and method for progressively rendered procedural textures
US6396503B1 (en) 1999-12-31 2002-05-28 Hewlett-Packard Company Dynamic texture loading based on texture tile visibility
WO2001063561A1 (en) 2000-02-25 2001-08-30 The Research Foundation Of State University Of New York Apparatus and method for volume processing and rendering
US6426755B1 (en) 2000-05-16 2002-07-30 Sun Microsystems, Inc. Graphics system using sample tags for blur
US7071937B1 (en) 2000-05-30 2006-07-04 Ccvg, Inc. Dirt map method and apparatus for graphic display system
US7210099B2 (en) * 2000-06-12 2007-04-24 Softview Llc Resolution independent vector display of internet content
US6593925B1 (en) 2000-06-22 2003-07-15 Microsoft Corporation Parameterized animation compression methods and arrangements
US7348977B2 (en) 2000-07-19 2008-03-25 Pixar Subsurface scattering approximation methods and apparatus
US6999100B1 (en) 2000-08-23 2006-02-14 Nintendo Co., Ltd. Method and apparatus for anti-aliasing in a graphics system
US7061502B1 (en) 2000-08-23 2006-06-13 Nintendo Co., Ltd. Method and apparatus for providing logical combination of N alpha operations within a graphics system
US6672963B1 (en) 2000-09-18 2004-01-06 Nintendo Co., Ltd. Software implementation of a handheld video game hardware platform
KR20020022388A (ko) 2000-09-20 2002-03-27 박주선 주문형 미디어 유료 서비스 시스템 및 그 방법
US7376279B2 (en) 2000-12-14 2008-05-20 Idx Investment Corporation Three-dimensional image streaming system and method for medical images
US6850235B2 (en) 2000-12-27 2005-02-01 Fly Over Technologies Inc. Efficient image parcel texture rendering with T-junction crack elimination
US6677957B2 (en) 2001-01-09 2004-01-13 Intel Corporation Hardware-accelerated visualization of surface light fields
US6798421B2 (en) * 2001-02-28 2004-09-28 3D Labs, Inc. Ltd. Same tile method
US6741259B2 (en) * 2001-03-30 2004-05-25 Webtv Networks, Inc. Applying multiple texture maps to objects in three-dimensional imaging processes
EP1248250A1 (en) 2001-04-04 2002-10-09 Sun Microsystems, Inc. Optimized data access for drawing operations
US6754799B2 (en) 2001-05-16 2004-06-22 Microsoft Corporation System and method for indexing and retrieving cached objects
US6989840B1 (en) 2001-08-31 2006-01-24 Nvidia Corporation Order-independent transparency rendering system and method
US7145577B2 (en) 2001-08-31 2006-12-05 Micron Technology, Inc. System and method for multi-sampling primitives to reduce aliasing
WO2003034343A1 (fr) 2001-10-15 2003-04-24 Fujitsu Limited Tri hierarchique d'objets lies dans un espace tridimensionnel virtuel
JP3761085B2 (ja) * 2001-11-27 2006-03-29 株式会社ソニー・コンピュータエンタテインメント 画像処理装置及びその構成部品、レンダリング処理方法
US6903741B2 (en) * 2001-12-13 2005-06-07 Crytek Gmbh Method, computer program product and system for rendering soft shadows in a frame representing a 3D-scene
US20030169255A1 (en) 2002-03-11 2003-09-11 Lavelle Michael G. Two-sided lighting in a single pass
US7009605B2 (en) 2002-03-20 2006-03-07 Nvidia Corporation System, method and computer program product for generating a shader program
US7262770B2 (en) 2002-03-21 2007-08-28 Microsoft Corporation Graphics image rendering with radiance self-transfer for low-frequency lighting environments
KR20030083962A (ko) * 2002-04-24 2003-11-01 주식회사 알오지 3차원 렌더링 이미지에 쉐이딩 효과를 적용하는 방법 및이를 구현한 프로그램을 저장한 정보저장매체
US6809739B2 (en) 2002-04-30 2004-10-26 Silicon Graphics, Inc. System, method, and computer program product for blending textures during rendering of a computer generated image using a single texture as a mask
US7009608B2 (en) 2002-06-06 2006-03-07 Nvidia Corporation System and method of using multiple representations per object in computer graphics
US6853377B2 (en) 2002-06-26 2005-02-08 Nvidia Corporation System and method of improved calculation of diffusely reflected light
US6876362B1 (en) 2002-07-10 2005-04-05 Nvidia Corporation Omnidirectional shadow texture mapping
JP4467267B2 (ja) 2002-09-06 2010-05-26 株式会社ソニー・コンピュータエンタテインメント 画像処理方法、画像処理装置、および画像処理システム
US6990230B2 (en) 2002-11-15 2006-01-24 Warner Bros. Entertainment Inc. Reverse-rendering method for digital modeling
US7145565B2 (en) 2003-02-27 2006-12-05 Nvidia Corporation Depth bounds testing
FR2852128A1 (fr) 2003-03-07 2004-09-10 France Telecom Procede pour la gestion de la representation d'au moins une scene 3d modelisee.
US7259765B2 (en) * 2003-04-04 2007-08-21 S3 Graphics Co., Ltd. Head/data scheduling in 3D graphics
US6954211B2 (en) * 2003-06-30 2005-10-11 Microsoft Corporation Hardware-accelerated anti-aliased graphics
US8264489B2 (en) 2003-07-11 2012-09-11 Intel Corporation Interface remoting
US7444595B2 (en) 2003-08-13 2008-10-28 National Instruments Corporation Graphical programming system and method for creating and managing a scene graph
US7091979B1 (en) 2003-08-29 2006-08-15 Nvidia Corporation Pixel load instruction for a programmable graphics processor
US20050083340A1 (en) * 2003-10-15 2005-04-21 Microsoft Corporation Bi-scale radiance transfer
US7015914B1 (en) 2003-12-10 2006-03-21 Nvidia Corporation Multiple data buffers for processing graphics data
US7145656B2 (en) 2003-12-15 2006-12-05 E. I. Du Pont De Nemours And Company Computer-implemented method for matching paint
US7554538B2 (en) 2004-04-02 2009-06-30 Nvidia Corporation Video processing, such as for hidden surface reduction or removal
WO2005104042A1 (en) * 2004-04-20 2005-11-03 The Chinese University Of Hong Kong Block-based fragment filtration with feasible multi-gpu acceleration for real-time volume rendering on standard pc
US7821516B2 (en) * 2004-05-17 2010-10-26 Pixar Automatic pre-render pinning of change isolated assets methods and apparatus
US7388585B2 (en) 2004-09-20 2008-06-17 My Virtual Reality Software Method, system and device for efficient distribution of real time three dimensional computer modeled image scenes over a network
US7920144B2 (en) * 2005-01-18 2011-04-05 Siemens Medical Solutions Usa, Inc. Method and system for visualization of dynamic three-dimensional virtual objects
US20060177122A1 (en) 2005-02-07 2006-08-10 Sony Computer Entertainment Inc. Method and apparatus for particle manipulation using graphics processing
US7427986B2 (en) * 2005-03-03 2008-09-23 Pixar Hybrid hardware-accelerated relighting system for computer cinematography
CA2634494C (en) * 2005-12-24 2015-10-27 Joshua D. I. Distler Methods and files for delivering imagery with embedded data
US8633927B2 (en) 2006-07-25 2014-01-21 Nvidia Corporation Re-render acceleration of frame with lighting change

Also Published As

Publication number Publication date
TW200820128A (en) 2008-05-01
KR100908147B1 (ko) 2009-07-16
TWI479447B (zh) 2015-04-01
CN101178807B (zh) 2011-04-06
US20080024495A1 (en) 2008-01-31
KR20080010346A (ko) 2008-01-30
US8633927B2 (en) 2014-01-21

Similar Documents

Publication Publication Date Title
CN101178807B (zh) 具有光照改变的帧的再渲染加速方法
US11682158B2 (en) Foveated rendering
CN106575228B (zh) 图形处理中的渲染目标命令重新排序
JP5706241B2 (ja) 画像生成プログラム、画像生成装置、画像生成システム及び画像生成方法
CN101639929B (zh) 图形处理系统
EP2946364B1 (en) Rendering graphics data using visibility information
CN101911125B (zh) 图形处理系统中对离屏表面的多重缓冲支持
JP4941934B2 (ja) 画像生成装置および画像生成プログラム
CN1170618A (zh) 模拟三维显示图场光标显示方法、游戏机系统及记录媒体
CN101336122B (zh) 游戏装置及游戏装置的控制方法
JP4840800B2 (ja) 画像処理装置、遊技機、画像処理方法、及びプログラム
US8400445B2 (en) Image processing program and image processing apparatus
CN112190941A (zh) 一种阴影处理方法和装置
CN112802170A (zh) 光照图像生成方法、装置、设备和介质
JP4753198B2 (ja) 画像生成装置、遊技機、画像生成方法、及びプログラム
CN111402385A (zh) 一种模型处理的方法及装置、电子设备、存储介质
JP2021532470A (ja) 視覚的ノイズ低減のための深度レイ層
US10593119B2 (en) Projected augmented reality to obscure physical objects
JP2007328460A (ja) 画像生成プログラム
JPH06215150A (ja) 三次元画像表示装置
CN116075862A (zh) 对象空间渲染中的布告板层
JP5339309B2 (ja) 画像処理装置、遊技機、画像処理方法、及びプログラム
Goodwin et al. In-Game Visuals: The Importance of Being Pretty
CN115904192A (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