首页> 中国专利> 用于对计算机图形图像进行阴影化和纹理化的方法及设备

用于对计算机图形图像进行阴影化和纹理化的方法及设备

摘要

提供了一种用于在后续渲染中使用动态渲染纹理在基于图块的渲染系统中对计算机图形图像进行阴影化和纹理化的方法和设备。得到场景空间几何结构以用于动态渲染纹理并传递至图块化单元,该图块化单元得到参照纹理的场景的场景空间几何结构。还可以得到参照动态渲染纹理的场景的场景空间几何结构并被传递到所述图块化单元。所述图块化单元使用从所述场景空间几何结构得到的对象数据来检测对还未被渲染的动态地渲染纹理的区域的参照。然后这些区域被动态地渲染。

著录项

  • 公开/公告号CN106296790A

    专利类型发明专利

  • 公开/公告日2017-01-04

    原文格式PDF

  • 申请/专利权人 想象技术有限公司;

    申请/专利号CN201610652483.2

  • 发明设计人 J·W·豪森;

    申请日2011-03-18

  • 分类号G06T15/04;

  • 代理机构北京润平知识产权代理有限公司;

  • 代理人金旭鹏

  • 地址 英国赫特福德郡

  • 入库时间 2023-06-19 01:17:24

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-02-14

    授权

    授权

  • 2017-02-01

    实质审查的生效 IPC(主分类):G06T15/04 申请日:20110318

    实质审查的生效

  • 2017-01-04

    公开

    公开

说明书

本申请为申请日为2011年3月18日、题为“基于图块的渲染系统中基于需求的纹理渲染”的中国发明专利申请201180014841.2的分案申请。

技术领域

本发明涉及三维计算机图形渲染系统,尤其涉及与基于图块的渲染系统中纹理的渲染相关联的方法和设备。

背景技术

在实时计算机图形中对表面执行渲染是很普通的,然后在随后的渲染中表面被用作纹理,即渲染后的表面变为新的纹理或“动态渲染”的纹理。例如为了渲染包括场景映像的场景,通常首先将场景渲染为环境纹理贴图(map)。然后该贴图在对象的阴影化期间被用于在对象上产生环境的映像。这可以被用于诸如在镜像建筑中显示映像。

另外对于环境贴图(mapping)在使用被称为阴影贴图的技术的现代计算机图形应用上是常见的。阴影贴图技术将场景中来自光源角度的对象的深度渲染成纹理贴图。这些纹理贴图在随后的对象渲染期间被使用以便确定关于光源的每个像素是否在阴影中。这通过比较正在被渲染的对象像素的深度和存储在“阴影贴图”纹理中等效位置处的深度来完成,例如,如果对象的深度大于阴影贴图中的深度,那么其在相对于光源的另一对象的后面,所以在该像素的渲染期间,不应该应用光源的照射效果。对于与阴影贴图相关联的纹理是非常大的诸如2048x2048或者更大,较高质量的渲染通常需要具有较大的纹理尺寸,这是很常见的。

应当注意的是在以上技术上存在多种变化且以上二者作为示例,而本发明的范围不制于这些技术。

在现代图形应用中对于纹理的这些渲染和随后从其的读取的东西可以使用相当大比例的可用存储器带宽来以交互式帧速率来渲染场景。此外对于许多渲染成这些纹理的数据随后不被使用,这不是异常的。例如图1示出了细分成区域T0到T23的先前渲染的纹理100和将部分纹理100贴图成三角形120的区域100。可以看出,仅仅先前渲染的纹理的图块T3、T8、T9、T14至T16、T21和T22需要被栅格化以满足纹理到三角形120的贴图。

基于图块的渲染系统是众所周知的。这些系统将图像细分成多个矩形块或图块。完成该过程方式和随后执行的纹理化和阴影化在图2中示意性地示出。

首先,图元/命令提取单元201从存储器检索命令和图元数据并将其传递到几何结构(geometry)处理单元202。其使用已知方法将图元和命令数据传输至屏幕空间。

然后该数据被提供至图块化单元203,该图块化单元203将对象数据从屏幕空间几何结构插入到用于一组定义的矩形区域或图块的每个矩形区域或图块的对象列表中。用于每个图块的对象列表包含完全地或部分地存在于该图块中的图元。该列表存在以用于屏幕上的每个图块,尽管某些对象列表中可以没有数据。这些对象列表通过图块参数提取单元205提取,该图块参数提取单元205一个图块一个图块地向隐式表面移除单元(HSR)206提供对象列表,隐式表面移除单元(HSR)206移除将不能有助于最终场景的表面(通常因为他们被另一表面遮盖)。HSR单元处理图块中的每个图元并只传递可见像素的数据到阴影化单元208。

