System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于屏幕空间分块的多材质着色的方法、介质及设备技术_技高网

一种基于屏幕空间分块的多材质着色的方法、介质及设备技术

技术编号:40599083 阅读:4 留言:0更新日期:2024-03-12 22:02
本申请实施例提供一种基于屏幕空间分块的多材质着色的方法、介质及设备,所述方法包括:记录与第i材质或者第i材质组对应的屏幕块信息;在针对所述第i材质或者所述第i材质组进行着色时,启动与所述第i材质或者所述第i材质组对应屏幕块总数目个工作任务,并在各个工作任务中至少根据所述第i材质或者所述第i材质组包括的各屏幕块的位置完成对像素点的着色处理,其中,一个工作任务的线程个数为对应屏幕块包含的像素总数目。采用本申请实施例的在材质种类较多时,在达到相同效果的前提下,使用的GPU线程个数更少,同时每个着色器使用的计算数据更少,着色器中分支逻辑更少,有利于GPU的并行计算,提升计算效率。

【技术实现步骤摘要】

本申请涉及图像渲染领域,具体而言本申请实施例涉及一种基于屏幕空间分块的多材质着色的方法、介质及设备


技术介绍

1、在三维图形渲染中,可通过根据真实世界的物体与光照交互的情况,设计出不同的材质(如金属材质、木头材质等),使用这些材质就可在图形渲染中渲染得到对应的效果(如金属效果、木头效果等)。由于真实世界的材质种类很多,为了尽可能的还原真实世界的渲染效果,让渲染功能支持多材质就至关重要。延迟着色技术是一种对多光源友好的渲染技术,分为两个主要阶段:几何阶段和着色阶段。相关技术在延迟着色技术的着色阶段,随着材质数量的增多,着色器占用的计算资源会逐渐增加,运行效率也会逐渐降低。


技术实现思路

1、本申请实施例的目的在于提供一种基于屏幕空间分块的多材质着色的方法、介质及设备,采用本申请实施例的在材质种类较多时,在达到相同效果的前提下,使用的图形处理器gpu(graphics processing unit)线程个数更少,同时每个着色器使用的计算数据更少,着色器中分支逻辑更少,有利于gpu的并行计算,提升计算效率。

2、第一方面,本申请实施例提供一种基于屏幕空间分块的多材质着色的方法,所述方法包括:记录与第i材质或者第i材质组对应的屏幕块信息,其中,所述第i材质是与待渲染场景对应的多种材质中的任意一种材质,所述屏幕块信息包括:所述第i材质或者所述第i材质组所覆盖的屏幕块的总数目以及所述第i材质或者所述第i材质组所覆盖的各屏幕块的位置,所述屏幕块是将整个屏幕空间进行分块得到的;在针对所述第i材质或者所述第i材质组进行着色时,启动与所述第i材质或者所述第i材质组对应屏幕块总数目个工作任务,并在各个工作任务中至少根据所述第i材质或者所述第i材质组包括的各屏幕块的位置完成对像素点的着色处理,其中,一个工作任务的线程个数为对应屏幕块包含的像素总数目。

3、本申请的一些实施例通过对屏幕分块,并记录与各材质或者各材质组对应的屏幕块的数目以及屏幕块的位置,进而在后续像素着色阶段就可以根据该材质对应的屏幕块的总数目来确定启动的工作任务数(可以理解的是若相应材质覆盖的屏幕块的数目越少则启动的工作任务数越少且启动的线程数目也更少,跟相关技术渲染时需要启动等于整个屏幕上所有像素点的线程相比明显提升了处理效率),并在渲染中根据该材质对应的屏幕块的位置来完成相应位置的着色,提升了处理效率。

4、在一些实施例中,所述记录与第i材质或者第i材质组对应的屏幕块信息,包括:采用位于缓冲区的屏幕块数目记录数组记录与所述第i材质或者所述第i材质组对应的(对应的即所覆盖的)所述屏幕块的总数目;采用位于所述缓冲区的屏幕块位置记录数组记录所述第i材质或者所述第i材质组对应的(对应的即所覆盖的)所述各屏幕块的位置。

5、本申请的一些实施例通过缓存中的两个数组分别记录与各材质(或各材质组)所覆盖的屏幕块的总数目,以及所覆盖的各屏幕块的位置,进而在后续着色阶段可以根据这些信息确定调用gpu的线程数(以所覆盖的屏幕块为依据来确定调用线程)以及着色的像素点的较准确的位置,可以避免像相关技术中以整个屏幕上的所有像素点为着色对象带来的处理效率低下的技术问题。

6、在一些实施例中,所述待渲染场景包括mcount种材质,与所述mcount种材质中各个材质对应的材质编号是通过从0开始的连续递增的编码得到的,与所述mcount种材质中所有材质对应一个编码范围且所述编码范围为材质编码范围,mcount为大于或者等于1的整数,其中,所述记录与第i材质或者第i材质组对应的屏幕块信息,包括:在确认当前屏幕块包括所述第i材质或者第i材质组且确认当前线程在线程组中的编码local id位于所述材质编码范围内,则将所述当前线程在线程组中的编码local id作为第一位置索引;对位于所述屏幕块数目记录数组中的所述第一位置索引处的原始数据执行原子加操作,从而在所述屏幕块数目记录数组中记录与所述第i材质或者所述第i材质组对应的所有屏幕块的总数目。

7、本申请的一些实施例通过原子加操作确定屏幕块数目记录数组中记录的各材质所覆盖的屏幕块的总数目。

