首页 / 专利库 / 电脑零配件 / 硬件服务器 / 面向室内场景的辐射度并行绘制系统和方法

面向室内场景的辐射度并行绘制系统和方法

阅读:0发布:2023-05-19

专利汇可以提供面向室内场景的辐射度并行绘制系统和方法专利检索,专利查询,专利分析的服务。并且一种面向室内场景的 辐射 度并行绘制系统,其特征在于包括如下模 块 :主控 节点 (1),用于响应用户的交互控制、与任务管理器3通讯、与各个绘制任务 子节点 2通讯、实时显示绘制结果和相关统计数据;绘制任务子节点(2),用于执行绘制任务,通过CPU/GPU 硬件 加速 完成全局光照绘制任务;任务管理器(3),用于根据绘制任务子节点(2)的节点数、节点的硬件信息、网络状态,动态分配绘制任务;文件 服务器 (4),用于暂存绘制过程中生成的全部文件,包括中间结果文件、配置文件、最终结果文件、户型数据文件。,下面是面向室内场景的辐射度并行绘制系统和方法专利的具体信息内容。

1.一种面向室内场景的辐射度并行绘制系统,其特征在于包括如下模
主控节点(1),用于响应用户的交互控制、与任务管理器3通讯、与各个绘制任务子节点2通讯、实时显示绘制结果和相关统计数据;
绘制任务子节点(2),用于执行绘制任务,通过CPU和/或GPU硬件加速完成全局光照绘制任务;
任务管理器(3),用于根据绘制任务子节点(2)的节点数、节点的硬件信息、网络状态,动态分配绘制任务;
文件服务器(4),用于暂存绘制过程中生成的全部文件,包括中间结果文件、配置文件、最终结果文件、户型数据文件。
2.根据权利要求1所述的面向室内场景的辐射度并行绘制系统,其特征在于所述主控节点(1)由应用程序(11)、并行通讯管理器(12)组成,其中:
应用程序(11)用于提供用户可交互的图形界面;
并行通讯管理器(12),用于与应用程序(11)进行通讯,接收用户下发的UI命令及给用户反馈;并与任务管理器(3)通讯,提交任务申请及获取任务;与各个绘制任务子节点(2)通讯,分配任务及接收绘制结果。
3.根据权利要求1所述的面向室内场景的辐射度并行绘制系统,其特征在于所述绘制任务子节点(2)包括:
并行通讯子模块(21),用于与主控节点(1)通讯,接收任务并反馈任务执行情况;与并行绘制子模块(22)通讯,分配绘制任务,监视绘制状态,收集绘制信息;与文件服务器(4)通讯,收发绘制结果文件;与其他绘制任务子节点(2)通讯,同步绘制任务。
并行绘制子模块(22),用于执行绘制任务。
4.根据权利要求1所述的面向室内场景的辐射度并行绘制系统,其特征在于所述的任务管理器(3)包括:
负载均衡算法模块(31),用于收集各个绘制任务子节点在绘制时的负载数据,之后通过权衡各个节点的绘制能,计算一个代价函数,从而推导出每个节点下一次应该承担的负载;
任务调度算法(32),用于根据负载均衡算法模块(31)推导出的负载情况,同时考虑光照图的容量,给不同的节点分配下一步绘制的任务量。
5.根据权利要求3所述的面向室内场景的辐射度并行绘制系统,所述并行绘制子模块(22)包括:
输入输出模块,用于输入输出场景和光照图;
直接光照模块,用于计算每个光照贴图的直接光照效果,并将新的光照贴图提交给光照图管理模块;
间接光照模块,用于利用GPU算法库中提供的间接光照算法,进行辐射度计算,然后把图素的计算结果写回光照贴图,计算完这张光照贴图,再把它交给光照图管理模块;
面片参数化模块,用于把三维物体通过算法不重叠地平铺到二维平面上,生成一张纹理,并且得到一套纹理坐标,用于表示物体顶点与纹理之间的一一对应;
光源管理模块,用于管理场景中各种光源;
光照图管理模块,用于管理整个计算过程中所用到的光照图纹理以及在内存中的数据结构表示。
6.根据权利要求5所述的面向室内场景的辐射度并行绘制系统,其中所述输入输出模块进行模型和户型文件的读写、纠错、语义的生成和本地串行化,其由室内场景语义解析子部分、高动态范围光照图子部分组成;其中:
室内场景语义解析子部分用于读写和转换户型文件;
高动态范围光照图子部分用于读写高动态范围图片,读取高动态范围的环境图、纹理贴图并将渲染结果浮点纹理写出成图片。
7.根据权利要求5所述的面向室内场景的辐射度并行绘制系统,所述的直接光照模块由阴影图管理子部分、直接光照计算子部分组成;其中,
阴影图管理子部分用于根据场景中的光源特征,计算对应的光照图;
直接光照计算子部分用于按照每个物体的UV纹理和多张阴影图计算直接光照。
8.根据权利要求5所述的面向室内场景的辐射度并行绘制系统,所述的间接光照部分包括辐射度计算子部分和GPU算法库子部分;其中:
辐射度计算子部分用于以直接光照计算的结果光照图作为输入,经过多次GPU迭代计算,最后输出为新的直接光照和间接光照的叠加结果光照图,并且作为新的纹理赋予各个物体;
GPU算法库子部分,用于提供进行辐射度计算所需要的多个流程的GPU算法。
9.根据权利要求5所述的面向室内场景的辐射度并行绘制系统,所述面片参数化模块的包括UV Unwrap子部分和UVMapping子部分;其中,
UV Unwrap子部分以三维模型为输入,将三维模型进行面片参数化操作,对每个顶点产生一个唯一的纹理坐标;
UVMapping子部分根据UV Unwrap子部分产生的纹理坐标,为每个物体产生一张对应的UV纹理。
10.一种面向室内场景的辐射度并行绘制方法,其特征在于包括如下步骤:
第一步,由主控节点的并行绘制管理器根据物体的大小排序,然后根据物体大小给多个绘制节点的每个机器分配一定量的参数化任务;由每个绘制节点计算出物体的参数化纹理图,然后发送给文件服务器;
第二步,由主控节点的并行绘制管理器根据每个物体的参数化纹理的大小排序,然后根据纹理大小给多个绘制节点分配直接光照绘制任务;由每个绘制节点计算出物体的直接光照纹理图,然后发送给文件服务器;
第三步,由主控节点的并行绘制管理器物体的直接光照纹理的大小,结合各个绘制节点的硬件和网络信息,代入下面的成本代价公式,计算出每个光照纹理的对每个绘制节点的计算成本,从而排序并分配给多个绘制节点;绘制节点计算出物体的间接光照纹理图,然后发送给文件服务器;
代价公式如下式所示:
GpuMemory
CostFunction=(CPUPower*CPUNums+GPUPower )*NetPower*LM*LastCost其中:
CostFunction:是成本代价函数;
CPUPower:cpu计算能力包括cpu主频、cpu总线速度和cache大小;
CPUNums:cpu核数;
GPUPower:gpu计算能力包括gpu计算能力和核心频率
GPUMemory:gpu显存大小;
NetPower:网络传输能力,包括最大传输能力和常态传输能力;
LM:光照图任务指标,包括光照图的大小、有效图素的个数;
LastCost:上一次计算的节点代价。