阴影化单元从HSR得到数据并使用纹理化单元210将其用来提取纹理以及使用已知技术将阴影化应用到可见对象内的每个像素。阴影化单元然后将纹理化和阴影化的数据馈送到片上图块缓冲器212。因为数据被暂时存储在片上图片缓冲器中,与暂时存储相关联的外部存储器带宽被淘汰。

一旦每个图块都已经被纹理化和阴影化,结果数据就被写入外部场景缓冲器214。

发明内容

本发明的优选实施方式提供了一种使基于图块的渲染系统能够栅格化并只将渲染的纹理表面存储在随后的渲染将用到的地方的方法和设备。这通过对所有纹理表面执行如上文所述的图块化阶段而将那些动态渲染的纹理表面的栅格化阶段推迟到他们被参照(reference)的点来完成。使用“基于需求(demand)的纹理渲染”(如,来自图1的100)的场景的渲染可能仅参照每个图块内每个纹理的小区域,系统能够在引入小的回写高速缓存(cache)的点处渲染一个或多个纹理化图块以在主渲染中立即使用。由于参照的局部性质,很可能被渲染的数据将继续位于高速缓存子系统中以用于需求的任何图块,因此大幅地减少了与纹理的渲染及其随后的使用都相关的存储器宽带。

附图说明

现在将通过参考附图的示例详细地描述本发明的优选实施方式,其中:

图1示意性地示出了先前渲染的纹理的小区域可以怎样被随后参照以用于对象的纹理化;

图2显示了如上所述的已知基于图块的渲染系统的示意图;

图3示出了体现本发明的基于需求的纹理渲染的操作;

图4示出了本发明的实施方式中的用于基于需求的纹理渲染的对于基于图块的渲染系统的变型;

图5示出了本发明实施方式中的对于请求实施基于需求的纹理渲染的纹理管线(pipeline)的变型。

具体实施方式

图3示出了基于图块的系统中需求模式纹理栅格化的操作。应用300首先生成用于将被渲染成如图1的100中的纹理的图像的几何结构305。该几何结构在310处使用众所周知的技术被处理以产生被传递至图块化单元315的屏幕空间几何结构,图块化单元315生成所描述的图块屏幕空间参数320以用于基于图块的渲染系统。应当注意的是有效标记表格358指示纹理中的每个图块的当前状态(即是否已经被渲染)。该表格通常存储在存储器中并包含用于指示每个图块是否已经被渲染的每个图块的状态标记,所有标记最初被都清除以用于指示没有图块已经被渲染。每当一个图块被渲染,相应于该图块的标记被设置。

然后应用通过产生主场景几何结构335在330处切换到主场景的渲染,主场景几何结构335然后通过几何结构处理器340处理成屏幕空间并在345处进行图块化以产生用于每个图块的对象列表。然后作为结果的主场景参数350在355处一次一个图块地被栅格化。在栅格化过程期间栅格化硬件(未示出)检测动态纹理的区域,例如被请求但未出现在纹理存储中的环境地图。这些相应于上文参照图1讨论的类型的纹理化。栅格化程序通过读取图块有效标记358确定每个纹理化图块(如图1中所示)是否已经被渲染。当栅格化程序确定纹理化图块还没有被渲染时,栅格化程序从栅格化主场景切换到栅格化用于纹理渲染320需要的纹理化图块的参数,纹理渲染320与需要的区域相关联。随后的栅格化处理375产生用于被写入高速缓存360的T3 380(来自图1)的纹理图像数据。然后用于纹理化图块的相应的有效标记被设置并且然后栅格化硬件在385处切换回栅格化主场景355。该过程被重复用于场景的所有区域,场景的所有区域被发现将根据动态纹理而被请求。例如来自图1的区域T3、T8、T9、T14、T15、T16、T21和T22。应当注意的是动态纹理的剩余区域不被栅格化从而节约了极大的存储器宽带和处理费用。