8、在一些实施例中,所述记录与第i材质或者第i材质组对应的屏幕块信息,包括:计算所述整个屏幕空间包括的所述屏幕块的总数目;求解所述屏幕块总数目与所述当前线程在线程组中的编码local id的乘积;计算所述乘积与所述原始数据的和得到第二位置索引;对属于所述第i材质或者所述第i材质组的屏幕块位置对应的坐标进行编码,得到位置编码数据;将所述位置编码数据写入所述屏幕块位置记录数组中所述第二位置索引处,从而在所述屏幕块位置记录数组中记录所述第i材质或者所述第i材质组包括的各屏幕块的位置。

9、本申请的一些实施例提供一种在屏幕块位置记录数组中记录各屏幕块位置的技术方案。

10、在一些实施例中,所述至少根据所述第i材质或者所述第i材质组包括的各屏幕块的位置完成对像素点的着色处理,包括:使用间接调用的方式完成基于所述第i材质或者所述第i材质组的像素渲染,其中,所述屏幕块数目记录数组作为间接调用缓冲参数。

11、在一些实施例中,所述在各个工作任务中至少根据所述第i材质包括的各屏幕块的位置完成对像素点的着色处理,包括:以目标位置location为坐标,从几何信息缓存数组gbuffer中获取材质标识号信息shadingid,其中,所述目标位置用于表征所述当前线程对应的屏幕像素坐标;若所述材质标识号信息shadingid 等于所述第i材质的编码标识,则以所述目标位置location为坐标从所述几何信息缓存数组gbuffer中获取几何信息;根据所述几何信息得到颜色信息,并将所述颜色信息写入颜色纹理scenecolor的所述目标位置location处。

12、本申请的一些实施例提供一种着色的方法。

13、在一些实施例中,所述目标位置为:

14、location = baseposition + shadinggroupthreadid

15、其中,basepostion用于表征当前工作组对应的屏幕块的左上角像素在所述整个屏幕空间的坐标,shadinggroupthreadid 用于表征所述当前线程在所述当前工作组内的坐标。

16、第二方面,本申请的一些实施例提供一种基于屏幕空间分块的多材质着色的装置,所述装置包括:记录模块,被配置为记录与第i材质或者第i材质组对应的屏幕块信息,其中,所述第i材质是与待渲染场景对应的所有材质中的任意一种材质,所述屏幕块信息包括:所述第i材质或者所述第i材质组对应的屏幕块的总数目以及所述第i材质或者所述第i材质组包括的各屏幕块的位置,所述屏幕块是将整个屏幕空间进行分块得到的;着色模块,被配置为在针对所述第i材质或者所述第i材质组进行着色时,启动与所述第i材质或者所述第i材质组对应屏幕块总数目个工作任务,并在各个工作任务中至少根据所述第i材质或者所述第i材质组包括的各屏幕块的位置完成对像素本文档来自技高网...

【技术保护点】

1.一种基于屏幕空间分块的多材质着色的方法,其特征在于,所述方法包括:

2.如权利要求1所述的方法,其特征在于,所述记录与第i材质或者第i材质组对应的屏幕块信息,包括:

3.如权利要求2所述的方法,其特征在于,所述待渲染场景包括MCount种材质,与所述MCount种材质中各个材质对应的材质编号是通过从0开始的连续递增的编码得到的,与所述MCount种材质中所有材质对应一个编码范围且所述编码范围为材质编码范围,MCount为大于或者等于1的整数,其中,

4.如权利要求3所述的方法,其特征在于,所述记录与第i材质或者第i材质组对应的屏幕块信息,包括:

5.如权利要求4所述的方法,其特征在于,所述至少根据所述第i材质或者所述第i材质组包括的各屏幕块的位置完成对像素点的着色处理,包括:

6.如权利要求5所述的方法,其特征在于,所述在各个工作任务中至少根据所述第i材质包括的各屏幕块的位置完成对像素点的着色处理,包括:

7.如权利要求6所述的方法,其特征在于,所述目标位置location为:

8.如权利要求1-7任一项所述的方法,其特征在于,所述第i材质组是在所述多种材质的材质总数大于对所述整个屏幕进行分块得到的屏幕块的总数时对所述多种材质进行分组得到的。

9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时可实现如权利要求1-7中任意一项权利要求所述的方法。

10.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现如权利要求1-7中任意一项权利要求所述的方法。

...

【技术特征摘要】

1.一种基于屏幕空间分块的多材质着色的方法,其特征在于,所述方法包括:

2.如权利要求1所述的方法,其特征在于,所述记录与第i材质或者第i材质组对应的屏幕块信息,包括:

3.如权利要求2所述的方法,其特征在于,所述待渲染场景包括mcount种材质,与所述mcount种材质中各个材质对应的材质编号是通过从0开始的连续递增的编码得到的,与所述mcount种材质中所有材质对应一个编码范围且所述编码范围为材质编码范围,mcount为大于或者等于1的整数,其中,

4.如权利要求3所述的方法,其特征在于,所述记录与第i材质或者第i材质组对应的屏幕块信息,包括:

5.如权利要求4所述的方法,其特征在于,所述至少根据所述第i材质或者所述第i材质组包括的各屏幕块的位置完成对像素点的着色处理,包括:

...

【专利技术属性】
技术研发人员:孙思远胡梓楠冯星崔铭方顺
申请(专利权)人:北京渲光科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1