有效
一种基于路径追踪的场景渲染方法、装置、设备及介质
王庆林、杨顺、陈新海、王柄霖、张翔、张庆阳、郭晓威、杨博、刘杰
中国人民解放军国防科技大学
王
王庆林 专利 87
中国人民解放军国防科技大学电子数据处理计算技术物理仪器
杨
杨顺 专利 1
中国人民解放军国防科技大学三维图像加工三维建模程序控制装置
陈
陈新海 专利 42
中国人民解放军国防科技大学电子数据处理计算技术物理仪器
王
王柄霖 专利 24
中国人民解放军国防科技大学电子数据处理计算技术物理仪器
张
张翔 专利 54
中国人民解放军国防科技大学分析优化类型计算机辅助设计电子数据处理
张
张庆阳 专利 31
中国人民解放军国防科技大学电子数据处理计算技术物理仪器
郭
郭晓威 专利 45
中国人民解放军国防科技大学计算机辅助设计电子数据处理申请详情
杨
杨博 专利 54
中国人民解放军国防科技大学电子数据处理计算技术物理仪器
刘
刘杰 专利 102
中国人民解放军国防科技大学申请详情分析优化类型计算机辅助设计
摘要
本申请公开了一种基于路径追踪的场景渲染方法、装置、设备及介质,涉及图像渲染技术领域,包括:获取目标主机传输的渲染信息,并基于渲染信息和目标处理器的目标线程构造目标加速场景结构;基于预设任务分配规则和本地的预设存储结构为若干线程分配相应的像素渲染任务,并确定每轮任务分配量;通过若干线程,利用预设路径追踪技术、目标加速场景结构和渲染信息执行各自对应的像素渲染任务,然后根据预设任务分配规则和预设负载均衡策略对当前未渲染像素中的与下一轮任务分配量对应数量的像素点进行渲染,直至若干待渲染像素均被渲染;将若干渲染后像素传输至目标主机,以便目标主机基于若干渲染后像素获取针对目标场景模型的渲染后场景。
1.一种基于路径追踪的场景渲染方法,其特征在于,应用于MIMD架构的目标处理器,包括:获取目标主机传输的与待渲染的目标场景模型相关的渲染信息,并基于所述渲染信息和所述目标处理器的目标线程构造目标加速场景结构;所述目标线程为所述目标处理器的若干线程中一个用于初始化所述目标加速场景结构的线程;所述目标加速场景结构为由若干包围盒构成的包围盒树;基于预设任务分配规则和本地的预设存储结构为所述若干线程分配相应的像素渲染任务,并确定相应的每轮任务分配量;所述像素渲染任务为针对所述目标场景模型中若干待渲染像素的任意一个像素点进行渲染的任务,并与所述线程一一对应;通过所述若干线程,利用预设路径追踪技术、所述目标加速场景结构和所述渲染信息执行各自对应的所述像素渲染任务,以完成与本轮所述任务分配量对应数量的像素点的渲染任务,然后根据所述预设任务分配规则和预设负载均衡策略对当前未渲染像素中的与下一轮所述任务分配量对应数量的像素点进行渲染,直至所述若干待渲染像素均被渲染,以得到若干渲染后像素;将所述若干渲染后像素传输至所述目标主机,以便所述目标主机基于所述若干渲染后像素获取针对所述目标场景模型的渲染后场景。
2.根据权利要求1所述的基于路径追踪的场景渲染方法,其特征在于,所述基于所述渲染信息和所述目标处理器的目标线程构造目标加速场景结构,包括:确定所述渲染信息中的三角面片数据结构数组;所述三角面片数据结构数组由所述目标场景模型对应的若干三角面片信息加载而成,所述若干三角面片信息为所述目标主机对所述目标场景模型进行解析所得到的信息;基于本地的向量单元位数确定相应的包围盒数量,并定义独立包围盒的第一包围盒数据结构;定义目标多叉包围盒的第二包围盒数据结构;所述目标多叉包围盒为以预设数量个所述独立包围盒为子节点构成的组合包围盒;所述预设数量与所述包围盒数量一致;通过所述目标处理器的目标线程,定义所述目标多叉包围盒和目标数据结构作为包围盒节点,并基于所述包围盒节点、所述第一包围盒数据结构和所述第二包围盒数据结构进行构造,以得到构造的目标加速场景结构;所述目标数据结构为指向所述预设数量个所述子节点的指针的数据结构。
3.根据权利要求2所述的基于路径追踪的场景渲染方法,其特征在于,所述定义所述目标多叉包围盒和目标数据结构作为包围盒节点,并基于所述包围盒节点、所述第一包围盒数据结构和所述第二包围盒数据结构进行构造,以得到构造的目标加速场景结构,包括:将所述三角面片数据结构数组划分为所述预设数量个目标子集;分别为所述目标子集构造相应的包围盒节点,以及将所述包围盒节点存储至第一目标栈中;所述包围盒节点为由所述目标多叉包围盒和目标数据结构而构成的节点;所述目标数据结构为指向所述预设数量个所述子节点的指针的数据结构;针对所述第一目标栈中的所述包围盒节点以递归的方式进行所述划分为所述预设数量个目标子集的操作,和所述分别为所述目标子集构造相应的包围盒节点,以及将所述包围盒节点存储至第一目标栈中的操作,直至检测到划分的所述目标子集中三角面片的数量不高于所述预设数量,并将当前构造的所述包围盒节点确定为叶子节点;基于所述叶子节点中所述三角面片的空间坐标和所述第一包围盒数据结构进行所述独立包围盒的构造,并根据所述第二包围盒数据结构对所述独立包围盒进行合并操作,以利用构造的所述目标多叉包围盒对所述叶子节点进行填充,得到包含所述包围盒节点的目标加速场景结构。
4.根据权利要求1所述的基于路径追踪的场景渲染方法,其特征在于,所述基于预设任务分配规则和本地的预设存储结构为所述若干线程分配相应的像素渲染任务,并确定相应的每轮任务分配量,包括:确定本地的预设存储结构和所述渲染信息中所述目标场景模型的分辨率;根据所述预设存储结构和所述分辨率对所述若干线程进行缓存层级的划分,并控制所述若干线程中共享同一级别的缓存层级的线程负责所述目标场景模型中空间位置相邻的像素点渲染任务;基于预设函数获取所述若干线程各自对应的线程号、划分到的所述缓存层级的层级号,并基于所述线程号和所述层级号,确定所述若干线程各自负责的所述像素点渲染任务对应的像素点空间位置,以便所述若干线程根据所述像素点空间位置执行各自负责的所述像素渲染任务;根据所述若干线程的缓存层级划分情况确定相应的每轮任务分配量。
5.根据权利要求1所述的基于路径追踪的场景渲染方法,其特征在于,所述基于预设任务分配规则和本地的预设存储结构为所述若干线程分配相应的像素渲染任务,包括:确定所述渲染信息中所述目标场景模型的分辨率,并判断所述分辨率的高度或宽度是否均为所述每轮任务分配量的倍数;若判断所述分辨率的高度或宽度并非均为所述每轮任务分配量的倍数,则确定出所述目标场景模型中的不规则部分和规则部分,并将所述不规则部分存入预设的原子任务池中;所述不规则部分为所述目标场景模型中未能被所述每轮任务分配量整除的部分;所述规则部分为所述目标场景模型中能够被所述每轮任务分配量整除的部分;针对所述规则部分,基于预设任务分配规则和本地的预设存储结构为所述若干线程分配相应的像素渲染任务;相应的,所述根据所述预设任务分配规则和预设负载均衡策略对当前未渲染像素中的与下一轮所述任务分配量对应数量的像素点进行渲染,直至所述若干待渲染像素均被渲染,包括:在所述线程完成对应的所述像素渲染任务后,根据所述预设任务分配规则定位所述规则部分中下一轮进行渲染的像素点的空间位置,并对定位出的所述像素点进行渲染,以及跳转至所述根据所述预设任务分配规则定位所述规则部分中下一轮进行渲染的像素点的空间位置的步骤,直至定位的所述像素点的空间位置超出所述分辨率的高度或宽度;确定所述原子任务池中所述不规则部分的像素点个数,以及所述原子任务池对应的用于记录当前渲染任务数的预设变量值;在所述线程定位的所述像素点的空间位置超出所述分辨率的高度或宽度后,将当前所述预设变量值与所述像素点个数进行比对,若当前所述预设变量值小于所述像素点个数,则将所述预设变量值加一,并取出所述预设变量值对应的所述不规则部分中的目标待渲染像素点;通过所述线程对所述目标待渲染像素点进行渲染,并跳转至所述将当前所述预设变量值与所述像素点个数进行比对的步骤,直至当前所述预设变量值等于所述像素点个数。
6.根据权利要求1至5任一项所述的基于路径追踪的场景渲染方法,其特征在于,所述通过所述若干线程,利用预设路径追踪技术、所述目标加速场景结构和所述渲染信息执行各自对应的所述像素渲染任务,包括:确定所述渲染信息中的相机点,并确定所述若干线程分别对应的所述像素渲染任务的目标像素点;所述相机点为预设的用于对所述目标场景模型进行观察的所在空间位置的坐标值;将所述相机点与所述目标像素点连线的方向确定为方向向量,并基于所述方向向量和所述相机点生成初始光线;将所述初始光线与所述目标加速场景结构进行遍历,以查找所述目标加速场景结构中与所述初始光线相交的目标命中点,得到相应的查找结果;所述目标命中点为所述目标加速场景结构中与所述初始光线相交的若干命中点中,时间点最小的命中点;若所述查找结果表征所述目标加速场景结构中存在与所述初始光线相交的目标命中点,则取出所述目标命中点中的三角面片信息,根据所述三角面片信息中的材质信息生成出射方向;根据所述出射方向进行光线追踪,并判断是否命中光源;若未命中光源,则记录当前命中材质的吸收系数,并以当前命中点为起点,所述出射方向为方向构造次级光线,将所述次级光线确定为所述初始光线,以及跳转至所述将所述初始光线与所述目标加速场景结构进行遍历的步骤,直至达到预设的弹射次数,或,命中光源;当判定命中光源,则根据记录的所述吸收系数与当前的像素值计算出渲染后的目标像素,完成所述像素渲染任务。
7.根据权利要求6所述的基于路径追踪的场景渲染方法,其特征在于,所述将所述初始光线与所述目标加速场景结构进行遍历,以查找所述目标加速场景结构中与所述初始光线相交的目标命中点,得到相应的查找结果,包括:将所述初始光线与所述目标加速场景结构的初始节点进行遍历,并在遍历的过程中,将与所述初始光线相交的目标节点的目标子节点保存至第二目标栈;所述初始节点为与所述目标加速场景结构中的根节点直接相连的子节点;取出所述第二目标栈中的所述目标子节点,并将所述目标子节点作为下一次递归的所述初始节点,以及跳转至所述将所述初始光线与所述目标加速场景结构的初始节点进行遍历的步骤,直至所述第二目标栈为空,以查找所述目标加速场景结构中与所述初始光线相交的目标命中点,得到相应的查找结果;相应的,所述将所述目标子节点作为下一次递归的所述初始节点,以及跳转至所述将所述初始光线与所述目标加速场景结构的初始节点进行遍历的步骤,直至所述第二目标栈为空的过程中,包括:当遍历至所述目标加速场景结构中的叶子节点时,将所述叶子节点中的三角面片与所述初始光线进行相交判断,若判定与所述初始光线相交,则确定当前与所述初始光线相交的所述叶子节点为命中点,并将所述命中点的时间点与当前记录的目标命中点的时间点进行对比,以得到相应的对比结果;若所述对比结果表征所述命中点的时间点小于当前记录的目标命中点的时间点,则将所述命中点确定为所述目标命中点。
8.一种基于路径追踪的场景渲染装置,其特征在于,应用于MIMD架构的目标处理器,包括:结构构造模块,用于获取目标主机传输的与待渲染的目标场景模型相关的渲染信息,并基于所述渲染信息和所述目标处理器的目标线程构造目标加速场景结构;所述目标线程为所述目标处理器的若干线程中一个用于初始化所述目标加速场景结构的线程;所述目标加速场景结构为由若干包围盒构成的包围盒树;单元确定模块,用于基于预设任务分配规则和本地的预设存储结构为所述若干线程分配相应的像素渲染任务,并确定相应的每轮任务分配量;所述像素渲染任务为针对所述目标场景模型中若干待渲染像素的任意一个像素点进行渲染的任务,并与所述线程一一对应;像素渲染模块,用于通过所述若干线程,利用预设路径追踪技术、所述目标加速场景结构和所述渲染信息执行各自对应的所述像素渲染任务,以完成与本轮所述任务分配量对应数量的像素点的渲染任务,然后根据所述预设任务分配规则和预设负载均衡策略对当前未渲染像素中的与下一轮所述任务分配量对应数量的像素点进行渲染,直至所述若干待渲染像素均被渲染,以得到若干渲染后像素;像素传输模块,用于将所述若干渲染后像素传输至所述目标主机,以便所述目标主机基于所述若干渲染后像素获取针对所述目标场景模型的渲染后场景。
9.一种电子设备,其特征在于,包括:存储器,用于保存计算机程序;处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的基于路径追踪的场景渲染方法。
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的基于路径追踪的场景渲染方法。