说明书全文

面向室内场景的辐射度并行绘制系统和方法

技术领域

[0001] 本发明属于计算机辅助设计技术领域,特别涉及一种面向室内场景的辐射度并行绘制系统和方法,用于虚拟现实中面向室内的场景。

背景技术

[0002] 在虚拟现实领域中,室内设计真实感渲染作为重要的特定领域具有广泛的应用,例如游戏场景、楼盘展示、安全预演、建筑设计评估等领域,均对真实感渲染效果具有迫切的要求。面对这种需求,现今常用的解决办法就是由美术人员手工建模,通过一些高级的渲染工具,经过长时间的参数设置和渲染,才能产生一的图片,而且一旦渲染结束,也无法进入渲染后的真实感场景中漫游。这种方法不但消耗大量的人财力,而且效率不高。一些专业的建模软件(如3dmax、Maya等)和渲染农场,提供了多机并行算法,不过基本上都依赖于他们自带的商业软件,并且也仅能导出一帧图片,无法进行后期实时漫游;另外基本上都基于光线跟踪算法,光线跟踪是一种真实地显示物体的方法,该方法由Appel在1968年提出。图1是现有技术中基于光线跟踪算法的原理图。光线跟踪方法沿着到达视点的光线的反方向跟踪,经过屏幕上每一个象素,找出与视线相交的物体表面点P0,并继续跟踪,找出影响P0点光强的所有光源,从而算出P0点上精确的光线强度,在材质编辑中经常用来表现镜面效果。光线跟踪或称光迹追踪是计算机图形学的核心算法之一。在算法中,光线从光源被抛射出来,当他们经过物体表面的时候,对他们应用种种符合物理光学定律的变换。最终,光线进入虚拟的摄像机底片中,图片被生成出来。光线跟踪算法在渲染刻蚀、高光等效果上,有优势,但是对于室内场景来说,如何利用现有的模型,通过简单、灵活、便捷的参数化设置,通过短时间的离线渲染,即可获得实时、真实感强的三维室内场景渲染效果,同时又可以任意漫游,是本领域需要克服的一个技术难题。

