一种全局光照相交加速方法、装置及计算机存储介质
技术领域
本发明实施例涉及图形处理器(GPU,Graphics Processing Unit)技术领域,尤其涉及一种基于层级场景的全局光照相交加速方法、装置及计算机存储介质。
背景技术
三维(3D)渲染可以指将3D对象的数据合成为在相机的给定视点观察到的图像的图像处理过程,而作为渲染方法的一个实例,光线追踪技术可以包括通过追踪沿着从相机的视点朝向图像的每个像素发射光线的入射光路径来生成图像。
在利用光线追踪技术进行渲染的过程中,对于考虑全局光照的计算情形,通常对于间接光照的时候且渲染点在漫反射表面(perfect diffuse surface)时,渲染计算单元会请求射线生成单元向以渲染点为球心的半球面采样并发射出射线来获取入射辐亮度
用来计算漫反射表面的出射辐亮度,由于场景中的漫反射表面通常较多且漫反射表面因其各向同性而需要更多方向的入射辐亮度
,所以通常全局光照的计算瓶颈在于快速计算出漫反射表面的多个方向的入射辐亮度
。
而常规方案在计算全局光照中,当存在大量的各个方向的漫反射入射辐亮度
的时候,需要耗费较多的计算量和计算时间,导致在当前GPU的计算能力下,实现多采样或追踪深度较大的全局光照的实时光线追踪计算较为困难。
发明内容
有鉴于此,本发明实施例期望提供一种基于层级场景的全局光照相交加速方法、装置及计算机存储介质;能够降低计算全局光照的运算量和运算时间,提高了全局光照的计算效率。
本发明实施例的技术方案是这样实现的:
第一方面,本发明实施例提供了一种基于层级场景的全局光照相交加速方法,所述方法包括:
针对层级场景中设定层级所包括的每个轴侧包围盒,根据各轴侧包围盒内包含图元的材料反射特性对应获取各轴侧包围盒的平均材料反射特性;
相应于射线对应于追踪漫反射表面的入射辐亮度,计算与所述射线相交的目标轴测包围盒;
通过对所述目标轴侧包围盒的平均材料反射特性采样值进行插值,获取所述目标轴侧包围盒的平均材料反射特性在反射辐亮度方向的值;
利用所述目标轴侧包围盒的平均材料反射特性在反射辐亮度方向的值按照设定的渲染策略进行渲染,获取所述目标轴侧包围盒的平均反射辐亮度;并将所述目标轴侧包围盒的平均反射辐亮度确定为所述漫反射表面在所述目标轴侧包围盒区域的入射辐亮度。
第二方面,本发明实施例提供了一种基于层级场景的全局光照相交加速装置,所述装置包括:层级场景生成部分,射线-物体相交计算部分、插值部分和渲染计算部分;其中,
所述层级场景生成部分,经配置为:针对层级场景中设定层级所包括的每个轴侧包围盒,根据各轴侧包围盒内包含图元的材料反射特性对应获取各轴侧包围盒的平均材料反射特性;
所述射线-物体相交计算部分,经配置为相应于射线对应于追踪漫反射表面的入射辐亮度,计算与所述射线相交的目标轴测包围盒;
所述插值部分,经配置为向通过对所述目标轴侧包围盒的平均材料反射特性采样值进行插值,获取所述目标轴侧包围盒的平均材料反射特性在反射辐亮度方向的值;
所述渲染计算部分,经配置为利用所述目标轴侧包围盒的平均材料反射特性在反射辐亮度方向的值按照设定的渲染策略进行渲染,获取所述目标轴侧包围盒的平均反射辐亮度;并将所述目标轴侧包围盒的平均反射辐亮度确定为所述漫反射表面在所述目标轴侧包围盒区域的入射辐亮度。
第三方面,本发明实施例提供了一种GPU,所述GPU至少包括第二方面所述的基于层级场景的全局光照相交加速装置。
第四方面,本发明实施例提供了一种计算机存储介质,所述计算机存储介质存储有基于层级场景的全局光照相交加速程序,所述基于层级场景的全局光照相交加速程序被至少一个处理器执行时实现第一方面所述的基于层级场景的全局光照相交加速方法的步骤。
本发明实施例提供了一种基于层级场景的全局光照相交加速方法、装置及计算机存储介质;针对漫反射表面的射线追踪,利用轴侧包围盒内图元的平均反射特性作为轴侧包围盒内各图元的材料反射特性的近似值,当渲染计算单元进行渲染计算时可以降低针对追踪漫反射表面入射辐亮度
的计算量和计算时间。
附图说明
图1为能够实施基于层级场景的全局光照相交加速技术的计算装置框图。
图2为说明图1中处理器、GPU和系统存储器的实例实施方案的框图。
图3为本发明实施例提供的一种基于层级场景的全局光照相交加速方法流程示意图。
图4为本发明实施例提供的非空轴侧包围盒的漫反射表面示意图。
图5为本发明实施例提供的一种基于层级场景的全局光照相交加速装置组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
图1为本发明实施例提供的一种能够实施基于层级场景的全局光照相交加速技术的计算装置2,该计算装置2的实例包括但不限于:无线装置、移动或蜂窝电话(包含所谓的智能电话)、个人数字助理(PDA)、视频游戏控制台(包含视频显示器、移动视频游戏装置、移动视频会议单元)、膝上型计算机、桌上型计算机、电视机顶盒、平板计算装置、电子书阅读器、固定或移动媒体播放器,等。在图1的实例中,该计算装置2可以包括:处理器6、系统存储器10和GPU 12。计算装置2还可包含显示处理器14、收发器模块3、用户接口4和显示器8。收发器模块3和显示处理器14两者可为与处理器6和/或GPU 12相同的集成电路(IC)的部分,两者可在包含处理器6和/或GPU 12的一或多个IC的外部,或可形成于在包含处理器6和/或GPU 12的IC外部的IC中。
为清楚起见,计算装置2可包含图1中未图示的额外模块或单元。举例来说,计算装置2可在其中计算装置2为移动无线电话或的实例中包含扬声器和麦克风(两者均未在图1中示出)来实现电话通信,或在计算装置2为媒体播放器的情况下包含扬声器。计算装置2还可包含摄像机。此外,计算装置2中所示的各种模块和单元可能不是在计算装置2的每个实例中都是必需的。举例来说,在计算装置2为桌上型计算机或经装备以与外部用户接口或显示器介接的其它装置的实例中,用户接口4和显示器8可在计算装置2外部。
用户接口4的实例包含(但不限于)轨迹球、鼠标、键盘和其它类型的输入装置。用户接口4还可为触摸屏,并且可作为显示器8的部分并入。收发器模块3可包含电路以允许计算装置2与另一装置或网络之间的无线或有线通信。收发器模块3可包含调制器、解调器、放大器和用于有线或无线通信的其它此类电路。
处理器6可为微处理器,例如中央处理单元(CPU),其经配置以处理供执行的计算机程序的指令。处理器6可包括控制计算装置2的运算的通用或专用处理器。用户可将输入提供到计算装置2,以致使处理器6执行一或多个软件应用程序。在处理器6上执行的软件应用程序可包含(例如)操作系统、文字处理器应用程序、电子邮件应用程序、电子表格应用程序、媒体播放器应用程序、视频游戏应用程序、图形用户接口应用程序或另一程序。另外,处理器6可执行用于控制GPU 12的运算的GPU驱动程序22。用户可经由一或多个输入装置(未图示)(例如,键盘、鼠标、麦克风、触摸垫或经由用户输入接口4耦合到计算装置2的另一输入装置)将输入提供到计算装置2。
在处理器6上执行的软件应用程序可包含一或多个图形渲染指令,其指令处理器6来致使将图形数据渲染到显示器8。在一些实例中,所述软件指令可符合图形应用程序编程接口(API),例如开放式图形库API、开放式图形库嵌入系统(OpenGL ES)API、Direct3DAPI、X3D API、RenderMan API、WebGL API、开放式计算语言(OpenCLT M)、RenderScript或任何其它异构计算API,或任何其它公用或专有标准图形或计算API。所述软件指令还可为针对无渲染算法(例如计算摄影、卷积神经网络、视频处理、科学应用程序等)的指令。为了处理图形渲染指令,处理器6可向GPU 12发出一或多个图形渲染命令发(例如,通过GPU驱动程序22),以致使GPU 12执行图形数据的渲染中的一些或全部。在一些实例中,待渲染的图形数据可包含例如点、线、三角形、四边形、三角形带等图形图元的列表。
GPU 12可经配置以执行图形运算,从而将一或多个图形图元渲染到显示器8。因此,当在处理器6上执行的软件应用中的一者需要图形处理时,处理器6可将图形命令和图形数据提供到GPU 12以用于渲染到显示器8。图形数据可包含(例如)绘制命令、状态信息、图元信息、纹理信息等。在一些情况下,GPU 12可内置有高度并行结构,其提供比处理器6高效的对复杂图形相关运算的处理。举例来说,GPU 12可包含经配置来以并行方式对多个顶点或像素进行运算的多个处理元件,例如着色器单元。在一些情况下,GPU 12的高度并行性质允许GPU 12比使用处理器6直接将场景绘制到显示器8更快速地将图形图像(例如,GUI和二维(2D)和/或三维(3D)图形场景)绘制到显示器8上。
在一些情况下,可将GPU 12集成到计算装置2的母板中。在其它情况下,GPU 12可存在于图形卡上,所述图形卡安装在计算装置2的母板中的端口中,或可以其它方式并入在经配置以与计算装置2互操作的外围装置内。GPU 12可包含一或多个处理器,例如一或多个微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或其它等效的集成或离散逻辑电路。GPU 12还可包含一或多个处理器核心,使得GPU 12可被称作多核处理器。
图形存储器40可为GPU 12的一部分。因此,GPU 12可在不使用总线的情况下从图形存储器40读取数据且将数据写入到图形存储器40。换句话说,GPU 12可使用本地存储装置而不是芯片外存储器在本地处理数据。此类图形存储器40可被称作芯片上存储器。这允许GPU 12通过消除GPU 12经由总线读取和写入数据的需要来以更高效的方式操作,其中经由总线操作可经历繁重的总线业务。然而,在一些情况下,GPU 12可不包含单独的存储器,而是经由总线利用系统存储器10。图形存储器40可包含一或多个易失性或非易失性存储器或存储装置,例如,随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、快闪存储器、磁性数据媒体或光学存储媒体。
在一些实例中,GPU 12可将完全形成的图像存储在系统存储器10中。显示处理器14可从系统存储器10检索图像,且输出致使显示器8的像素照亮以显示所述图像的值。显示器8可为计算装置2的显示器,其显示由GPU 12产生的图像内容。显示器8可为液晶显示器(LCD)、有机发光二极管显示器(OLED)、阴极射线管(CRT)显示器、等离子显示器或另一类型的显示装置。
图2为进一步详细说明图1中处理器6、GPU 12和系统存储器10的实例实施方案的框图。如图2所示,处理器6可执行至少一个软件应用程序18、图形API 20和GPU 驱动程序22,其中的每一者可为一或多个软件应用程序或服务。在一些实例中,图形API 20和GPU驱动程序22可实施为CPU 6的硬件单元。
可供处理器6和GPU 12使用的存储器可包含系统存储器10和显存16。显存16可为系统存储器10的部分或可与系统存储器10分离。显存16可存储经渲染图像数据,例如像素数据,以及任何其它数据。显存16还可被称为帧缓冲器。
图形存储器40可包含片上存储装置或存储器,其物理上集成到GPU12的集成电路芯片中。如果图形存储器40是在芯片上,那么与经由系统总线从系统存储器10读取值或将值写入到系统存储器10相比,GPU12能够更加快速地从图形存储器40读取值或将值写入到图形存储器40。
显存16存储GPU 12的目的地像素。每个目的地像素可与唯一屏幕像素位置相关联。在一些实例中,显存16可存储每个目的地像素的色彩分量和目的地α值。举例来说,显存16可存储每个像素的红色、绿色、蓝色、α(RGBA)分量,其中“RGB”分量对应于色彩值,并且“A”分量对应于目的地α值(例如,用于图像合成的不透明度值)。尽管将显存16和系统存储器10说明为单独的存储器单元,但在其它实例中,显存16可以是系统存储器10的一部分。此外,显存16还可能够存储除像素之外的任何合适的数据。
软件应用程序18可为利用GPU 12的功能性的任何应用程序。举例来说,软件应用程序18可为GUI应用程序、操作系统、便携式制图应用程序、用于工程或艺术应用的计算机辅助设计程序、视频游戏应用程序或使用2D或3D图形的另一类型的软件应用程序。
软件应用程序18可包含指令GPU 12渲染图形用户接口(GUI)和/或图形场景的一或多个绘制指令。举例来说,绘制指令可包含界定将由GPU 12渲染的一组一或多个图形图元的指令。在一些实例中,绘制指令可共同地界定用于GUI中的多个开窗表面的全部或部分。在额外实例中,所述绘制指令可共同地定义图形场景的全部或部分,所述图形场景包含在由应用程序定义的模型空间或世界空间内的一或多个图形对象。
软件应用程序18可经由图形API 20调用GPU驱动程序22,以向GPU 12发出一或多个命令,以用于将一或多个图形图元渲染到可显示的图形图像中。举例来说,软件应用程序18可调用GPU驱动程序22,以向GPU 12提供图元定义。在一些情况下,图元定义可以例如三角形、矩形、三角形扇、三角形带等的绘制图元的列表的形式被提供到GPU 12。图元定义可包含指定与待呈现的图元相关联的一或多个顶点的顶点规格。所述顶点规格可包含每个顶点的位置坐标,且在一些情况下包含与顶点相关联的其它属性,例如色彩属性、法向量和纹理坐标。图元定义还可包含图元类型信息(例如,三角形、矩形、三角形扇、三角形带等)、缩放信息、旋转信息及类似者。
基于由软件应用程序18向GPU驱动程序22发出的指令,GPU驱动程序22可调配指定供GPU 12执行的一或多个运算以便渲染图元的一或多个命令。以光线追踪渲染过程为例,当GPU 12接收到来自CPU 6的命令时,GPU 12通过射线生成单元24发射出一次射线,一次射线进入射线-物体相交计算单元26获得直接光照的渲染位置和该位置渲染所需要的信息,然后渲染位置和渲染信息进入渲染计算单元28完成直接光照的渲染,接下来,渲染计算单元28会决定是否继续请求射线生成单元24从刚才的渲染点发射出新的二次射线,如果发射出二次射线,则二次射线会进入射线-物体相交计算单元26获得新的间接光照的渲染位置和该位置渲染所需要的信息,接下来渲染计算单元28同样会根据这些渲染信息计算出间接光照的效果,整个渲染计算形成循环,当所有的射线都渲染完毕,最终直接光照和间接光照的计算结果将被叠加写入显存16中。
在光线追踪技术的应用中,射线-物体相交计算单元26在硬件使用的算法上可以有多种选择,其中,层级场景(hierarchical scene)算法是对经典的光线追踪相交算法的一种改进,举例来说,层级栅格(hierarchical grid)就是对经典的规则栅格(uniformgrid)算法的一种改进,使得光线在栅格间跨越时可以选择不同的层级,从而加快光线的跨越速度;层级包围盒(BVH,BoundingVolumeHierarchy)也是一种典型的基于包围盒(bounding box)的层级场景划分方法。上述层级栅格和层级包围盒的共同点是利用轴侧包围盒(AABB,Axis-Aligned Bounding Box)对场景或场景中的物体进行多层级的划分。
在一些示例中,层级场景(hierarchical scene)可以被看成是一个树形的数据结构,该树形数据结构的叶子节点就是场景中的各个图元,比如三角形等。树形数据结构最顶端的根结点(root node)可以表示为整个场景,树形结构的某个节点(node)是另一个节点的父节点(Father Node)的要求是图元的包含关系,举例来说,若node1对应的包围盒所包括的图元包含有node2对应的包围盒所包括的图元,则node1可以被称为node2的父节点。因而从根节点开始,可以逐层向下找到各级的节点对应的轴侧包围盒,需要说明的是,每一个非叶子节点都对应于一个轴侧包围盒;并且层级场景中的每一层总共包含的包围盒中所包括的图元为整个场景中的所有图元。在本发明实施例中,可以确定该树形数据结构的一个层级,然后赋予这一层的轴侧包围盒一些特性,比如本发明实施例后续所提到的平均材料反射特性。举例来说,当整个场景通过层级场景进行表示的情况下,通常利用层级场景生成器30生成用于描述层级场景的树形数据结构。具体来说,层级场景生成器30可以通过调用渲染计算单元28的硬件计算能力来辅助生成层级场景的树形数据结构的计算过程;并且更为具体地,当层级场景的树形数据结构生成完毕之后,层级场景生成器30可以将生成完毕的层级场景的树形数据结构存储于显存16中以供光线追踪渲染过程中射线-物体相交计算单元26和/或渲染计算单元28使用。
基于上述层级场景及其示例,本发明实施例期望能够提供一种基于层级场景的全局光照渲染技术,期望降低计算全局光照的运算量和运算时间,提高全局光照的计算效率。举例来说,通过近似计算漫反射表面入射辐亮度
以实现计算加速。以图2所示的框图为例,参见图3,其示出了本发明实施例提供的一种基于层级场景的全局光照相交加速方法,该方法可以应用于图2所示的GPU12中,所述方法包括:
S301:针对层级场景中设定层级所包括的每个轴侧包围盒,根据各轴侧包围盒内包含图元的材料反射特性对应获取各轴侧包围盒的平均材料反射特性;
S302:相应于射线对应于追踪漫反射表面的入射辐亮度,计算与所述射线相交的目标轴测包围盒;
S303:通过对所述目标轴侧包围盒的平均材料反射特性采样值进行插值,获取所述目标轴侧包围盒的平均材料反射特性在反射辐亮度方向的值;
S304:利用所述目标轴侧包围盒的平均材料反射特性在反射辐亮度方向的值按照设定的渲染策略进行渲染,获取所述目标轴侧包围盒的平均反射辐亮度;并将所述目标轴侧包围盒的平均反射辐亮度确定为所述漫反射表面在所述目标轴侧包围盒区域的入射辐亮度。
对于图3所示的技术方案,需要说明的是,漫反射表面对于入射辐亮度
的方向并不敏感且出射方向各向同性,因此可以用一定区域内的平均材料特性近似代替该区域整体对漫反射表面入射辐亮度的贡献。此外,目前的常规方案中,基于漫反射表面的反射分布函数在半空间各向同性,从而大幅增加了采样
而引入的不同方向的追踪
的数量,最终导致需要光线追踪的入射辐亮度数目过多,因此,通过图3所示的技术方案,针对漫反射表面的射线追踪,利用轴侧包围盒内图元的平均反射特性作为轴侧包围盒内各图元的材料反射特性的近似值,当渲染计算单元进行渲染计算时可以降低针对追踪漫反射表面入射辐亮度
的计算量和计算时间。
对于图3所示的技术方案,在一些实施方式中,所述针对层级场景中设定层级所包括的每个轴侧包围盒,根据各轴侧包围盒内包含图元的材料反射特性对应获取各轴侧包围盒的平均材料反射特性,可以通过图2中所示的层级场景生成器30进行实施,实施过程可以包括:
针对层级场景中设定层级所包括的每个轴侧包围盒,获取所述轴侧包围盒所包含的每个图元在半空间的材料反射特性
以及每个图元的法向量
;其中,
,
表示所述轴侧包围盒所包含的图元数量,
是入射辐亮度的方向,
反射辐亮度的方向;
基于所述每个图元在半空间的材料反射特性
,获取每个图元在全空间的材料反射特性
;
根据每个图元面积与所述轴侧包围盒面积之比获取每个图元对应的权值
;
将每个图元对应的权值
、每个图元在全空间的材料反射特性
、以及每个图元的法向量
相乘之后,对所述轴侧包围盒所包含的所有图元各自对应的乘积进行累加,获得所述轴侧包围盒的平均材料反射特性
。
需要说明的是,可以将各轴侧包围盒的平均材料反射特性进行采样,并将采样值进行存储以供后续流程进行调用,因此,针对上述实施方式,所述方法还可以包括:
将所述轴侧包围盒的平均材料反射特性
按照设定的采样范围进行采样,获取所述轴侧包围盒的平均材料反射特性采样值
,并将所述轴侧包围盒的平均材料反射特性采样值
存储于显存中;其中,
,
表示入射方向采样范围,
表示反射方向采样范围,
表示实数空间。
基于通过上述示例实现方式所获得的轴侧包围盒的平均材料反射特性采样值,设定目标轴侧包围盒的平均材料反射特性采样值为
,具体来说,通过对所述目标轴侧包围盒的平均材料反射特性采样值进行插值,获取所述目标轴侧包围盒的平均材料反射特性在反射辐亮度方向的值,可以在射线-物体相交计算单元26通过硬件实现,也可以在渲染计算单元28中通过软件实现,实现过程可以包括:
利用所述显存中存储的所述目标轴侧包围盒的平均材料反射特性采样值
进行插值,获得所述目标轴侧包围盒的平均材料反射特性在反射辐亮度方向
处的值为
。
基于上述具体示例,进一步地,所述利用所述目标轴侧包围盒的平均材料反射特性在反射辐亮度方向的值按照设定的渲染策略进行渲染,获取所述目标轴侧包围盒的平均反射辐亮度,包括:
利用所述目标轴侧包围盒的
,按照设定的渲染表达式
进行渲染,获得所述目标轴侧包围盒的平均反射辐亮度
。
对于上述实现方式及其示例,需要说明的是,设定一个内部有图元的非空轴侧包围盒,以图元为三角形为例,其中包含有
个三角形,分别标记为
;如图4所示,图4中轴侧包围盒包含有两个三角形,分别为
和
。每一个
均具有对应的材料反射特性,例如双向反射分布函数
,每个三角形
也有一个法向量
,根据辐亮度的传播不变性可以获知:漫反射表面的入射辐亮度
与反射辐亮度
相等,其中,
i表示入射
,o表示反射。近似认为只要入射角
对应的方向相同,则不同三角形
对应的
都相等,即
,其中,
表示三角形
上的入射辐亮度,从而根据渲染方程可得三角形
的反射辐亮度
为:
补充设定半空间的双向反射分布函数
,从而可以获得一种新的全空间的双向反射分布函数
,即:
值得注意的是:虽然对应于半球面的半空间上,不同三角形
所对应点的
可能各不相同,但是对应完整球面的全空间上的
都是相同的,即
。又考虑到
,所以上述渲染方程每个三角形
在全空间的
为:
定义平均反射辐亮度
;其中,
表示定义符号,
为一个权值,这个权值
可以近似的正比于三角形
的面积占比,例如可以如下的方式定义:
其中,
表示三角形
的面积,
表示三角形
所处的盒子的表面积。
将权值
代入至上述由渲染方程给出的每个三角形
在全空间的
,并可得到平均反射辐亮度
为:
由此,可以定义非空轴侧包围盒内的平均材料反射特性
为:
因为,
是一个只与反射材料表面特性相关的一个标量,所以
仅仅是和非空轴侧包围盒内的三角形的材料特性、摆放方向、三角形的大小有关的一个矢量。
还需要说明的是,由于GPU的渲染计算单元28通常采用统一渲染架构且可编程,因此,即使渲染表达式
和经典的渲染表达式
不同,但是仍然可以通过渲染计算单元28进行编程渲染。在实际的应用中,可以如S301及其具体示例所述,预先在显存内存储好每一个非空轴侧包围盒的
或者
的多点处采样值,从而便于后续进行差值或利用蒙特卡洛积分进行近似计算。
对于图3所示的技术方案,在一些实施方式中,所述方法还可以包括:判定由射线生成单元发送的射线是否对应于追踪漫反射表面的入射辐亮度。可以理解堤,本实施方式仍然可以通过射线-物体相交计算单元26以实现。
基于判定结果,相应于射线对应于追踪漫反射表面的入射辐亮度,可以通过射线-物体相交计算单元26计算与所述射线相交的目标轴测包围盒,并且随后向渲染计算单元28返回射线与目标轴侧包围盒的交点或者与射线相交的目标轴侧包围盒位置,以及目标轴侧包围盒的标识;以供渲染计算单元28能够根据目标轴侧包围盒的标识从显存中获取目标轴侧包围盒的平均材料反射特性采样值进行渲染,如图3所示的技术方案及其前述实施方式所示。由于射线-物体相交计算单元26并不具体返回与目标轴侧包围盒中的相交的具体图元,因此,能够使得渲染计算单元28在计算漫反射表面入射辐亮度的过程中,利用轴侧包围盒内图元的平均反射特性作为轴侧包围盒内各图元的材料反射特性的近似值,降低针对追踪漫反射表面入射辐亮度
的计算量和计算时间。
基于判定结果,在另外一些实施方式中,相应于射线对应于追踪非漫反射表面的入射辐亮度,所述方法还包括:
确定与所述射线相交的图元以及所述射线与所述图元的交点;
向渲染计算单元28返回与所述射线相交的图元标识以及所述射线与所述图元的交点。
需要说明的是,对于射线对应于追踪非漫反射表面的入射辐亮度,则仍旧可以按照常规方案进行求交计算,得到与射线相交的图元以及交点,并且还能够通过查询显存得到的该相交图元的材料反射特性。
基于前述技术方案相同的发明构思,参见图5,其示出了本发明实施例提供的一种基于层级场景的全局光照相交加速装置50,该装置能够应用于图1或图2中所示的GPU 12,所述装置50包括:层级场景生成部分501,射线-物体相交计算部分502、插值部分503和渲染计算部分504;其中,
所述层级场景生成部分501,经配置为:针对层级场景中设定层级所包括的每个轴侧包围盒,根据各轴侧包围盒内包含图元的材料反射特性对应获取各轴侧包围盒的平均材料反射特性;
所述射线-物体相交计算部分502,经配置为相应于射线对应于追踪漫反射表面的入射辐亮度,计算与所述射线相交的目标轴测包围盒;
所述插值部分503,经配置为向通过对所述目标轴侧包围盒的平均材料反射特性采样值进行插值,获取所述目标轴侧包围盒的平均材料反射特性在反射辐亮度方向的值;
所述渲染计算部分504,经配置为利用所述目标轴侧包围盒的平均材料反射特性在反射辐亮度方向的值按照设定的渲染策略进行渲染,获取所述目标轴侧包围盒的平均反射辐亮度;并将所述目标轴侧包围盒的平均反射辐亮度确定为所述漫反射表面在所述目标轴侧包围盒区域的入射辐亮度。
在一些示例中,所述层级场景生成部分501,经配置为:
针对层级场景中设定层级所包括的每个轴侧包围盒,获取所述轴侧包围盒所包含的每个图元在半空间的材料反射特性
以及每个图元的法向量
;其中,
,
表示所述轴侧包围盒所包含的图元数量,
是入射辐亮度的方向,
反射辐亮度的方向;以及,
基于所述每个图元在半空间的材料反射特性
,获取每个图元在全空间的材料反射特性
;以及,
根据每个图元面积与所述轴侧包围盒面积之比获取每个图元对应的权值
;以及,
将每个图元对应的权值
、每个图元在全空间的材料反射特性
、以及每个图元的法向量
相乘之后,对所述轴侧包围盒所包含的所有图元各自对应的乘积进行累加,获得所述轴侧包围盒的平均材料反射特性
。
在一些示例中,所述层级场景生成部分,还经配置为:
将所述轴侧包围盒的平均材料反射特性
按照设定的采样范围进行采样,获取所述轴侧包围盒的平均材料反射特性采样值
,并将所述轴侧包围盒的平均材料反射特性采样值
存储于显存中;其中,
,
表示入射方向采样范围,
表示反射方向采样范围,
表示实数空间;
相应地,所述插值部分503,经配置为:
利用所述显存中存储的所述目标轴侧包围盒的平均材料反射特性采样值
进行插值,获得所述目标轴侧包围盒的平均材料反射特性在反射辐亮度方向
处的值为
。
在一些示例中,所述渲染计算部分504,经配置为:
利用所述目标轴侧包围盒的
,按照设定的渲染表达式
进行渲染,获得所述目标轴侧包围盒的平均反射辐亮度
。
在一些示例中,所述射线-物体相交计算部分502,还经配置为,在计算与所述射线相交的目标轴测包围盒之后,向渲染计算部分504返回所述射线与目标轴侧包围盒的交点或者与射线相交的目标轴侧包围盒位置,以及目标轴侧包围盒的标识。
在一些示例中,所述射线-物体相交计算部分502,还经配置为,相应于射线对应于追踪漫反射表面的入射辐亮度,确定与所述射线相交的图元以及所述射线与所述图元的交点;以及,向渲染计算部分504返回与所述射线相交的图元标识以及所述射线与所述图元的交点。
需要说明的是,相应于图1或图2中所示的GPU 12,以图2所示的GPU 12的框图为一示例,层级场景生成部分501可以通过层级场景生成器30以具体实现;射线-物体相交计算部分502可以通过射线-物体相交计算单元26以具体实现;插值部分503既可以在射线-物体相交计算单元26通过硬件实现,也可以在渲染计算单元28通过软件以实现;渲染计算部分504可以通过渲染计算单元28以实现。
可以理解地,在本实施例中,“部分”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是单元,还可以是模块也可以是非模块化的。
另外,在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,那么可将功能作为一或多个指令或代码存储在计算机可读媒体上或经由计算机可读媒体传输。计算机可读媒体可包含计算机数据存储媒体或通信媒体,通信媒体包含促进将计算机程序从一处传递到另一处的任何媒体。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本发明中描述的技术的指令、代码和/或数据结构的任何可用媒体。举例来说且非限制,此类计算机可读媒体可包括U盘、移动硬盘、RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于运载或存储呈指令或数据结构的形式的所要程序代码且可由计算机存取的任何其它媒体。并且,任何连接被恰当地称作计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输软件,那么同轴电缆、光纤电缆、双绞线、DSL或例如红外线、无线电和微波等无线技术包含于媒体的定义中。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。
代码可由一或多个处理器执行,所述一或多个处理器例如是一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效的可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。因此,如本文中所使用的术语“处理器”和“处理单元”可指前述结构或适于实施本文中所描述的技术的任何其它结构中的任一者。另外,在一些方面中,本文中所描述的功能性可在经配置用于编码和解码的专用硬件和/或软件模块内提供,或者并入在组合式编解码器中。而且,所述技术可完全实施于一或多个电路或逻辑元件中。
本发明实施例的技术可实施于各种各样的装置或设备中,所述装置或设备包含无线手持机、集成电路(IC)或一组IC(即,芯片组)。本发明中描述各种组件、模块或单元是为了强调经配置以执行所公开的技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上文所描述,各种单元可结合合适的软件和/或固件组合在编码解码器硬件单元中,或者通过互操作硬件单元的集合来提供,所述硬件单元包含如上文所描述的一或多个处理器。
已描述了本发明的各种方面。这些和其它实施例在所附权利要求书的范围内。需要说明的是:本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。