控制渲染操作制造技术

技术编号:26532426 阅读:42 留言:0更新日期:2020-12-01 14:15
描述了控制渲染操作的方法。在实例中,所述方法包括识别当前渲染内的绘制调用,并分析供所述绘制调用使用的一系列着色器中的最后着色器,以识别被所述最后着色器取样并且将通过尚未发送以供在GPU上执行的先前渲染写入的任何缓冲区。如果识别出任何此类缓冲区,那么执行进一步分析以确定所述最后着色器是否使用与当前片段位置相对应的屏幕空间坐标从所识别的缓冲区取样,如果此确定是肯定的,那么将所述绘制调用添加到与所述先前渲染相关的数据中,并将所述最后着色器重新编译以便用从片上寄存器读取数据的指令替代从所识别的缓冲区读取数据的指令。

【技术实现步骤摘要】
控制渲染操作

技术介绍
在计算机图形中,术语‘渲染’可用于描述用来从计算机模型创建图像(例如,用于屏幕显示)的过程,并且在多个实例中,在创建用于显示的单个数据帧中涉及多个渲染操作。在渲染场景(例如,3D场景)时,场景中的物体划分成大量小块片,称为图元,它们的形状通常是三角形的。存在数种可以实施渲染的方式,其中一个实例是基于图块的渲染。在基于图块的渲染中,渲染空间(例如,屏幕空间)划分成多个图块,然后这些图块可以彼此独立地进行渲染。使用基于图块的渲染可以提高图形处理系统的效率,特别是在存在大量图元的情况下。在图形处理系统中,主机处理器(例如CPU)处的驱动器处理传入数据流(例如,来自应用程序)并输出使图形处理单元(GPU)执行渲染操作等操作的命令。一旦完成帧的渲染,就将所得数据(例如,渲染空间中每个像素的颜色值)写入到帧缓冲区。接着,显示器硬件可将帧缓冲区中的数据转换成可以在显示器上显示的信号。下文描述的实施例仅作为举例而提供,并非是对解决已知渲染方法和已知图形处理管线的任一或所有缺点的实施方案的限制。>
技术实现思路
...

【技术保护点】
1.一种在图形系统中渲染场景的方法,所述方法包括:/n识别当前渲染内的第一绘制调用;/n分析供所述第一绘制调用使用的一系列着色器中的至少一最后着色器,以识别被所述最后着色器取样并且将通过尚未发送以供在GPU上执行的先前渲染写入的任何缓冲区,并确定所述最后着色器是否使用与当前片段位置相对应的屏幕空间坐标从所识别的缓冲区取样;以及/n响应于确定供所述第一绘制调用使用的所述最后着色器确实使用与所述当前片段位置相对应的屏幕空间坐标从所述所识别的缓冲区取样,将所述第一绘制调用添加到与所述先前渲染相关的数据中,并将所述最后着色器重新编译,以便用从片上寄存器读取数据的指令替代从所识别的缓冲区读取数据的指令。...

【技术特征摘要】
20190531 GB 1907814.61.一种在图形系统中渲染场景的方法,所述方法包括:
识别当前渲染内的第一绘制调用;
分析供所述第一绘制调用使用的一系列着色器中的至少一最后着色器,以识别被所述最后着色器取样并且将通过尚未发送以供在GPU上执行的先前渲染写入的任何缓冲区,并确定所述最后着色器是否使用与当前片段位置相对应的屏幕空间坐标从所识别的缓冲区取样;以及
响应于确定供所述第一绘制调用使用的所述最后着色器确实使用与所述当前片段位置相对应的屏幕空间坐标从所述所识别的缓冲区取样,将所述第一绘制调用添加到与所述先前渲染相关的数据中,并将所述最后着色器重新编译,以便用从片上寄存器读取数据的指令替代从所识别的缓冲区读取数据的指令。


