用于多遍渲染的技术的制作方法

文档序号:9912638阅读:353来源:国知局
用于多遍渲染的技术的制作方法
【专利说明】用于多遍渲染的技术
[0001 ] 本申请是PCT国际申请号为PCT/US2011/064933、国际申请日为2011年12月14日、中国国家申请号为201180075514.8、题为“用于多遍渲染的技术”的申请的分案申请。
[0002]背景
[0003]三维技术在图形开发领域扮演着重要的角色。三维技术在诸如智能电话、桌面和上网本之类的移动设备中实现。三维技术在移动设备上的性能和功耗通常与用户视觉体验有关,并影响了产品的竞争优势。
[0004]许多三维游戏使用诸如透明、阴影和/或自适应纹理/皮肤之类的特效以使得游戏对最终用户而言更有吸引力。然而,运行在当前图形处理单元上的应用需要对同一三维对象集合多遍通过整个三维流水线,以便创建这些特效。
[0005]例如,为创建透明效果,应用必须首先进行深度剥离,以得到每一深度层的帧缓冲区,然后根据深度值混合各层。在深度剥离过程期间,应用必须对同一三维对象集合多次运行通过三维流水线,以便从不同的层获取数据。在每一次运行通过三维流水线期间,计算三维流水线的顶点级(phase)以及像素级两者。然而,在运行期间,在顶点级中没有变化。结果,在这些遍中计算的顶点级是重复且冗余的。正是针对这些和其它考虑需要本发明的改进。
【附图说明】
[0006]图1示出了用于多遍渲染的系统的实施例。
[0007]图2示出了图1的系统的逻辑流程的实施例。
[0008]图3示出了具有三维流水线的图形处理单元的实施例。
[0009]图4示出了在像素级期间对于对象的深度渲染的实施例。
[0010]图5示出了在像素级中使用的参数的实施例。
[0011]图6示出了多遍渲染应用和图形驱动器之间的通信的实施例。
[0012]图7示出了图1的系统的集中化系统的实施例。
[0013]图8示出了计算体系结构的实施例。
[0014]图9示出了通信体系结构的实施例。
[0015]详细描述
[0016]各个实施例针对多遍渲染。在一实施例中,多遍渲染可在没有冗余地处理顶点数据的情况下进行。在一实施例中,要被增强的一个或多个对象的顶点数据可被接收。在一实施例中,显示列表中的参数可使用顶点数据来确定。可使用显示列表中的参数来运行多遍像素渲染。一个或多个对象的增强描绘可基于多遍像素渲染而被渲染。
[0017]三维效果的渲染可通过在三维流水线内使用分开的顶点级和像素级来改进。通过单次运行顶点级以创建显示列表,然后在多次运行像素级的同时重用该显示列表,可在更好性能和更少功耗的情况下实现三维效果。作为结果,各实施例可改进操作员、设备或网络的承受能力、可伸缩性、模块性、可扩展性或互操作性。
[0018]现在参考附图,其中在所有附图中相同的参考标号被用于指示相同的元素。在下面的描述中,出于说明目的阐述了众多具体细节以便提供对本发明的全面理解。然而,显而易见,可以没有这些具体细节的情况下实施各新颖实施方式。在其他情况下,以框图形式示出了各个公知的结构和设备以便于描述本发明。本发明将涵盖落入所要求保护的主题的精神和范围内的所有修改、等效方案和替换方案。
[0019]图1示出了系统100的框图。在一个实施例中,系统100可包括具有一个或多个软件应用和/或组件的计算机实现的系统100。尽管图1中示出的系统100具有处于特定拓扑中的有限数量的元素,但可以明白,系统100可包括给定实现所需的处于替换拓扑中的更多或更少元素。
[0020]系统100可包括多遍渲染应用120。在一实施例中,多遍渲染应用120可在图形处理单元上运行。在一实施例中,多遍渲染应用120可运行通过三维流水线以便创建三维特效。例如,多遍渲染应用120可创建诸如但不限于:透明、阴影、自适应纹理和/或自适应皮肤的特效。
[0021]在实施例中,系统100可通过在多遍渲染应用120内具有图形应用编程接口 118和图形驱动器121来改进渲染三维效果的表现。
[0022]在一实施例中,图形驱动器121可以是三维驱动器。图形驱动器121可与图形处理单元一起工作以将三维流水线处理成两个单独的级。在一实施例中,三维流水线可包括顶点级122和像素级124。在一实施例中,图形驱动器121可以运行顶点级122。顶点级122可被处理,而可对图形驱动器121生成中断。图形驱动器121可在显示列表中存储顶点级122的结果。通过在显示列表中存储结果,像素级426可稍后为像素处理使用显示列表。
[0023]在一实施例中,图形驱动器121可运行像素级124多次通过三维流水线,以便创建所需的特效。通过使顶点级122与像素级124分开,顶点级可被运行单次,并且结果被存储。所存储的结果可在像素级的多遍期间由像素组件124使用。作为结果,节省了功率,因为顶点组件122不必在每次像素组件124在三维流水线中运行时被重新运行。
[0024]在一实施例中,顶点级122可用于基于一个或多个对象接收顶点数据。在一实施例中,顶点数据110可以是多遍渲染应用120的输入数据110。在一实施例中,顶点数据110可以是来自要对其应用特效的一个或多个对象的数据。顶点级122可运行来自对象的顶点数据110通过顶点流水线以处理数据。顶点级122可确定图元(primitive)数据。在一实施例中,图元数据可包括变换、光照、色彩和位置数据中的一个或多个。
[0025]在一实施例中,顶点级122可将图元数据存储在显示列表中。在一实施例中,显示列表可包括多个参数。在一实施例中,显示列表的参数可包括由顶点级使用顶点数据来确定的图元数据。在一实施例中,显示列表的参数可包括指向命令数据缓冲区的指针。例如,显示列表的参数可包括指向纹理缓冲区的指针、指向像素着色器缓冲区的指针和/或指向深度/渲染缓冲区的指针。在一实施例中,深度/渲染缓冲区可以是具有各自的深度和渲染信息的两个分开的缓冲区。在一实施例中,深度缓冲区可包括深度信息。深度信息可被用于反映对象的距离。在一实施例中,渲染缓冲区可包括渲染结果。在一实施例中,渲染缓冲区可被称为帧缓冲区。
[0026]在一实施例中,当顶点级122结束处理时,图形驱动器121可使用来自由顶点级122生成的显示列表中的参数来开始像素级124。在一实施例中,像素级124可与顶点级122无关。换言之,像素级124可被运行多次而不重新运行顶点级122。在一实施例中,像素级124可用于使用显示列表运行多遍像素渲染。在一实施例中,一遍像素渲染可被运行第一次,以获取最近深度层的深度/清染即帧缓冲区(depth/render or frame buffer)。在一实施例中,每遍像素渲染可从次近深度层获取帧缓冲区。在一实施例中,一遍像素渲染可被运行最后一次,以获取最远深度层的帧缓冲区。
[0027]在一实施例中,在像素级124运行多遍像素渲染且通过深度剥离达到最远层之后,像素级124可渲染要被增强的一个或多个对象的增强描绘。在一实施例中,一个或多个对象的增强描绘可以是多遍渲染应用120的输出130。输出130可包括具有特效的一个或多个对象的渲染。例如,在深度剥离之后,多遍渲染应用120的像素级124可混合从远层到近层的深度/渲染即帧缓冲区,以获取一个或多个对象的透明效果。
[0028]此处所包括的是一组代表用于执行所公开的体系结构的新颖方面的示例性方法的流程图。尽管出于解释简明的目的,此处例如以流程图或流程图表形式示出的一个或多个方法被示出并描述为一系列动作,但是可以理解和明白,各方法不受动作的次序的限制,因为根据本发明,某些动作可以按与此处所示并描述的不同的次序和/或与其他动作同时发生。例如,本领域技术人员将会明白并理解,方法可被替换地表示为一系列相互关联的状态或事件,诸如以状态图的形式。此外,并非在一方法中示出的所有动作都是新颖实现所必需的。
[0029]图2示出了逻辑流程200的一个实施例。逻辑流程200可代表本文所述的一个或多个实施例所执行的操作中的一些或全部。
[0030]在图2中所示的实施例中,逻辑流程200可在框202接收要被增强的一个或多个对象的顶点数据。例如,顶点数据可在三维流水线的第一级期间被接收到。在一实施例中,三维流水线可具有两级。在一实施例中,第一级可包括顶点级。顶点级可接收要被增强的一个或多个对象的顶点数据。例如,用户可能希望场景中的一对象或一组对象显得透明。作为结果,
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1