CN116342778A - 混合式的光栅化装置和方法 - Google Patents
混合式的光栅化装置和方法 Download PDFInfo
- Publication number
- CN116342778A CN116342778A CN202310265127.5A CN202310265127A CN116342778A CN 116342778 A CN116342778 A CN 116342778A CN 202310265127 A CN202310265127 A CN 202310265127A CN 116342778 A CN116342778 A CN 116342778A
- Authority
- CN
- China
- Prior art keywords
- rasterization
- triangle
- primitive
- primitives
- triangle primitive
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000004364 calculation method Methods 0.000 claims abstract description 12
- 230000000007 visual effect Effects 0.000 claims description 13
- 239000012634 fragment Substances 0.000 claims description 5
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000009877 rendering Methods 0.000 description 5
- 238000005286 illumination Methods 0.000 description 4
- 238000002156 mixing Methods 0.000 description 4
- 239000000463 material Substances 0.000 description 3
- 239000003086 colorant Substances 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000004441 surface measurement Methods 0.000 description 2
- 238000009966 trimming Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
Abstract
本发明涉及一种混合式光栅化装置和方法,其中该装置包含:光栅化阶段;以及通用计算单元。光栅化阶段包含专属硬件实施的固定功能电路。调度电路设置于在满足第一条件时,驱动光栅化阶段以依据第一三角形图元的第一信息将第一三角形图元分解为离散的第一片元,并且计算第一片元的属性值;以及在满足第二条件时,依据第二三角形图元的第二信息生成一系列的光栅化指令,并且让通用计算单元在加载和执行光栅化指令时,将第二三角形图元分解为离散的第二片元,并且计算所述第二片元的属性值。本发明通过如上所述的通用计算单元来分担一部分的光栅化阶段中的固定功能电路的光栅化运算,降低光栅化阶段遭遇瓶颈的机会。
Description
技术领域
本发明涉及光栅化渲染(rasterization rendering)技术,尤指一种混合式的光栅化装置和方法。
背景技术
在计算机图形学(computer graphics)中,图形流水线可被视为一种模型,用于描述图形系统将三维场景渲染成二维场景的过程中需要执行的操作。一旦三维模型创建完成后,图形流水线即成为将三维模型转换为计算机显示画面的流程。图形流水线的模型经常用于实时渲染。大部分的流水线操作以专属硬件实施,允许特别的优化。
发明内容
有鉴于此,如何实现有弹性的硬件共享,是用于图形处理器的图形流水线的重要课题。
本发明涉及一种混合式光栅化装置,包括:光栅化阶段;以及通用计算单元。光栅化阶段包含专属硬件实施的固定功能电路。调度电路设置于在满足第一条件时,驱动光栅化阶段以依据第一三角形图元的第一信息将第一三角形图元分解为离散的第一片元,并且计算第一片元的属性值;以及在满足第二条件时,依据第二三角形图元的第二信息生成一系列的光栅化指令,并且让通用计算单元在加载和执行光栅化指令时,将第二三角形图元分解为离散的第二片元,并且计算所述第二片元的属性值。
本发明还涉及一种混合式光栅化方法,由调度电路执行。调度电路耦接光栅化阶段和通用计算单元,并且光栅化阶段包含专属硬件实施的固定功能的电路。混合式光栅化方法包括:在满足第一条件时,驱动光栅化阶段以依据第一三角形图元的第一信息将第一三角形图元分解为离散的第一片元,并且计算第一片元的属性值;以及在满足第二条件时,依据第二三角形图元的第二信息生成一系列的光栅化指令,并且让通用计算单元在加载和执行光栅化指令时,将第二三角形图元分解为离散的第二片元,并且计算第二片元的属性值。
上述实施例的优点之一,通过如上所述的通用计算单元来分担一部分的光栅化阶段中的固定功能电路的光栅化运算,降低光栅化阶段遭遇瓶颈的机会。
本发明的其他优点将配合以下的说明和附图进行更详细的解说。
附图说明
此处所说明的附图用于提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为依据一些实施方式中的设置在图形处理器(Graphics Processing Unit,GPU)中的图形流水线的示意图。
图2为依据本发明实施例的小三角形图元的示意图。
图3为依据本发明实施例的图形处理器的示意图。
图4为依据本发明实施例的由调度电路所实施的针对每一个三角形图元的调度方法的流程图。
图5为依据本发明实施例的三角形图元的调度示例的示意图。
图6为依据本发明实施例的由调度电路所实施的针对一批三角形图元的调度方法的流程图。
图7为依据本发明实施例的由光栅化电路或者光栅化程序所实施的针对每一个三角形图元的扫描线光栅化方法的流程图。
图8为依据本发明实施例的三角形图元的扫描示例的示意图。
其中,附图中符号的简单说明如下:
100:图形流水线;110:输入组装器;120:顶点着色器;130:曲面细分阶段;140:几何着色器;150:图元组装器;160:光栅化阶段;170:像素着色器;180:混合阶段;210、230:三角形图元;212、232:有效道像素;218、238:协助道像素;300:图形处理器;310:调度电路;320:图元组装器;330:计算着色器;350:光栅化算法;352:裁切程序;354:背面剔除程序;356:光栅化程序;360:光栅化阶段;362:裁切电路;364:背面剔除电路;366:光栅化电路;S410~S440:方法步骤;510、530、550:三角形图元;S610~S640:方法步骤;S710~S780:方法步骤;811、831、851、871:第一顶点;813、833、853、873:第二顶点;815、835、855、875:第三顶点;812、832、852、872:第一边;814、834、854、874:第二边;816、836、856、876:第三边。
具体实施方式
以下将配合相关附图来说明本发明的实施例。在这些附图中,相同的标号表示相同或类似的组件或方法流程。
必须了解的是,使用于本说明书中的“包含”、“包括”等词,是用于表示存在特定的技术特征、数值、方法步骤、作业处理、组件和/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、组件、组件,或以上的任意组合。
本发明中使用如“第一”、“第二”、“第三”等词是用于修饰权利要求中的组件,并非用于表示之间具有优先权顺序,先行关系,或者是一个组件先于另一个组件,或者是执行方法步骤时的时间先后顺序,仅用于区别具有相同名字的组件。
必须了解的是,当组件描述为“连接”或“耦接”至另一组件时,可以是直接连结、或耦接至其他组件,可能出现中间组件。相反地,当组件描述为“直接连接”或“直接耦接”至另一组件时,其中不存在任何中间组件。用于描述组件之间关系的其他词语也可以类似方式解读,例如“介于”相对于“直接介于”,或者“邻接”相对于“直接邻接”等等。
在一些实施方式,参考图1显示的所示的图形流水线(graphics pipeline)。在创建三维模型后,应用程序会设置一个有序的顶点列表并且发送到图形流水线100。多个顶点定义一个图元(primitive)的边界,图元例如三角形、直线、点等。输入组装器(inputassembler)110用于处理多个物体,例如顶点数组物体(vertex array objects)和顶点缓冲区物体(vertex buffer objects)。顶点数组物体定义每个顶点属于何种数据,而顶点缓冲区物体定义每个顶点的实际数据。顶点数据描述了一系列的属性,例如顶点坐标、纹理坐标、顶点颜色、顶点法线(vertex normals)等。顶点着色器(vertex shader)120从组装器110接收属性输入,并且依据用户规范的指令将每个传入的顶点转换为单个传出的顶点。顶点着色器120将每个顶点在虚拟空间中的三维位置转换为它出现在屏幕上的二维坐标(以及Z缓冲区的深度值)。曲面细分(tessellation)130是一种可选阶段,由外壳着色器(hullshader)、曲面细分器(tessellator)和域着色器(domain shader)组成。外壳着色器决定要应用于每个图元的细分数目,并且确保相邻的细分图元的连接。曲面细分器包含固定功能电路,用于依据外壳着色器所决定的数目生成细分图元。域着色器应用差值算法或者其他操作,为细分图元计算用户规范的数据值。几何着色器(geometry shader)140依据依据用户规范的指令处理每个传入图元,并且输出零个或者更多的图元。图元组装器(primitiveassembler)150可将位于可视体的内部和外部之间的边界上的三角形图元,拆分出若干个三角形图元,使得最后的三角形图元都落在可视体内(也称为裁切)。图元组装器150可以剔除背对相机的那些三角形图元,用以避免描绘背面三角形图元(也称为背面剔除)。光栅化阶段160将每个图元分解为称为片元(fragments)的离散元素,通常参考每个图元的顶点属性进行插值计算以生成片元。片元根据可视图元的光照、纹理和其他材料属性进行着色。像素着色器(pixel shader)170依据用户规范的指令为每个片元计算色彩和其他属性值。像素着色器170可简单的输出一个或者多个片元的色彩。像素着色器170可为一个或者多个片元给定照明值、执行凹凸贴图(bump mapping)、阴影、镜面光(specular highlights)、半透明(translucency)和其他色彩变化现象。混合阶段180依据其alpha通道将每个像素和背景相结合,生成部分或者完全透明的外观,alpha值的范围为0到1。alpha值为0,代表此像素完全透明,并且背景的色彩会穿透出来。alpha值为1,代表此像素完全不透明。
然而,以专属的硬件实施的光栅化阶段160可能让图形流水线10出现瓶颈。例如,在处理大量的小三角形图元时,光栅化阶段160会消耗大量的运算资源对协助道像素(helper lane pixels)运算,其中,小三角形可以指其相应片元所涵盖的像素的数目小于10个。在光栅化阶段160,针对一个小三角形的每个相邻的协助道像素,还是需要配置一个执行绪的硬件资源来执行所需的计算。参考图2所示的小三角形图元的示意图。上方的局部(A)的三角形图元210的四元素(quad)涵盖了三个有效道像素(active lane pixel)212,并且其相邻的协助道像素218为一个。下方的局部(B)的三角形图元230的四元素只涵盖了一个有效道像素232,并且其相邻的协助道像素238为三个。光栅化阶段160可计算每个协助道像素的梯度(gradient),并据以计算相邻有效道像素在Z轴上的深度、色彩值等属性。或者,光栅化阶段160可计算协助道像素的特定属性值,作为相邻有效道像素的插值的参考。以图2的局部(B)为例,光栅化阶段160为了一个有效道像素232,需要消耗三个执行绪的硬件资源来计算三个协助道像素238的梯度、其他参考属性值等。这些计算出来的结果只能用在目前的帧,并且由于三角形图元太小,其运算后对有效道像素所产生的增益,人的眼睛察觉不出来。此外,为小三角形的大量协助道像素的运算可能阻碍接下来的阶段,降低图形流水线10的整体效能。为了避免图形流水线10的光栅化阶段160为了处理大量小三角形图元而造成瓶颈,本发明实施例提出可编程的光栅化阶段,能够让图形流水线的专属硬件和通用计算核(general-purposed compute core)共享。虽然说明书中描述了上述实施方式的缺点,但这只是说明以下所述的发明实施例的原始启发。所属技术领域人员可应用这些技术解决方案以解决其他技术问题,或者是应用到其他技术环境,本发明不应该因此受局限。
参考图3所示的图形处理器(graphics processing unit,GPU)的示意图。除了如上所述的输入组装器110、顶点着色器120、曲面细分阶段130、几何着色器140、图元组装器150、像素着色器170和混合阶段180以外,GPU 300还包含调度电路310和混合式的光栅化阶段。图元组装器320提供多个三角形图元的信息给调度电路310,其中包含每个三角形的边界框(bounding box)。调度电路310依据每个三角形图元的边界框大小,将此三角形图元区分为大三角形和小三角形。针对每个大三角形,调度电路310接着驱动专属硬件实施的光栅化阶段360,用于将此大三角形图元分解为离散的片元,并且计算每个片元的属性值,例如,xyz坐标、纹理坐标、颜色、法线等。针对每个小三角形,调度电路310接着驱动通用计算单元(general-purpose compute unit)来执行一系列的光栅化指令(也可以称为计算着色器330)以完成光栅化算法350,用于将此小三角形图元分解为离散的片元,并且计算每个片元的属性值。
光栅化阶段360包含用于完成固定功能(fixed function)的电路,例如裁切电路362、背面剔除电路364、光栅化电路366等。裁切电路362判断每个大三角形图元是否位于可视体内,并且将位于可视体的内部和外部之间的边界上的大三角形图元,拆分出若干个子三角形图元,使得最后的三角形图元都落在可视体内。背面剔除电路364剔除背对相机的那些大三角形图元,用以避免花费不必要的运算能力来描绘背面大三角形图元。光栅化电路366参考每个大三角形图元的顶点属性进行相交和插值计算以生成片元,并且根据光照、纹理、材料、邻近协助道像素的梯度等属性为每个片元进行着色。每个片元对应于帧缓冲区中的一个像素,也对应于屏幕上的一个像素。在重叠的多边形的情况下,光栅化电路366需要确定每个片元是可视的,并且较靠近观众。Z缓冲区通常用于完成称为隐藏表面确定(hidden surface determination)的上述计算。为了计算每个片元的属性值,光栅化电路366可为每个相邻的协助道像素设置一个执行绪的硬件资源,用于计算其梯度。
光栅化算法350包含分别相应于裁切电路362、背面剔除电路364、光栅化电路366的裁切程序352、背面剔除程序354、光栅化程序356,用于当通用计算单元在加载和执行裁切程序352、背面剔除程序354、光栅化程序356的指令时,完成指定的功能。裁切程序352判断每个小三角形图元是否位于可视体内,并且将位于可视体的内部和外部之间的边界上的小三角形图元,拆分出若干个子三角形图元,使得最后的三角形图元都落在可视体内。背面剔除程序354剔除背对相机的那些小三角形图元。光栅化程序356参考每个小三角形图元的顶点属性进行相交和插值计算以生成片元,并且根据光照、纹理、材料、邻近协助道像素的梯度等属性为每个片元进行着色。为了计算小三角形的每个片元的属性值,光栅化算法350以每个小三角形图元为单位来计算相邻的协助道像素的梯度。由于通用计算单元分担了小三角形的光栅化运算,可减少光栅化阶段360的负载,提升整个图形流水线的效能。
参考图4所示的由调度电路310所实施的针对每一个三角形图元的调度方法。详细步骤说明如下:
步骤S410:将图元组装器320所提供的一个三角形图元和其边界框投射到观看空间。
步骤S420:判断边界框所涵盖的区域是否大于像素阈值。如果是,则流程继续进行步骤S430的处理;否则,流程继续进行步骤S440的处理。像素阈值可以让用户依据需要来调整,用户可将像素阈值设为8至16之中的任意整数。假设用户将像素阈值设为10:如果边界框所涵盖的区域大于10个像素,则判断此三角形图元为大三角形;反之,此三角形图元为小三角形。调度电路310可包含像素阈值寄存器,用于让用户依据应用领域的需要设定像素阈值。
步骤S430:将此三角形图元的信息(例如边界框、三个顶点的坐标、纹理坐标、顶点颜色、顶点法线等)推入硬件光栅化队列,用于驱动专属硬件实施的光栅化阶段360以完成这个大三角形的光栅化。
步骤S440:依据此三角形图元的信息生成一系列的光栅化指令(也可以称为计算着色器330),并且将此三角形图元的光栅化指令推入软件光栅化队列,用于让通用计算单元加载和执行此三角形图元的光栅化指令以完成这个小三角形的光栅化。
参考图5所示的三角形图元的调度示例。假设三角形图元510、530和550的边界框所涵盖的区域分别是2x1、1x2和4x3个像素,并且阈值设为10。由于三角形图元510和530所涵盖的区域小于10个像素,调度电路310依据三角形图元510和530中的每一个的图元信息生成一系列的光栅化指令,并且将生成的光栅化指令推入软件光栅化队列,用于让通用计算单元加载和执行三角形图元510和530的光栅化指令以完成三角形图元510和530的光栅化。另假设三角形图元510是背对相机的小三角形图元,因而在背面剔除程序354中被剔除而不进行描绘。通用计算单元加载和执行相应于三角形图元530的光栅化指令时,通过裁切程序352、背面剔除程序354、光栅化程序356来完成三角形图元530的光栅化。由于三角形图元550所涵盖的区域大于10个像素,调度电路310将三角形图元550的图元信息推入硬件光栅化队列,用于驱动专属硬件实施的光栅化阶段360以完成三角形图元550的光栅化。
在另一些实施例中,本发明实施例所提出的可编程的光栅化阶段可以应用在当调度电路310发现硬件实施的光栅化阶段360超载时,将一部分的三角形图元(不管三角形所涵盖的区域的大小)的光栅化操作派遣给通用计算单元。虽然以上描述了特定技术问题,但这只是说明以下所述的发明实施例的原始启发。所属技术领域人员可应用这些技术解决方案以解决其他技术问题,或者是应用到其他技术环境,本发明不应该因此受局限。参考图4所示的由调度电路310所实施的针对一批三角形图元的调度方法。详细步骤说明如下:
步骤S610:将图元组装器320所提供的指定数目的三角形图元和其边界框投射到观看空间。
步骤S620:判断等待光栅化的三角形图元的数目是否大于排队阈值。如果是,则流程继续进行步骤S630的处理;否则,流程继续进行步骤S640的处理。排队阈值可以让图形流水线在启动后动态调整。调度电路310中可包含等待队列,用于让图元组装器320依序将三角形图元的相关信息(例如边界框、三个顶点的顶点坐标、纹理坐标、顶点颜色、顶点法线等)推入等待队列。调度电路310可通过等待队列中的已经填入三角形图元的相关信息的项目数目(也就是等待光栅化的三角形图元的数目),来获取光栅化阶段360的负载情形。如果等待队列中已被占用的项目数目超过等待阈值时,代表光栅化阶段360可能已经超载。
步骤S630:依据这些三角形中的每一个的图元信息生成一系列的光栅化指令(也可以称为计算着色器330),并且将这些三角形图元的光栅化指令推入软件光栅化队列,用于让通用计算单元加载和执行这些三角形图元的光栅化指令以完成这些三角形的光栅化。
步骤S640:将这些三角形中的每一个的图元信息推入硬件光栅化队列,用于驱动专属硬件实施的光栅化阶段360以完成这些三角形的光栅化。
需要注意的是,为符合图6所述的实施例,裁切电路362、背面剔除电路364、光栅化电路366所处理的三角形图元可不限于大三角形图元,而是从调度电路310所获取的任何三角形图元。裁切程序352、背面剔除程序354、光栅化程序356所处理的三角形图元可不限于小三角形图元,而是从调度电路310所获取的任何三角形图元。
参考图7所示的由光栅化电路366或者光栅化程序356所实施的针对每一个三角形图元的扫描线光栅化(scanline rasterization)方法。详细步骤说明如下:
步骤S710:依据三角形的三个顶点的坐标设置三角形的边。光栅化电路366或者光栅化程序356可依据三个顶点的y坐标由小至大将三个顶点标记为第一至第三顶点,将两个顶点之间的长度最长的边当作第一边,将其余两边中位置较高的边设为第二边,并且将最后一边设为第三边。参考图8所示的三角形图元的扫描示例。三角形810的第一至第三顶点分别为顶点811、813和815,并且三角形810的第一至第三边分别为边线812、814、816。三角形820的第一至第三顶点分别为顶点821、823和825,并且三角形830的第一至第三边分别为边线832、834、836。三角形850的第一至第三顶点分别为顶点851、853和855,并且三角形850的第一至第三边分别为边线852、854、856。三角形870的第一至第三顶点分别为顶点871、873和875,并且三角形870的第一至第三边分别为边线872、874、876。
步骤S720:将变量y设为1。变量y用以控制在y轴上的由上而下的扫描顺序,以及扫描结束的时间点。
步骤S730:判断变量y是否小于此三角形图元的边界框的高度MaxY。如果是,则流程继续进行步骤S740的处理;否则,流程结束。
步骤S740:选择参与计算的边和其计算顺序。先将第一顶点的y坐标加上变量y以计算出目前扫描线的y坐标,剔除第二边和第三边中不能够涵盖目前扫描线的y坐标的边,接着,将两个保留下来的边中具有最小x坐标的顶点的边设为左边,并且将另一个边设为右边。参考图8的示例。假设目前正在处理三角形图元810并且变量y为2:依据如上所述的规则,第三边816被剔除,第一边812设为左边,第二边814设为右边。另假设目前正在处理三角形图元870并且变量y为5:依据如上所述的规则,第二边874被剔除,第三边876设为左边,第一边872设为右边。
步骤S750:计算左边和右边与目前扫描线相交的x坐标。计算后的左边像素的坐标为(x0,y0+y),计算后的右边像素的坐标为(x1,y0+y),其中x0代表左边与目前扫描线相交的x坐标,x1代表右边与目前扫描线相交的x坐标,y0代表第一顶点的y坐标。
步骤S760:插入左边像素和右边像素之间的所有像素,并且计算左边像素、右边像素和插入像素(统称为片元)的指定属性值(例如xyz坐标、纹理坐标、颜色、法线等)。
步骤S780:写入每个片元的计算后的属性值到指定的存储空间,以供像素着色器170使用。
步骤S790:将变量y加1。
虽然图3中包含了以上描述的组件,但不排除在不违反发明的精神下,使用更多其他的附加组件,以达成更佳的技术效果。此外,虽然图4、图6、图7的流程图采用指定的顺序来执行,但是在不违反发明精神的情况下,所属技术领域的技术人员可以在达到相同效果的前提下,修改这些步骤之间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。此外,所属技术领域的技术人员也可以将若干步骤整合为一个步骤,或者是除了这些步骤外,循序或并行地执行更多步骤,本发明也不应因此而局限。
以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本申请的权利要求书所界定的范围为准。
Claims (16)
1.一种混合式光栅化装置,设置于图形处理器中,其特征在于,包括:
光栅化阶段,包含专属硬件实施的固定功能电路;
通用计算单元;以及
调度电路,设置于在满足第一条件时,驱动所述光栅化阶段以依据第一三角形图元的第一信息将所述第一三角形图元分解为离散的第一片元,并且计算所述第一片元的属性值;以及在满足第二条件时,依据第二三角形图元的第二信息生成一系列的光栅化指令,并且让所述通用计算单元在加载和执行所述光栅化指令时,将所述第二三角形图元分解为离散的第二片元,并且计算所述第二片元的属性值。
2.如权利要求1所述的混合式光栅化装置,其特征在于,所述第一条件指所述第一三角形图元的第一边界框所涵盖的第一区域大于像素阈值,并且所述第二条件指所述第二三角形图元的第二边界框所涵盖的第二区域不大于所述像素阈值。
3.如权利要求2所述的混合式光栅化装置,其特征在于,所述像素阈值为8至16之中的任意整数。
4.如权利要求1所述的混合式光栅化装置,其特征在于,所述调度电路包含等待队列,所述第一条件指所述等待队列中的等待光栅化的三角形图元的数目不大于排队阈值,并且所述第二条件指所述等待队列中的等待光栅化的三角形图元的数目大于所述排队阈值。
5.如权利要求1至4中之任一者所述的混合式光栅化装置,其特征在于,所述固定功能电路包含光栅化电路,设置以参考所述第一三角形图元的顶点属性进行边界和插值计算以生成所述第一片元;所述光栅化指令包含光栅化程序,当所述通用计算单元在加载和执行所述光栅化程序时,参考所述第二三角形图元的顶点属性进行边界和插值计算以生成所述第二片元。
6.如权利要求5所述的混合式光栅化装置,其特征在于,所述光栅化电路为相邻于所述第一片元的每个协助道像素设置一个执行绪的硬件资源,用于计算每个所述协助道像素的梯度;所述光栅化程序以所述第二三角形图元为单位来计算相邻于所述第二三角形图元的协助道像素的梯度。
7.如权利要求5所述的混合式光栅化装置,其特征在于,所述固定功能电路包含裁切电路,设置以将位于可视体的内部和外部之间的边界上的第三三角形图元,拆分出多个第三子三角形图元;所述光栅化指令包含裁切程序,当所述通用计算单元在加载和执行所述裁切程序时,将位于可视体的内部和外部之间的边界上的第四三角形图元,拆分出多个第四子三角形图元。
8.如权利要求5所述的混合式光栅化装置,其特征在于,所述固定功能电路包含背面剔除电路,设置以剔除背对相机的第五三角形图元;所述光栅化指令包含背面剔除程序,当所述通用计算单元在加载和执行所述背面剔除程序时,剔除背对所述相机的第六三角形图元。
9.一种混合式光栅化方法,由调度电路执行,所述调度电路耦接光栅化阶段和通用计算单元,所述光栅化阶段包含专属硬件实施的固定功能的电路,其特征在于,该混合式光栅化方法包括:
在满足第一条件时,驱动所述光栅化阶段以依据第一三角形图元的第一信息将所述第一三角形图元分解为离散的第一片元,并且计算所述第一片元的属性值;以及
在满足第二条件时,依据第二三角形图元的第二信息生成一系列的光栅化指令,并且让所述通用计算单元在加载和执行所述光栅化指令时,将所述第二三角形图元分解为离散的第二片元,并且计算所述第二片元的属性值。
10.如权利要求9所述的混合式光栅化方法,其特征在于,所述第一条件指所述第一三角形图元的第一边界框所涵盖的第一区域大于像素阈值,并且所述第二条件指所述第二三角形图元的第二边界框所涵盖的第二区域不大于所述像素阈值。
11.如权利要求10所述的混合式光栅化方法,其特征在于,所述像素阈值为8至16之中的任意整数。
12.如权利要求9所述的混合式光栅化方法,其特征在于,所述调度电路包含等待队列,所述第一条件指所述等待队列中的等待光栅化的三角形图元的数目不大于排队阈值,并且所述第二条件指所述等待队列中的等待光栅化的三角形图元的数目大于所述排队阈值。
13.如权利要求9至12中之任一者所述的混合式光栅化方法,其特征在于,所述固定功能电路包含光栅化电路,设置以参考所述第一三角形图元的顶点属性进行边界和插值计算以生成所述第一片元;所述光栅化指令包含光栅化程序,当所述通用计算单元在加载和执行所述光栅化程序时,参考所述第二三角形图元的顶点属性进行边界和插值计算以生成所述第二片元。
14.如权利要求13所述的混合式光栅化方法,其特征在于,所述光栅化电路为相邻于所述第一片元的每个协助道像素设置一个执行绪的硬件资源,用于计算每个所述协助道像素的梯度;所述光栅化程序以所述第二三角形图元为单位来计算相邻于所述第二三角形图元的协助道像素的梯度。
15.如权利要求13所述的混合式光栅化方法,其特征在于,所述固定功能电路包含裁切电路,设置以将位于可视体的内部和外部之间的边界上的第三三角形图元,拆分出多个第三子三角形图元;所述光栅化指令包含裁切程序,当所述通用计算单元在加载和执行所述裁切程序时,将位于可视体的内部和外部之间的边界上的第四三角形图元,拆分出多个第四子三角形图元。
16.如权利要求13所述的混合式光栅化方法,其特征在于,所述固定功能电路包含背面剔除电路,设置以剔除背对相机的第五三角形图元;所述光栅化指令包含背面剔除程序,当所述通用计算单元在加载和执行所述背面剔除程序时,剔除背对所述相机的第六三角形图元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310265127.5A CN116342778A (zh) | 2023-03-17 | 2023-03-17 | 混合式的光栅化装置和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310265127.5A CN116342778A (zh) | 2023-03-17 | 2023-03-17 | 混合式的光栅化装置和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116342778A true CN116342778A (zh) | 2023-06-27 |
Family
ID=86892413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310265127.5A Pending CN116342778A (zh) | 2023-03-17 | 2023-03-17 | 混合式的光栅化装置和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116342778A (zh) |
-
2023
- 2023-03-17 CN CN202310265127.5A patent/CN116342778A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3748584B1 (en) | Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location | |
US8223149B2 (en) | Cone-culled soft shadows | |
EP1350225B1 (en) | An integrated tessellator in a graphics processing unit | |
US6600485B1 (en) | Polygon data generation method and image display apparatus using same | |
US8610729B2 (en) | Floating point computer system with fog | |
US7948487B2 (en) | Occlusion culling method and rendering processing apparatus | |
US7812837B2 (en) | Reduced Z-buffer generating method, hidden surface removal method and occlusion culling method | |
US20030151604A1 (en) | Volume rendering with contouring texture hulls | |
US20150161814A1 (en) | Clipping of graphics primitives | |
US7292239B1 (en) | Cull before attribute read | |
US10395423B2 (en) | Apparatus and method for rendering adaptive mesh refinement (AMR) data | |
Fussell et al. | A vlsi-oriented architecture for real-time raster display of shaded polygons | |
CN116342778A (zh) | 混合式的光栅化装置和方法 | |
US11972518B2 (en) | Hybrid binning | |
Ma et al. | Rasterization of geometric primitive in graphics based on FPGA | |
JP2004102841A (ja) | クリッピング処理装置、グラフィックスシステム、クリッピング処理方法及びグラフィックス方法 | |
Bruijns | Quadratic Bezier triangles as drawing primitives | |
US20220319091A1 (en) | Post-depth visibility collection with two level binning | |
CN115760546A (zh) | 基于图形学的自定义渲染器 | |
CN117815653A (zh) | 几何处理方法和装置 | |
Carr et al. | Real-Time Procedural Solid Texturing | |
Polisciuc | Performance of deferred and forward shading under different lighting conditions | |
JPH01224886A (ja) | 画素展開方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Country or region after: China Address after: 201114 room 1302, 13 / F, building 16, 2388 Chenhang Road, Minhang District, Shanghai Applicant after: Shanghai Bi Ren Technology Co.,Ltd. Address before: 201114 room 1302, 13 / F, building 16, 2388 Chenhang Road, Minhang District, Shanghai Applicant before: Shanghai Bilin Intelligent Technology Co.,Ltd. Country or region before: China |
|
CB02 | Change of applicant information |