应当注意的是写入高速缓存的纹理化图块数据可以被写回到存储器(未示出)或者当其从高速缓存360驱除时丢弃。在数据被丢弃的情况中如果该图块(如T3)被再次参照则他可以在以后再次如上文所述被重新创建。这种方法仅允许非常大的纹理表面通过与图块化的几何结构参数相关联的存储器表示。在纹理数据被丢弃而不是被写回到存储器的情况下,相应的有效标记358被清除以用于指示该纹理不再出现。

图4示出了如上文讨论的使用动态纹理化实施纹理化表面的基于图块的模式渲染的系统。应当注意的是图块化/几何结构处理单元与在图2中示出的相同而在此未示出。图块参数提取单元410依据基于普通图块的渲染系统提取图块化的参数列表并将对象数据传递到隐式表面移除单元(HSR)420。使用众所周知的方法移除将不能有助于最终场景的表面(通常因为他们被另一表面遮盖)。HSR单元处理图块中的每个图元并且仅将用于在像素处可见的表面的数据传递到阴影化单元430。

阴影化单元430从HSR单元420得到对象并使用众所周知的技术向每个可见对象中的每个像素应用阴影化和纹理化,这些众所周知的技术包括向纹理采样单元(TSU)460发出纹理化请求。

在图5中示出了TSU。纹理寻址单元500得到纹理采样请求并使用众所周知的方法计算用于每个纹理提取的X和Y地址。X和Y地址被传送到图块地址计算单元550,该图块地址计算单元550确定请求的纹理提取所处的图块的地址。该计算通常从X和Y地址移除低阶位比特以形成图块X和Y地址,然后这些值相乘在一起并添加到基址以形成存储在图块有效表格(图4480)中的“图块有效标记”的地址,该图块有效表格存储在存储器中,应当注意的是可以使用地址计算的其他方法。有效标记的地址被传递到有效标记提取单元560,该有效标记提取单元560从存储器中的有效标记表格检索指定的标记。然后该标记作为“不存在”信号570被发出。应当注意的是有效标记提取单元560应该通过存储器高速缓存操作以便改善他的执行。有效标记提取单元还将有效标记传递到地址转换器520,该地址转换器520使用众所周知的方法将X、Y地址转换成线性存储器地址。如果有效标记指示纹理化图块不存在,则地址转换单元停止执行。如果有效标记指示纹理化图块存在,则地址转换单元将计算的纹理地址传递到纹理高速缓存单元530,必要时纹理高速缓存单元530从内部或者外部存储器检索纹理数据。检索的数据被传递到纹理过滤单元540,该纹理过滤单元540使用众所周知的技术过滤返回的数据,得到的过滤后的数据被传回到图4中的阴影化单元430。

如果标记指示纹理化图块还没有被栅格化,则“不存在”信号570被发送到图4中的环境切换单元(CSU)400,该CSU 400指示需要切换到渲染“错过”纹理化的图块(即纹理化不可用)。这针对诸如环境纹理化的动态渲染的纹理化而发生。

然后CSU指示栅格化程序中的所有单元切换到栅格化请求的纹理化(即错过纹理化的图块)。应当注意的是CSU可以栅格化单个错过的图块或多个位于错过纹理化的区域中的多个图块。CSU 400可以作为硬件模块、分别的可编程的处理器/微控制器或使用“主机”处理器和装置中断来实施。

当系统栅格化CSU指示的每个图块时,缓冲器440经由高速缓存470将每个完成的纹理化图块输出到存储器。通常该高速缓存将使用众所周知的“回写缓存”的高速缓存类型,以便当CSU指示的图块已经栅格化时数据局部地位于高速缓存中。然后CSU为已经栅格化的图块更新图块有效标记480以指示他们现在已经存在。现在高速缓存将存储动态贴图的纹理,该纹理请求用于被标记为请求该纹理的图块的格栅化。

在对请求的图块格栅化处理完成的时候,CSU将格栅化单元切换回处理原始渲染并允许图5中的地址转换器520如上文描述的继续向高速缓存单元发出纹理寻址。在栅格化的纹理化图块现在局部地位于高速缓存中时,对于他们的任何纹理提取现在访问高速缓存以为了降低与那些提取相关联的存储器带宽,即存储在高速缓存中的动态贴图的纹理。

应当注意的是当为新的图块数据让出空间时,高速缓存可以被替换为丢弃图块的缓冲存储器而不是将他们写回到存储器的缓冲存储器。在这些情况中再次参照的丢弃的图块将需要使用上述过程再次被栅格化。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号