System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本公开涉及图像渲染,尤其涉及一种图像渲染方法、图形处理器、图形处理系统、装置及设备。
技术介绍
1、纹理采样是图像渲染流程中的重要环节,而由于纹理数据的数据量较大,通常难以将全部纹理数据均加载至显存。相关技术中,cpu上运行的应用程序为了尽可能将gpu实际需要使用的纹理数据加载至显存,应用程序会预测摄像机位置,并根据预测的摄像机位置情况,将可能需要渲染的对象对应的纹理数据加载至显存。
2、然而,一方面如果应用程序预测的摄像机位置不准确,则可能导致gpu在进行纹理采样时采样到没有被加载到显存的纹理数据,从而产生缺页错误。另一方面由于在渲染过程中,gpu需要对待渲染对象的顶点进行坐标转换,而应用程序无法得知gpu坐标变换后的结果,因此应用程序需要将gpu可能使用的纹理数据都加载至显存,会造成一定的显存空间浪费。
技术实现思路
1、本公开的目的是提供一种图像渲染方法、图形处理器、图形处理系统、装置及设备,旨在避免缺页错误和减少显存空间的浪费。
2、根据本公开的一个方面,提供一种图像渲染方法,应用于gpu,该方法包括:
3、接收cpu提交的绘图命令,获取绘图命令对应的状态信息;
4、在状态信息表示不需要执行纹理采样的情况下,对待渲染对象执行几何处理和属性插值计算以确定每个片元的多个属性信息,并将每个片元的多个属性信息存储至显存,以及向cpu发送反馈信息,使cpu根据属性信息中包括的纹理索引信息将相应的纹理数据加载至显存;其中,多个属性信息包括
5、在状态信息表示需要执行纹理采样的情况下,从显存中读取纹理数据和每个片元的多个属性信息,并将读取的纹理数据和每个片元的多个属性信息输入片元着色器进行处理。
6、本公开一种可行的实现方式中,状态信息包含采样标识,采样标识用于表示是否需要执行纹理采样;在获取绘图命令对应的状态信息后,方法还包括:
7、根据状态信息中的采样标识,判断是否需要执行纹理采样。
8、本公开一种可行的实现方式中,在向cpu发送反馈信息之前,方法还包括:
9、将每个片元的多个属性信息在显存中的存储地址写入状态信息;
10、根据绘图命令携带的目标地址,将写入存储地址后的状态信息存入显存。
11、本公开一种可行的实现方式中,从显存中读取纹理数据和每个片元的多个属性信息,包括:
12、根据状态信息中的纹理显存地址,从显存中读取纹理数据;其中,纹理显存地址是cpu根据纹理数据在显存中的地址写入状态信息中的;
13、根据状态信息中的属性信息存储地址,从显存中读取每个片元的多个属性信息。
14、本公开一种可行的实现方式中,绘图命令对应的状态信息为多个,每个状态信息分别对应一个待渲染对象,每个状态信息包含采样标识,每个状态信息包含的采样标识用于表征是否需要对相应待渲染对象执行纹理采样;
15、在获取绘图命令对应的状态信息后,方法还包括:
16、根据每个状态信息中的采样标识,确定是否需要对相应待渲染对象执行纹理采样;
17、在状态信息表示不需要执行纹理采样的情况下,对待渲染对象执行几何处理和属性插值计算以确定每个片元的多个属性信息,包括:
18、在绘图命令对应有表示不需要执行纹理采样的状态信息的情况下,针对该状态信息对应的待渲染对象执行几何处理和属性插值计算,以确定每个片元的多个属性信息。
19、本公开一种可行的实现方式中,在状态信息表示需要执行纹理采样的情况下,从显存中读取纹理数据和每个片元的多个属性信息,包括:
20、在绘图命令对应有表示需要执行纹理采样的状态信息的情况下,针对该状态信息对应的待渲染对象,从显存中读取该待渲染对象对应的纹理数据和每个片元的多个属性信息。
21、本公开一种可行的实现方式中,在状态信息表示不需要执行纹理采样的情况下,对待渲染对象执行几何处理和属性插值计算以确定每个片元的多个属性信息,并将每个片元的多个属性信息存储至显存,包括:
22、在状态信息表示不需要执行纹理采样的情况下,对待渲染对象执行几何处理和属性插值计算以确定每个片元的多个属性信息;
23、对多个片元进行深度检测,以保留未被遮挡的片元;
24、将未被遮挡的片元的多个属性信息存储至显存。
25、根据本公开的另一个方面,提供一种图形处理器,包括:
26、命令接收模块,用于接收cpu提交的绘图命令;
27、状态信息获取模块,用于获取绘图命令对应的状态信息;
28、几何处理模块,用于在状态信息表示不需要执行纹理采样的情况下,对待渲染对象执行几何处理;
29、插值计算模块,用于在状态信息表示不需要执行纹理采样的情况下,对待渲染对象执行属性插值计算以确定每个片元的多个属性信息,并将每个片元的多个属性信息存储至显存,以及向cpu发送反馈信息,使cpu根据纹理索引信息将相应的纹理数据加载至显存;其中,多个属性信息包括纹理索引信息;
30、纹理采样器,用于在状态信息表示需要执行纹理采样的情况下,从显存中读取纹理数据和每个片元的多个属性信息,并将读取的纹理数据和每个片元的多个属性信息输入片元着色器进行处理。
31、本公开一种可行的实现方式中,状态信息包含的采样标识,采样标识用于表征是否需要执行纹理采样,纹理采样器还用于根据状态信息中的采样标识,判断是否需要执行纹理采样。
32、本公开一种可行的实现方式中,插值计算模块在向cpu发送反馈信息之前,还用于将每个片元的多个属性信息在显存中的存储地址写入状态信息,根据绘图命令携带的目标地址,将写入存储地址后的状态信息存入显存。
33、本公开一种可行的实现方式中,纹理采样器在从显存中读取纹理数据和每个片元的多个属性信息时,具体用于:
34、根据状态信息中的纹理显存地址,从显存中读取纹理数据;其中,纹理显存地址是cpu根据纹理数据在显存中的地址写入状态信息中的;
35、根据状态信息中的属性信息存储地址,从显存中读取每个片元的多个属性信息。
36、本公开一种可行的实现方式中,绘图命令对应的状态信息为多个,每个状态信息分别对应一个待渲染对象,每个状态信息包含采样标识,每个状态信息包含的采样标识用于表征是否需要对相应待渲染对象执行纹理采样;
37、纹理采样器还用于根据每个状态信息中的采样标识,确定是否需要对相应待渲染对象执行纹理采样;
38、几何处理模块在对待渲染对象执行几何处理时,具体用于在绘图命令对应有表示不需要执行纹理采样的状态信息的情况下,针对该状态信息对应的待渲染对象执行几何处理;
39、插值计算模块在对待渲染对象执行属性插值计算时,具体用于在绘图命令对应有表示不需要执行纹理采样的状态信息的情况下,针对该状态信息对应的待渲染对象执行属性插值本文档来自技高网...
【技术保护点】
1.一种图像渲染方法,应用于GPU,所述方法包括:
2.根据权利要求1所述的方法,所述状态信息包含采样标识,所述采样标识用于表示是否需要执行纹理采样;在获取所述绘图命令对应的状态信息后,所述方法还包括:
3.根据权利要求1或2所述的方法,在向CPU发送反馈信息之前,所述方法还包括:
4.根据权利要求3所述的方法,所述从所述显存中读取纹理数据和每个片元的多个属性信息,包括:
5.根据权利要求1所述的方法,所述绘图命令对应的状态信息为多个,每个状态信息分别对应一个待渲染对象,每个状态信息包含采样标识,每个状态信息包含的采样标识用于表征是否需要对相应待渲染对象执行纹理采样;
6.根据权利要求5所述的方法,所述在所述状态信息表示需要执行纹理采样的情况下,从所述显存中读取纹理数据和每个片元的多个属性信息,包括:
7.根据权利要求1所述的方法,所述在所述状态信息表示不需要执行纹理采样的情况下,对待渲染对象执行几何处理和属性插值计算以确定每个片元的多个属性信息,并将每个片元的多个属性信息存储至显存,包括:
8.
9.根据权利要求8所述的图形处理器,所述状态信息包含采样标识,所述采样标识用于表征是否需要执行纹理采样,所述纹理采样器还用于根据所述状态信息中的采样标识,判断是否需要执行纹理采样。
10.根据权利要求8或9所述的图形处理器,所述插值计算模块在向CPU发送反馈信息之前,还用于将每个片元的多个属性信息在所述显存中的存储地址写入所述状态信息,根据所述绘图命令携带的目标地址,将写入存储地址后的状态信息存入所述显存。
11.根据权利要求10所述的图形处理器,所述纹理采样器在从所述显存中读取纹理数据和每个片元的多个属性信息时,具体用于:
12.根据权利要求8所述的图形处理器,所述绘图命令对应的状态信息为多个,每个状态信息分别对应一个待渲染对象,每个状态信息包含采样标识,每个状态信息包含的采样标识用于表征是否需要对相应待渲染对象执行纹理采样;
13.根据权利要求12所述的图形处理器,所述纹理采样器在从所述显存中读取纹理数据和每个片元的多个属性信息时,具体用于在所述绘图命令对应有表示需要执行纹理采样的状态信息的情况下,针对该状态信息对应的待渲染对象,从所述显存中读取该待渲染对象对应的纹理数据和每个片元的多个属性信息。
14.根据权利要求8所述的图形处理器,还包括:
15.一种图形处理系统,包括权利要求8-14任一项所述的图形处理器。
16.一种电子装置,包括权利要求15所述的图形处理系统。
17.一种电子设备,包括权利要求16所述的电子装置。
18.一种图像渲染方法,所述方法包括:
19.根据权利要求18所述的方法,在向GPU提交绘图命令之前,所述方法还包括:
20.根据权利要求19所述的方法,在向所述GPU再次提交绘图命令之前,所述方法还包括:
21.根据权利要求18所述的方法,所述响应于所述GPU的反馈信息,根据所述纹理索引信息,将相应的纹理数据加载至所述显存,包括:
22.根据权利要求21所述的方法,在向所述GPU再次提交绘图命令之前,所述方法还包括:
23.根据权利要求18所述的方法,每次向GPU提交的绘图命令对应多个状态信息,所述多个状态信息中包括第一状态信息和第二状态信息,第一状态信息包含用于表示不需要执行纹理采样的第一采样标识,第二状态信息包含用于表示需要执行纹理采样的第二采样标识,每个状态信息分别对应一个待渲染对象;
...【技术特征摘要】
1.一种图像渲染方法,应用于gpu,所述方法包括:
2.根据权利要求1所述的方法,所述状态信息包含采样标识,所述采样标识用于表示是否需要执行纹理采样;在获取所述绘图命令对应的状态信息后,所述方法还包括:
3.根据权利要求1或2所述的方法,在向cpu发送反馈信息之前,所述方法还包括:
4.根据权利要求3所述的方法,所述从所述显存中读取纹理数据和每个片元的多个属性信息,包括:
5.根据权利要求1所述的方法,所述绘图命令对应的状态信息为多个,每个状态信息分别对应一个待渲染对象,每个状态信息包含采样标识,每个状态信息包含的采样标识用于表征是否需要对相应待渲染对象执行纹理采样;
6.根据权利要求5所述的方法,所述在所述状态信息表示需要执行纹理采样的情况下,从所述显存中读取纹理数据和每个片元的多个属性信息,包括:
7.根据权利要求1所述的方法,所述在所述状态信息表示不需要执行纹理采样的情况下,对待渲染对象执行几何处理和属性插值计算以确定每个片元的多个属性信息,并将每个片元的多个属性信息存储至显存,包括:
8.一种图形处理器,包括:
9.根据权利要求8所述的图形处理器,所述状态信息包含采样标识,所述采样标识用于表征是否需要执行纹理采样,所述纹理采样器还用于根据所述状态信息中的采样标识,判断是否需要执行纹理采样。
10.根据权利要求8或9所述的图形处理器,所述插值计算模块在向cpu发送反馈信息之前,还用于将每个片元的多个属性信息在所述显存中的存储地址写入所述状态信息,根据所述绘图命令携带的目标地址,将写入存储地址后的状态信息存入所述显存。
11.根据权利要求10所述的图形处理器,所述纹理采样器在从所述显存中读取纹理数据和每个片元的多个属性信息时,...
【专利技术属性】
技术研发人员:姜莹,王海洋,
申请(专利权)人:象帝先计算技术重庆有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。