发明内容

[0003] 鉴于现有技术的缺陷,本发明提供一种面向室内场景的辐射度并行绘制系统,其特征在于包括如下模:主控节点(1),用于响应用户的交互控制、与任务管理器3通讯、与各个绘制任务子节点2通讯、实时显示绘制结果和相关统计数据;绘制任务子节点(2),用于执行绘制任务,通过CPU和/或GPU硬件加速完成全局光照绘制任务;任务管理器(3),用于根据绘制任务子节点(2)的节点数、节点的硬件信息、网络状态,动态分配绘制任务;文件服务器(4),用于暂存绘制过程中生成的全部文件,包括中间结果文件、配置文件、最终结果文件、户型数据文件。
[0004] 此外,本发明还提供一种面向室内场景的辐射度并行绘制方法,其特征在于包括如下步骤:第一步,由主控节点的并行绘制管理器根据物体的大小排序,然后根据物体大小给多个绘制节点的每个机器分配一定量的参数化任务;由每个绘制节点计算出物体的参数化纹理图,然后发送给文件服务器;第二步,由主控节点的并行绘制管理器根据每个物体的参数化纹理的大小排序,然后根据纹理大小给多个绘制节点分配直接光照绘制任务;由每个绘制节点计算出物体的直接光照纹理图,然后发送给文件服务器;第三步,由主控节点的并行绘制管理器物体的直接光照纹理的大小,结合各个绘制节点的硬件和网络信息,计算出每个光照纹理的对每个绘制节点的计算成本,从而排序并分配给多个绘制节点;绘制节点计算出物体的间接光照纹理图,然后发送给文件服务器。
[0005] 本发明的框架为有关室内建筑展示的领域提供了一套完整的全局光照真实感并行绘制解决方案,针对静态的室内场景,不仅可以快速的得到离线绘制结果,而且还提供了后期实时漫游功能。本发明的辐射度并行绘制管线,提出一种基于光照图的负载均衡和任务调度算法,该算法通过考虑并行绘制各个阶段,光照图数据的不同操作,分析各个绘制子节点的负载变化,动态分配光照图绘制任务,最终达到整个绘制任务的优化。附图说明
[0006] 图1是现有技术中基于光线跟踪算法的原理图;
[0007] 图2是本发明基于CPU/GPU集群的辐射度并行绘制系统的体系结构图;
[0008] 图3是应用程序11模块主要功能框图
[0009] 图4是并行绘制子模块22主要功能框图;
[0010] 图5是并行绘制子模块中输入输出模块的功能框图;
[0011] 图6是并行绘制子模块中直接光照模块功能框图;
[0012] 图7是并行绘制子模块中间接光照模块功能框图;
[0013] 图8是纹理MipMap示意图;
[0014] 图9是面片参数化(展UV)示意图;
[0015] 图10是并行绘制子模块中面片参数化模块功能框图。