2.根据权利要求1所述的方法,其进一步包括,响应于确定供所述第一绘制调用使用的所述最后着色器确实使用与所述当前片段位置相对应的屏幕空间坐标从所述所识别的缓冲区取样:
识别所述当前渲染中的下一绘制调用;
分析供所述下一绘制调用使用的一系列着色器中的至少一最后着色器,以识别被所述最后着色器取样并且将通过尚未发送以供在所述GPU上执行的先前渲染写入的任何缓冲区,并确定所述最后着色器是否使用与所述当前片段位置相对应的屏幕空间坐标从所述所识别的缓冲区取样;以及
响应于确定供所述下一绘制调用使用的所述最后着色器确实使用与所述当前片段位置相对应的屏幕空间坐标从所述所识别的缓冲区取样,将所述下一绘制调用添加到与所述先前渲染相关的所述数据中,将所述最后着色器重新编译以便用从片上寄存器读取数据的指令替代从所识别的缓冲区读取数据的指令,并针对所述当前渲染中的每个下一绘制调用重复所述方法,直到对所述当前渲染的所有绘制调用都被添加到与渲染相关的数据中为止。


3.根据权利要求1所述的方法,其进一步包括:
对于所述当前渲染中的每个后续绘制调用,分析供所述后续绘制调用使用的一系列着色器中的至少一最后着色器,以识别被所述最后着色器取样并且将通过尚未发送以供在所述GPU上执行的先前渲染写入的任何缓冲区,并确定所述最后着色器是否使用与所述当前片段位置相对应的屏幕空间坐标从所述所识别的缓冲区取样;
并且其中所述方法包括响应于确定对于所述当前渲染中的每个绘制调用,供所述绘制调用使用的所述最后着色器确实使用与所述当前片段位置相对应的屏幕空间坐标从所述所识别的缓冲区取样,将所有所述绘制调用添加到与所述先前渲染相关的数据中,并将所述绘制调用的所述最后着色器重新编译以便用从片上寄存器读取数据的指令替代从所识别的缓冲区读取数据的任何指令。


4.根据权利要求1所述的方法,其中所述绘制调用所引用的所述一系列着色器包括顶点着色器和片段着色器。


5.根据权利要求4所述的方法,其中分析供绘制调用使用的一系列着色器中的至少一最后着色器以识别被所述最后着色器取样并且将通过尚未发送以供在所述GPU上执行的先前渲染写入的任何缓冲区并确定所述最后着色器是否使用与所述当前片段位置相对应的屏幕空间坐标从所述所识别的缓冲区取样包括:
识别被所述片段着色器取样并且将通过尚未发送以供在所述GPU上执行的先前渲染写入的任何缓冲区;以及
分析供所述绘制调用使用的至少所述片段着色器,以确定所述片段着色器是否使用与所述当前片段位置相对应的屏幕空间坐标从所述所识别的缓冲区取样。


6.根据权利要求1所述的方法,其中分析供绘制调用使用的一系列着色器中的至少一最后着色器以识别被所述最后着色器取样并且将通过尚未发送以供在所述GPU上执行的先前渲染写入的任何缓冲区并确定所述最后着色器是否使用与所述当前片段位置相对应的屏幕空间坐标从所述所识别的缓冲区取样包括:
检查所述一系列着色器中的至少所述最后着色器中的代码,以确定一组预定义图案中的一个是否存在于所述代码内。


7.根据权利要求1所述的方法,其中分析供绘制调用使用的一系列着色器中的至少一最后着色器以识别被所述最后着色器取样并且将通过尚未发送以供在所述GPU上执行的先前渲染写入的任何缓冲区并确定所述最后着色器是否使用与所述当前片段位置相对应的屏幕空间坐标从所述所识别的缓冲区取样包括:
检查所述一系列着色器中的至少所述最后着色器中的代码,以确定用于从所述所识别的缓冲区取样的样本位置是否使用屏幕空间变换在所述最后着色器中计算出。


8.根据权利要求1所述的方法,其进一步包括,响应于确定供所述第一绘制调用使用的所述最后着色器确实使用与所述当前片段位置相对应的屏幕空间坐标从所述所识别的缓冲区取样并且在将所述第一绘制调用添加到与所述先前渲染相关的数据中和将所述最后着色器重新编译以便用从片上寄存器读取数据的指令替代从所识别的缓冲区读取数据的指令之前:
分析供所述绘制调用使用的所述一系列着色器中的代码,以识别是否符合排除合并的一组预定义条件中的一个;以及
响应于识别出符合排除合并的所述预定义条件中的任一个,将...

【专利技术属性】
技术研发人员:J·豪森阿伦·德默雷S·菲什威克
申请(专利权)人:想象技术有限公司
类型:发明
国别省市:英国;GB

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

1