具体实施方式

[0016] 为使本发明的上述目的、特征和优点更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0017] 所谓辐射度并行,是一种通过多机并行计算的方法,用于提高辐射度渲染算法整体的效率,解决单机算法速度太慢的问题,关于辐射度算法的描述请参考http://dev.gameres.com/Program/Visual/3D/Radiosity_Translation.htm。辐射度算法的原理就是模拟真实世界中的光照原理,在场景中的每个位置收集所有在该位置所能看到的颜色信息,然后对这些颜色信息进行汇总处理,作为最终该位置的颜色并对当前的位置进行着色。在现实世界中,这个位置就代表了无穷多个无限小的像素点,但在计算机中却不可能做到这样一点,因此只能进行近似的模拟操作,这就是将几何空间场景进行分割处理,得到一些相对于整个场景来说很小的多边形面片,然后以这些面片为单位来代替现实世界中的无限小的像素点进行渲染着色。当然,如果我们对整个场景分割得越发细小,得到的最终光照效果也就是越好,但随之而来的代价就是渲染的时间越长。这种方法较之其他商业软件的优点,渲染结果不是一帧图像,而是渲染好的整个场景。一旦渲染完成,用户还可以自由的在场景中漫游,体验真实感的渲染效果。基于辐射度算法的优点,本发明提供了一种基于CPU/GPU集群的辐射度并行绘制系统,图2是本发明基于CPU/GPU集群的辐射度并行绘制系统的体系结构图;其中CPU(Central Processing Unit,中央处理器)是一台计算机的运算核心和控制核心;GPU(Graphic Processing Unit,图形处理器)可以理解为目前的显卡;本发明的整个体系结构主要包括主控节点1、绘制任务子节点2、任务管理器3和文件服务器4。
其中:
[0018] (1)所述的主控节点1负责提供用户对任务的配置和交互GUI,同时收发任务和相关数据。其响应用户的交互控制、与任务管理器3通讯、与各个绘制任务子节点2通讯、实时显示绘制结果和相关统计数据。主控节点1主要由应用程序11、并行通讯管理器12组成。其中,
[0019] 应用程序11负责提供用户可交互的图形界面,在执行由文件导入一直到辐射度并行绘制完成整个过程中,用户只需要在主控节点上操作就可以。其主要功能及流程如图3所示。
[0020] 并行通讯管理器12负责与应用程序11通讯,接收用户下发的UI命令及给用户反馈;与任务管理器3通讯,提交任务申请及获取任务;与各个绘制任务子节点2通讯,分配任务及接收绘制结果。
[0021] (2)所述的绘制任务子节点2负责执行绘制任务,通过CPU/GPU硬件加速完成全局光照绘制任务,同时把绘制结果分发至文件服务器并获取其他节点的绘制结果。所述的绘制任务子节点2负责与主控节点通讯,接收绘制任务并提交绘制结果信息;与文件服务器通讯,接收发送绘制结果文件和配置文件信息。其中,
[0022] 并行通讯子模块21负责与主控节点1通讯,接收任务并反馈任务执行情况;与绘制子模块22通讯,分配绘制任务,监视绘制状态,收集绘制信息;与文件服务器4通讯,收发绘制结果文件;与其他绘制任务子节点2通讯,同步绘制任务。
[0023] 并行绘制子模块22负责执行绘制任务,这些绘制任务主要包括场景输入输出、面片参数化、直接光照、间接光照、光源管理、光照图管理等,具体的功能及流程如图4所示。
[0024] (3)所述的任务管理器3负责根据节点数、节点的硬件信息、网络状态,动态分配绘制任务。其中所述硬件信息主要包括:CPU计算力、CPU核数、GPU计算力、网络带宽和传输率,空闲内存量等。所述的任务管理器3负责与主控节点通讯,收集节点及其硬件配置信息,收集光照图信息,根据以上数据实时动态的分配任务,并将任务下发给主控节点。其中,[0025] 负载均衡算法31负责收集各个节点在绘制时的负载数据,之后通过权衡各个节点的绘制能力(硬件及网络条件),计算一个代价函数,从而推导出每个节点下一次应该承担的负载。
[0026] 代价公式如下式所示:
[0027] CostFunction=(CPUPower*CPUNums+GPUPowerGpuMemory)*NetPower*LM*LastCost[0028] 其中:
[0029] CPUPower:cpu计算能力 包括cpu主频、cpu总线速度和cache大小[0030] CPUNums:cpu核数
[0031] GPUPower:gpu计算能力包括gpu计算能力和核心频率
[0032] GPUMemory:gpu显存大小
[0033] NetPower:网络传输能力,包括最大传输能力和常态传输能力
[0034] LM:光照图任务指标,主要包括光照图的大小、有效图素的个数
[0035] LastCost:上一次计算的节点代价,主要用于动态调整用)
[0036] 并在此基础上对光照图绘制任务进行动态调整。
[0037] 任务调度算法32负责根据负载均衡算法31推导出的负载情况,同时考虑任务特点(光照图的容量),给不同的节点分配下一步绘制的任务量。
[0038] 负载均衡和任务调度算法的设计要点,是针对任务本身的特性,具体问题具体分析。首先假设场景中有N张光照图需要计算,有M个绘制节点可以供分配。首先根据上面公式计算出来每个光照图相对于每个节点的预期代价,然后通过桶排序,每个绘制节点作为桶排序中的一个桶,每个光照图对应的代价值作为排序对象,经过桶排序之后,就可以得到对于光照图任务的一个初始分配,然后将不同绘制节点对应的光照图分配给他们进行绘制,一次迭代完成后,重新进行该操作,直到迭代完成,这样每次迭代可以参考前次各个绘制节点的绘制代价情况,进行新的动态任务分配),最终达到异构硬件环境下绘制任务的负载均衡状态;
[0039] 为了保证请求任务分配器具有较高的转发效率,任务分配器不对每个请求任务本身的负荷进行分析,而是动态监测请求任务被分配后对各个绘制子节点工作负荷造成的影响;通过反馈绘制子节点实际的工作负载状态再结合设定的绘制子节点固有处理能力,任务分配器计算出每台绘制子节点当前的负载权值以及平均负载权值。根据绘制子节点应分配与之能力相匹配的负载的原则,在后续的分配中,对高于平均负载权值的绘制子节点减少分配给它的请求任务数量,对低于平均负载权值的绘制子节点增加分配给它的请求任务数量,以达到负载均衡的目标。
[0040] (4)所述的文件服务器4负责暂存绘制过程中生成的全部文件,包括中间结果文件、配置文件、最终结果文件、户型数据文件。根据文件的类型,主要包括模型数据数据库、光照图数据库、绘制结果文件数据库。
[0041] 文件服务起主要负责保存整个绘制过程中,所有的文件数据,包括光照图相关文件,场景语义、光源参数、光照图配置文件,最终结果文件,户型数据文件,模型文件。因为不同的文件格式、大小都不一样,为了绘制过程中的效率考虑,根据文件类型,将其分别存储在不同的服务器里:
[0042] 模型文件、配置文件、户型数据文件存储在模型数据数据库;
[0043] 光照图相关文件存储在光照图数据库;
[0044] 最终结果文件存储在绘制结果文件数据库。
[0045] 不同的数据库只有在需要的时候通过数据接口层与绘制节点通讯,彼此之间不进行任何通讯。
[0046] 图3是应用程序11的功能框图,
[0047] 输入输出1模块,主要包括场景输入输出和光照图的输入输出。首先对于场景文件,由外部文件读取,并且交给室内场景11模块管理,它也可以将内存中的场景写出成场景文件。另外还可以在读取场景之后,接着由外部文件读取整个场景的高动态范围光照贴图,然后交给高动态范围光照图12模块,当然也可以由12模块写出成外部文件。
[0048] 图4是并行绘制子模块22的功能框图,并行绘制子模块是本发明的重点,主要包括6个子部分,下面分别介绍其每个模块:
[0049] 输入输出1模块,主要包括场景输入输出和光照图的输入输出。首先对于场景文件,由外部文件读取,并且交给室内场景11模块管理,它也可以将内存中的场景写出成场景文件。另外还可以在读取场景之后,接着由外部文件读取整个场景的高动态范围光照贴图,然后交给高动态范围光照图12模块,当然也可以由12模块写出成外部文件。
[0050] 直接光照2部分,首先从光源管理5中,获取每一个光源,之后通过阴影图管理21模块,生成每个光源的阴影图;之后从光照图管理6中读取每一张光照贴图,然后结合之前生成的阴影图,通过直接光照计算22模块,计算每个光照贴图的直接光照效果,之后将新的光照贴图提交给光照图管理6模块
[0051] 间接光照3计算模块,首先从光照图管理6里申请每一张光照贴图,然后遍历该光照贴图中的每一个图素,对于这个图素,它利用GPU算法库32中提供的间接光照算法,进行辐射度计算31,然后把图素的计算结果写回光照贴图,计算完这张光照贴图,再把它交给光照图管理6),具体辐射度计算的过程如下:查找最大待发射辐射度能量的Patch元(Patch也叫小面片,它是指辐射度算法中一个基本计算单元,对应于光照贴图里面的一个图素),多次渲染多个矩形(与光照图一一对应)逐像素计算形状因子从而计算新的辐射度,GPU PingPong(GPU PingPong技术是GPU算法中经常用到的一个技术,比如有两个相机,每个相机对应一个不同的帧缓冲对象FBO:FBO1 FBO2,然后对于帧缓冲对象FBO1,它会绑定一个纹理贴图T0,同时会输出结果到纹理贴图T1中,而对于帧缓冲对象FBO2,它会绑定FBO1的输出纹理贴图T1,而输出到T0中,这样的好处是,可以节省帧缓冲对象FBO和纹理T的个数,提高速度。
[0052] 所述的面片参数化部分4包括UV Unwrap(UVUnwrap UV变形是指展UV操作,就是把一个三维物体,通过算法不重叠的平铺到一个二维平面上,生成一张纹理叫UV图,并且得到一套纹理坐标,表示物体顶点与纹理之间的一一对应,图9给出了一个例子。
[0053] 如图9所示,左边图片是一个人头的模型,现在需要做的事情是把人头的面平铺到一个平面上,而且尽可能保证不会发生重叠。首先根据法线,将人头模型分成两半:左边和右边,然后把左边右边平铺到平面上,最后再把平铺后的结果拼在一起,就得到图9中右边图片的样子。
[0054] 所属的光源管理部分5负责管理场景中各种光源,包括点光源、聚光灯光源、有向光源、面积光源和体光源。针对不同的光源,之后的阴影图产生,直接光照图计算,辐射度计算都要做不同的处理。
[0055] 所述的光照图管理部分6负责管理整个计算过程中所用到的光照图纹理以及在内存中的数据结构表示。其中,
[0056] 点光源朝各个方向均产生能量,因此对应阴影图为6张,计算直接光照图时,其能量直接被计算进去。
[0057] 聚光灯光源有明确的方向,而且其光束受限于一圆锥体,其对应阴影图为1张,计算直接光照图时,其能量直接被计算进去。
[0058] 有向光源(如太阳)其有明确的方向,但是由于其影响范围是整个场景,为了阴影质量和之后的光照计算考虑,其对应阴影图数量是变化的,根据当前场景的包围盒大小和光源的方向来定,计算直接光照图时,其能量直接被计算进去。
[0059] 面积光源和体光源,其没有明确的方向,但是往往有明确的大小,因此其能量不纳入直接光照的范畴,在之后的辐射度计算时才作为发光面计算。
[0060] 图5是输入输出模块的功能框图。所述的场景输入输出部分1进行模型和户型文件的读写、纠错、语义的生成和本地串行化。模型输入输出部分1由室内场景语义解析子部分11、高动态范围光照图子部分12组成。其中,
[0061] 室内场景语义解析子部分11负责户型文件的读写和转换功能,它将读入的户型以及其内属物体进行统一化处理后,添加到场景树中,它是整个程序的入口;
[0062] 高动态范围光照图子部分12负责高动态范围图片的读写,它能读取高动态范围的环境图、纹理贴图等,用于之后的渲染计算,然后还可以将渲染结果浮点纹理写出成图片。
[0063] 图6是直接光照2的功能框图,所述的直接光照部分2由阴影图管理子部分21、直接光照计算子部分22组成。其中,
[0064] 阴影图管理子部分21负责根据场景中的光源特征,计算对应的光照图(光照图组),这些光照图主要用来方便直接光照计算子部分22计算可见性。
[0065] 直接光照计算子部分22负责按照每个物体的UV纹理和多张阴影图计算直接光照。
[0066] 图7是间接光照部分的功能框图,所述的间接光照部分3包括辐射度计算子部分31和GPU算法库子部分32。其中
[0067] 辐射度计算子部分31以直接光照计算的结果光照图作为输入,经过多次GPU迭代计算,最后输出为新的直接光照和间接光照的叠加结果光照图,并且作为新的纹理赋予各个物体。
[0068] GPU算法库32主要包括辐射度计算所需要的多个流程的GPU算法,如自动Mipmap(Mipmap是目前应用最为广泛的纹理映射技术之一。就是建立起不同分辨率的纹理组,具体实例见图8。
[0069] 如图8所示,对于左下的一张大纹理(大小为64*64),希望快速的计算它的像素的平均颜色,这样就可以利用GPU的Mipmap纹理映射技术,其流程如图8所示,首先将64*64大小的纹理缩小2倍,变为32*32,缩小过程中,GPU可以自动计算差值。之后继续进行2倍缩小,得到16*16,8*8,4*4,2*2,1*1。最后得到的1*1大小的纹理,其像素颜色就是原来64*64大小纹理的平均颜色。
[0070] 图10是面片参数化4模块的功能框图,其中子部分41和UVMapping(UVMapping是指UV映射,就是在已有UV图的情况下,通过GPU建立物体表面顶点信息和UV图上图素之间一一对应关系)子部分42。其中,
[0071] UV Unwrap(UV变形)子部分41以三维模型为输入,将三维模型进行面片参数化操作,对每个顶点产生一个唯一的纹理坐标。
[0072] UVMapping(UV映射)子部分42以41作为输入,根据其产生的纹理坐标,为每个物体产生一张对应的UV(UV是指纹理坐标中的x y值)纹理,其中每个像素要么是非法像素,要么保存该像素对应物体顶点的三维坐标和法线。
[0073] 并行绘制子模块所承担的任务是计算物体的光照图,光照图是一种纹理贴图,里面每个象素保存的值表达光照信息,如(255,255,255)表达白色的光照值,假设一个场景包括100个物体,总共10个任务字节点,那么每个任务子节点可能会分配10个物体的任务,然后各自计算这10个物体的光照图,计算完之后,把各自的计算结果发送给其他任务字节点,同时接收其他任务子节点发送过来的计算结果,依此类推,继续迭代,直到计算完成。其执行绘制任务的具体流程如下:首先从场景输入输出1模块,获取场景中的所有物体,然后,交给面片参数化4模块,计算每个物体对应的UV贴图,然后交给光照图管理6模块管理,从而就得到了所有物体对应的光照贴图的初始版本。全局光照是针对局部光照算法来说。不像局部光照算法,全局光照算法不仅仅考虑来自各个光源方向的直接光照,而且还考虑光线在物体表面上的多次发射/折射效果,也即间接光照效果。
[0074] 之后,从光照图管理6模块获取每个光照贴图,然后交给直接光照2模块去计算直接光照,从而生成新的光照贴图并交给光照图管理6模块,在计算直接光照过程中,还需要访问光源管理5模块。
[0075] 之后,从光照图管理6模块获取每个光照贴图,然后交给辐射度间接光照3模块计算间接光照,从而生成新的光照贴图并交给光照图管理6模块,这样就完成整个辐射度计算
[0076] 光照图中不仅仅保存亮度信息,它还需要保存一些中间结果和几何信息,目的是为直接光照和间接光照提供数据,这些信息包括:
[0077] √世界空间三维坐标信息
[0078] √世界空间法线信息
[0079] √光照图中的纹理坐标信息
[0080] √直接光照信息
[0081] √阴影状态信息(阴影区、半影区、非阴影区、阴影边界)
[0082] √像素有效位(有效像素、无效像素)
[0083] √辐射度待发射能量信息
[0084] √辐射度已经拥有的能量信息
[0085] 辐射度自发光信息(仅用于面积光源和体光源)
[0086] 下面通过一个例子来描述本发明面向室内场景的辐射度并行绘制方法的具体步骤,比如对于一个室内场景,里面包括100个物体(包括墙体、地板、一般物体、光源物体四大类)。当前有10绘制节点和1个主控节点可用,并行绘制方法步骤如下:
[0087] 第一步,物体参数化计算。首先由主控节点的并行绘制管理器,根据物体的大小排序,然后根据大小给10个绘制节点每个机器分配一定量的参数化任务。每个绘制节点负责完成任务,计算出物体的参数化纹理图,然后发送给文件服务器。全部绘制节点计算完后,文件服务器拥有所有100个物体的参数化纹理。
[0088] 第二步,直接光照计算。首先由主控节点的并行绘制管理器,根据每个物体的参数化纹理的大小排序,然后根据纹理大小给10个绘制节点分配直接光照绘制任务。每个绘制节点负责完成任务,计算出物体的直接光照纹理图,然后发送给文件服务器。全部绘制节点计算完后,文件服务器拥有所有100个物体的直接光照纹理。
[0089] 第三步,辐射度间接光照计算。首先由主控节点的并行管理器,根据100个物体的直接光照纹理的大小,结合各个绘制节点的硬件和网络信息,代入成本代价公式(见具体实施方案),计算出每个光照纹理的对每个绘制节点的计算成本,从而排序并分配给10个绘制节点。绘制节点负责完成任务,计算出物体的间接光照纹理图,然后发送给文件服务器。全部绘制节点计算完后,文件服务起拥有所有100个物体的间接光照纹理。
[0090] 本发明的优点在于:1、本发明的框架为有关室内建筑展示的领域提供了一套完整的全局光照真实感并行绘制解决方案,针对静态的室内场景,不仅可以快速的得到离线绘制结果,而且还提供了后期实时漫游功能。2、本发明的辐射度并行绘制管线,提出一种基于光照图的负载均衡和任务调度算法,该算法通过考虑并行绘制各个阶段,光照图数据的不同操作,分析各个绘制子节点的负载变化,动态分配光照图绘制任务,最终达到整个绘制任务的优化。
[0091] 最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