CN101894358B - 图像形成技术 - Google Patents
图像形成技术 Download PDFInfo
- Publication number
- CN101894358B CN101894358B CN201010214137.9A CN201010214137A CN101894358B CN 101894358 B CN101894358 B CN 101894358B CN 201010214137 A CN201010214137 A CN 201010214137A CN 101894358 B CN101894358 B CN 101894358B
- Authority
- CN
- China
- Prior art keywords
- curved surface
- territory
- subdivision curved
- point
- subdivision
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 claims description 23
- 230000002093 peripheral effect Effects 0.000 claims description 9
- 238000006243 chemical reaction Methods 0.000 claims 2
- 230000006870 function Effects 0.000 description 16
- 238000012545 processing Methods 0.000 description 9
- 238000007667 floating Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 239000000243 solution Substances 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- IYLGZMTXKJYONK-ACLXAEORSA-N (12s,15r)-15-hydroxy-11,16-dioxo-15,20-dihydrosenecionan-12-yl acetate Chemical compound O1C(=O)[C@](CC)(O)C[C@@H](C)[C@](C)(OC(C)=O)C(=O)OCC2=CCN3[C@H]2[C@H]1CC3 IYLGZMTXKJYONK-ACLXAEORSA-N 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 239000007853 buffer solution Substances 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- RKTYLMNFRDHKIL-UHFFFAOYSA-N copper;5,10,15,20-tetraphenylporphyrin-22,24-diide Chemical compound [Cu+2].C1=CC(C(=C2C=CC([N-]2)=C(C=2C=CC=CC=2)C=2C=CC(N=2)=C(C=2C=CC=CC=2)C2=CC=C3[N-]2)C=2C=CC=CC=2)=NC1=C3C1=CC=CC=C1 RKTYLMNFRDHKIL-UHFFFAOYSA-N 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012887 quadratic function Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- IYLGZMTXKJYONK-UHFFFAOYSA-N ruwenine Natural products O1C(=O)C(CC)(O)CC(C)C(C)(OC(C)=O)C(=O)OCC2=CCN3C2C1CC3 IYLGZMTXKJYONK-UHFFFAOYSA-N 0.000 description 1
- 238000010977 unit operation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Image Analysis (AREA)
- Lining And Supports For Tunnels (AREA)
Abstract
在某些实施例中,可以预先计算图块的内部细分曲面的区间和三角剖分。以同心的方式安排偶数因子细分曲面,从而使得较低编号的因子在具有较高编号的因子的细分曲面内部。类似地,以同心的方式安排奇数因子细分曲面,从而使得较低编号的因子在具有较高编号的因子的细分曲面内部。在第一个表内存储偶数因子细分曲面的域点,而在第二个表内存储奇数因子细分曲面的域点。在运行时,可以针对可应用的边缘细节级别来查找预先计算的值。
Description
技术领域
在此公开的主题总地涉及图形处理,包括图形处理器和用于图形处理的通用处理器的使用。
背景技术
图形流水线可以用于渲染游戏图形、计算机动画、医学应用等。由于图形流水线中的限制,所生成的图形图像的细节级别会比理想状态低。提供的细节越显著,所造成的图形处理就越慢。因而,在处理速度与图形细节之间存在折中。例如微软DirectX 11的图形处理流水线通过增加细分曲面(tessellation)细节来增加几何细节。
细分曲面是形成一系列三角形以便从一个粗糙的多边形模型开始来渲染物体的图像的过程。图块(patch)是在用于描述表面的控制笼(controlcage)的粗糙级别上的基本单元。图块可以表示曲线或区域。所述表面可以是任何能被描述为参数函数的表面。控制笼是艺术家用来生成光滑表面的低分辨率模型。因而,通过提供更高程度的细分曲面,来提高能够绘制的图形细节级别。然而,处理速度会受到不利影响。通常,处理时间随着图像细节级别的增加而以二次方递增。
希望在可接受的处理时间内实现更高程度的细分曲面。
附图说明
借助于附图中的实例而非限制地图示说明本发明的各个实施例,在附图中类似的参考数字指代类似的元素。
图1是根据一个实施例的图形流水线的示意图。
图2是根据一个实施例的使用最大值式的内部细分曲面因子折减(reduction)函数和单轴(1-axis)内部细分曲面因子轴折减的内部细分曲面的描述。
图3是根据一个实施例的使用平均值式的内部细分曲面因子折减函数和单轴内部细分曲面因子轴折减的细分曲面图案的描述。
图4是根据一个实施例的使用最小值式的内部细分曲面因子折减函数的单轴细分曲面的细分曲面图案的描述。
图5A是根据一个实施例的单轴内部细分曲面因子轴折减的描述。
图5B是根据一个实施例的单轴内部细分曲面,其中顶边具有不同于图5A的边缘细节级别。
图5C是根据一个实施例的单轴内部细分曲面,其中左侧边具有不同于图5A和5B中所示细分曲面的边缘细节级别。
图6显示了根据一个实施例的偶数和奇数四边形(quad)内部细分曲面。
图7A显示了根据一个实施例的用来访问四边形内部细分曲面的域点(domain point)的两种示例性方式。
图7B显示了根据一个实施例的用来访问三角形内部细分曲面的域点的两种示例性方式。
图8是用于为本发明的一个实施例生成图块的流程图。
图9显示了对图块进行细分曲面和域着色所用的平均周期数之间的比较。
图10是根据一个实施例的多核处理器的示意图。
具体实施方式
此说明书通篇提及的“一个实施例”或“实施例”意指与该实施例结合描述的特定特征、结构或特性包含在本发明的至少一个实施例中。因而,此说明书通篇各处出现的短语“在一个实施例中”或“实施例”并非必然全部指代同一实施例。此外,所述特定特征、结构或特性可以被组合进一个或多个实施例中。
根据某些实施例,细分曲面时间随着细分曲面的量而线性递增。通常,细分曲面时间随着细分曲面细节的量而以二次函数增加。结果,在某些实施例中,可以减少细分曲面时间,并且在其他实施例中,可以使用功能不太强大的细分曲面单元(tessellator)来执行更多的细节的细分曲面。
在某些实施例中,通过预先计算在一个边缘细节级别范围内的一系列内部细分曲面,可以节省细分曲面时间和/或提高细分曲面处理能力。这节省了在运行时对内部细分曲面的计算。内部细分曲面(inner tessellation)包括在图元的外周长内部的点和三角形。外带(outer band)由图元的周长构成。
根据某些实施例,可以预先计算两种内部细分曲面,并对其进行存储以便在运行时可获得。第一内部细分曲面可以用于具有偶数编号的因子的细分曲面,而第二内部细分曲面可以用于具有奇数编号的因子的细分曲面。第一内部细分曲面可以包括所有具有较低的偶数编号的因子的内部细分曲面。第二内部细分曲面可以包括所有具有较低的奇数编号的因子的内部细分曲面。
根据某些实施例,可以将第一和第二内部细分曲面存储为从最内部的细分曲面开始并向外进行到更大的细分曲面的多个域点。最内部的细分曲面可以是最小的细分曲面。第一和第二最内部的细分曲面的最内部的细分曲面分别可以具有因子2和1。第一和第二内部细分曲面的最外面的细分曲面分别是具有最大的偶数和奇数编号的因子的细分曲面。
根据某些实施例,细分曲面可以使用三角形或四边形图元域。边缘划分可以包括将边缘划分为区间。所使用的区间越多,可能实现的细分曲面的细节级别就越高。因而,增加边缘细节级别会提高所得到的细分曲面的分辨率。
参照图1,图形流水线可以在图形处理器内实现为独立的专用集成电路、用软件实现、通过执行软件的通用处理器实现、或者通过软件和硬件的组合来实现。在某些实施例中,在图1中,可以用硬件实现具有直角边的元件,可以以软件实现具有圆角边的元件。例如,可以在蜂窝电话、无线电话、个人通信系统(PCS)设备、结合无线通信设备的PDA设备或任何计算机中实现图形流水线。图形流水线可以向显示设备提供图像或视频来进行显示。可以使用各种技术来向显示器传送图像。例如,可以使用高清多媒体接口、DisplayPort、无线HDMI和/或无线HD兼容技术向显示器传送图像。
输入汇编器(assembler)12通过使用固定函数操作、形成几何图形和创建流水线工作项来从存储器中读出顶点。自动生成的标识符使得能够进行如图1右边虚线上指示的标识符专用(identifier-specific)处理。可以从前面的顶点着色器14得到顶点标识符和实例标识符。可以从前面的外壳着色器16获得图元标识符。控制点标识符只有在外壳着色器16内有效。
顶点着色器14执行例如转换、加皮(skinning)或照明的操作。其输入一个顶点并输出一个顶点。在控制点阶段中,每个输出控制点都调用顶点着色器且每一个控制点都由控制点标识符来标识,顶点着色器能够独立于输出数量而读取图块的所有输入控制点。外壳着色器16在每次调用时输出控制点。聚集输出是对于下一个外壳着色器阶段和域着色器20的共享输入。对于每个图块可以调用图块常量阶段一次,并且其具有所有输入和输出控制点的读取输入。外壳着色器16输出边缘细分曲面因子和其他图块常量数据。如在此使用的,在图元域的每个边缘有多个区间的情况下,边缘细分曲面因子和边缘细节级别可以互换地使用。可以对代码进行分段,以便可以进行独立的工作,并在结束时以组合步骤并行结束。
可以用硬件或软件来实现细分曲面单元18。在某些有利的实施例中,细分曲面单元可以是一种软件实现的细分曲面单元。通过加快细分曲面单元的操作,如本文所述的,可以将以前进行细分曲面单元操作的核心空闲出来进行其他任务。细分曲面单元18要取回经编码的域点或(u,v)值。所存储的经编码的域点可以是无符号整数格式的,而且可以采用根据图7A或7B描述的方式来取回经编码的域点。细分曲面单元18可以从外壳着色器接收定义了要进行多大程度的细分曲面的数字。细分曲面单元18生成拓扑,例如点、线或三角形。细分曲面单元18可以输出至少一个顶点。
在某些实施例中,细分曲面单元18具有以下状态,其中每一种状态都可以针对状态变量而被设置为所列值。
状态 | 可能的状态属性 |
图元域 | 三角形|四边形|等值线 |
边缘划分 | 整数|Pow2|分数_奇数|分数_偶数 |
内部细分曲面-因子折减函数 | 最小值|最大值|平均值 |
内部细分曲面-因子轴折减 | 单轴|双轴 |
细分曲面单元输出拓扑 | 点|线|三角形_CW|三角形_CCW |
域着色器20是一个可编程的阶段,其使用由细分曲面单元18供应的域点(u,v)值在图块上生成真实的3D点。在某些实施例中,域着色器20可以是软件实现的。在某些实施例中,域着色器20的由着色器编译器生成的部分应用缩放与偏置技术将来自于细分曲面单元18的经编码的域点转换到[0,1]域。因此,域着色器20可以使用标量位移图来对点进行位移,或者计算其他顶点属性。
几何着色器22可以输入一个图元并输出高达四个流,每一个流独立地接收零个或更多个图元。在几何着色器的输出处出现的流可以向光栅化器24提供图元,同时可以将高达四个流级联到缓冲器30。可以由光栅化器24来执行裁剪、角度划分(perspective dividing)、观察窗(view ports)和剪刀选择实现和图元设置。
像素着色器26输入一个像素并输出在同一位置处的一个像素,或者不输出像素。输出合并器28提供固定函数目标渲染、混合、深度和模板(stencil)操作。
参照图2,根据一个图元为四边形的实施例,四边形32包括顶边32t、右侧边32r、底边32b和左侧边321。在此实例中,顶边32t具有一个区间,右侧边32r具有八个区间,底边32b具有四个区间,左侧边321具有两个区间。所述区间对应于边缘细节级别和细分曲面因子。在细分曲面单元18中,内部细分曲面可以使用最小值式、最大值式或平均值式的因子折减函数。图2显示了最大值式的折减函数。在此情况下,使用边缘32r来实施细分曲面,这是因为边缘32r具有最大数量的区间。在此实施例中,其仅计算一个最大值。在其他实施例中,可以将三角形用作图元,而且可以使用其他内部细分曲面折减函数。
图3显示了在用平均值式的细分曲面因子折减函数进行处理之后的四边形。在此,平均值是基于四个边的区间的平均值的。最后,图4显示了使用最小值边的最小值式的细分曲面折减因子的结果,该最小值边将是顶边32t。
接下来参照图5A-5C,四边形可以被划分为外带36a和内部细分曲面38。外带36a是沿着图元域的周长的任何东西,在此情况下是四边形,并且内部细分曲面是其他任何东西。图5A-5C显示了在单轴内部细分曲面因子折减实例中,不管在外带中所使用的区间数量如何,只要外围细分曲面的最大值保持相同,内部细分曲面就是相同的。在此实例中,细分曲面因子折减函数是最大值式的,细分曲面因子轴折减是单轴的。因而,不管边缘细节级别或细分曲面因子如何,内部细分曲面都保持相同。结果,就有可能针对各种不同的边缘细节级别而预先计算内部细分曲面,对其进行存储,并且在运行时按照需要简单地应用它们。因而,可以重复使用针对某个边缘细节级别范围所预先计算的内部细分曲面,而不必在运行时对其进行重新计算,从而加快了计算速度。
图6显示了根据实施例,在区间数量从1到8的情况下的偶数和奇数四边形内部细分曲面。通常,具有内部图块细分曲面L的图块包括为L-2的内部图块细分曲面和附加的外环。具体而言,图6描述了偶数和奇数区间细分曲面。例如,具有为8的区间的内部细分曲面包括具有为6、4或2的区间的内部细分曲面。类似地,具有为7的区间的内部细分曲面包括具有为5、3和1的区间的内部细分曲面。
在某些实施例中,对于所有内部细分曲面因子仅存储两个域点表。第一个表存储偶数内部细分曲面因子的域点,第二个表存储奇数内部细分曲面因子的域点。
域点之间的间距会根据内部细分曲面因子而不同,这是因为细分曲面的域点位于[0,1]域内。例如,为二(2)的内部细分曲面具有角点(0.25,0.25)和(0.75,0.25),而在为四(4)的外围细分曲面内的为二(2)的内部细分曲面具有角点(0.33,0.33)和(0.66,0.33)。相应地,域点并不存储在[0,1]输出域内。取而代之的是,在各个实施例中,将域点存储为有符号整数。缩放与偏置技术将有符号整数转换到在[0,1]域内的域点坐标。例如,将有符号整数除以区间数量,并加上偏移量,从而转换为[0,1]域内的域点坐标。将域点存储为有符号整数会导致在能够将域点输入到域着色器(例如,图1的域着色器20)之前执行缩放与偏置操作。域着色器20可以对有符号整数执行缩放与偏置操作,以将有符号整数转换到[0,1]域。可以由着色器编译器插入该缩放与偏置操作。着色器编译器将高级着色器程序翻译成自然机器可执行语言。
另外,在各个实施例中,可以将预先计算的域点存储为两个8位的有符号整数,而在精度上无任何损失。因此,各个实施例使用的存储空间少于将域点存储为两个32位浮点数的情况。通过将预先计算的域点存储为两个8位有符号整数,相对于存储为两个32位浮点数的情况而言,使用了大约四分之一的更少的存储空间。
图7A显示了根据实施例的,用来访问四边形细分曲面的域点的两种示例性方式。具体而言,图7A描述了用来访问偶数和奇数因子四边形细分曲面的域点的方式。每个细分曲面的域点从图块的中心处开始并向外进行。通过从图块的中心环处开始并按照螺旋状图案向外运行,以适当的次序存储三角形连接性,以便支持任何内部细分曲面因子。
图7B显示了根据实施例的,用来访问三角形细分曲面的域点的两种示例性方式。具体而言,图7B描述了用来访问偶数和奇数因子三角形细分曲面的域点的方式。每个细分曲面的域点都从图块的中心处开始并向外进行,从而以适当的次序存储三角形连接性,以便支持任何内部细分曲面因子。
在各个实施例中,除了存储域点之外,还在索引缓冲器中将三角形端点存储为索引值。在某些实施例中,存在两个索引缓冲器:用于奇数因子内部细分曲面的索引缓冲器和用于偶数因子内部细分曲面的索引缓冲器。例如,参考图7A中的偶数编号的细分曲面,第一三角形具有一个在细分曲面的中心处的端点,并具有在跟随箭头沿着域点路径的第二个和第三个域点处的另外两个端点。因此,第一三角形具有索引为0、1和2的域点。
表1显示了对于使用一个用于每个细节级别(LOD)的表的解决方案和使用分别用于偶数和奇数细分曲面的两个表的实施例,用于存储所有三角形的三(u,v)坐标对组(triplet paris of(u,v)coordinates)的数量的比较。对于内部细分曲面因子64,使用分别用于偶数和奇数细分曲面的两个表时所使用的索引会比存储一个用于每个LOD的三角形的表的解决方案少10倍以上。
表1
表2显示了针对为每个细节级别(LOD)存储单独的表(左边)的情况和分别仅用于偶数和奇数LOD的表(右边)的情况,所存储的域点数量之间的对比。
表2
将域点存储为浮点 | 将域点存储为有符号整数 |
内部细分曲面因子16 | 1,495 | 481 |
内部细分曲面因子32 | 11,439 | 1,985 |
内部细分曲面因子64 | 89,439 | 8,065 |
表3显示了存储一个用于每个细节级别的细分曲面的表所使用的总的存储器占用量与存储分别用于偶数和奇数编号的细节级别的两个表的各个实施例之间的比较。具体而言,表3显示了针对每个细节级别将三角形索引存储为16位无符号整数所使用的存储器与在分别用于偶数和奇数编号的细节级别的两个表中存储三角形索引的各个实施例之间的比较。另外,表3显示了针对每个细节级别将域点存储为两个32位浮点数的情况与针对每个偶数和奇数细节级别将域点存储为两个8位有符号整数的情况之间的比较。
表3
在各个实施例中,对于不同的边缘细节级别,可以预先确定并存储内部细分曲面的预先计算的各个点的域值和所得到的三角剖分(triangulation)。在运行时,可以取回内部细分曲面的域值。图8显示了可以用来提供细分曲面的三域点对组的处理过程。此后,可以渲染细分曲面的三角形以便进行显示。在块802处,细分曲面单元18从存储器中读取预先确定的、具有期望因子的内部细分曲面的经编码的域点。可以将经编码的域点存储为两个8位有符号整数。
在块804处,域着色器20对预先确定的经编码的域点执行缩放与偏置操作,来产生在[0,1]域内的域值。块804可以将两个8位有符号整数转换成两个32位浮点数。
在块806处,细分曲面单元18为细分曲面的外带生成域点。例如,如图5A中所示,u和v值是沿着水平轴u和垂直轴v的点的坐标或区间。
在块808处,对于内部细分曲面,细分曲面单元18从索引缓冲器中读取每个三对组的三角形的角的索引。这些索引与三角形的端点的坐标相关联。
在块810处,细分曲面单元18在运行时为外带确定三角剖分。
图9显示了对于用于针对每个细节级别将域值存储为浮点值的一个解决方案和用于将域值作为无符号整数存储在分别用于偶数和奇数细节级别的表内的另一技术方案,在使用具有1292个图块的真实数据集的情况下对图块进行细分曲面和域着色所使用的平均周期数的比较。将域值存储为有符号整数会由于解码而造成非常小的额外计算成本。将域点从有符号整数解码到在[0,1]域内的浮点值,会略微影响性能。例如,由于解码的缘故,在域着色器内会出现最小大约1%的速度下降。
另外,由于不再解决对于每个图块要使用哪一个预先计算的表的问题,在细分曲面单元内出现了大约1%的提速。相对于针对每个细节级别将域值存储为浮点值,在将域值作为无符号整数存储在分别用于奇数和偶数细节级别的表内的情况下,细分曲面单元和域着色器的整体性能下降了小于0.5%。如果这种下降是不可接受的,则可以使用混合解决方案,其中存储多个(u,v)缓冲器,但共享索引缓冲器。在这种混合解决方案中,针对每个LOD存储域值为浮点的表,并且在分别用于偶数和奇数边缘因子的表内存储索引值。
在某些实施例中,使用线程化和矢量化,根据图块的内部细分曲面因子对图块进行排序。然后,如图10中所示,在多核处理器50中的同一物理核心上对具有相同细节级别的图块进行细分曲面。在图块排序器52中进行了排序和分组之后,可以向同一核心54或56发送所有要进行细分曲面的、具有相同内部细分曲面细节级别的图块,然后在此核心上的所有线程能够使用在该核心的第一级高速缓冲存储器58和第二级高速缓冲存储器60中的仅仅一个副本。然后在稍后某点处使用图块图元ID对三角形进行解排序。外带细分曲面是可变的,两者都是在三角剖分中所生成的点的数量方面。因而,可以通过在第一个缓冲器62内放置已经预先计算的已知的内部细分曲面来使用双缓冲器解决方案。然后,计算外围细分曲面的可变部分,并将其存储在第二个缓冲器64内。虽然在图10中仅图示了两个核心,但是可以使用任何数量的核心。
可以在各个硬件结构内实施本文所述的图形和/或视频处理技术。例如,可以将图形和/或视频功能集成到芯片组内。在替换方案中,可以使用分立的图形和/或视频处理器。作为又一实施例,可以由通用处理器来实施图形和/或视频功能,其包括多核处理器。在另一实施例中,可以在消费类电子设备内实施所述功能。
例如,本发明的实施例可以作为计算机程序产品而被提供,该计算机程序产品可以包括一个或多个机器可读介质,在该机器可读介质上存储了机器可执行指令,所述指令在由诸如计算机、计算机网络或其他电子设备之类的一个或多个机器运行时可以导致该一个或多个机器执行根据本发明的实施例的操作。机器可读介质可以包括但不限于:软盘、光盘、CD-ROM(压缩盘只读存储器)和磁光盘、ROM(只读存储器)、RAM(随机存取存储器)、EPROM(可擦可编程只读存储器)、EEPROM(电可擦可编程只读存储器)、磁或光卡、闪存或其他类型的适于存储机器可执行指令的介质/机器可读介质。
附图和前述说明给出了本发明的多个实例。尽管被描述为多个不同的功能项,但是本领域技术人员将理解,可以将这些元件中的一个或多个元件很好地组合成单个功能元件。在替换方案中,特定的元件可以被分成多个功能元件。来自于一个实施例的元件可以被添加到另一个实施例。例如,本文所述的处理顺序可以被改变而不限于本文所述的方式。此外,不必按照所示顺序来实施任何流程图的动作;也不是所有动作都必须要被执行的。而且,那些不依赖其它动作的动作可以与所述其它动作并行执行。然而,本发明的范围绝不受这些具体实例的限制。许多变化都是可能的,例如结构、维度的差异和材料的使用,无论这些变化是否在说明书中被清晰地给出。本发明的范围至少与所附权利要求给出的范围一样宽。
Claims (19)
1.一种用于提供细分曲面的计算机实现方法,包括:
根据所存储的域点生成细分曲面,其中,所述生成包括:
从偶数或奇数因子细分曲面表之一中取回内部细分曲面的域点,其中,所述内部细分曲面的域点被预先计算并进行存储以便在运行时可获得,其中,最内部的内部细分曲面小于最外部的内部细分曲面,并且其中,预先计算多个边缘细节级别的内部细分曲面;以及
提供所述细分曲面进行显示。
2.如权利要求1所述的方法,其中,所述生成还包括:
将所述域点转换到[0,1]域。
3.如权利要求2所述的方法,其中,所述转换包括:
将所述域点从有符号整数格式转换成浮点格式。
4.如权利要求1所述的方法,其中,所述取回包括:
按照从所述细分曲面的最内部的域点开始以螺旋状次序到外围域点的次序,来取回域点。
5.如权利要求1所述的方法,其中,所述生成还包括:
从索引缓冲器中读取三角形的角点的索引。
6.如权利要求1所述的方法,其中,所述生成还包括:
沿着所述细分曲面的外围边缘生成域点。
7.如权利要求1所述的方法,还包括:
在至少一个较高因子的细分曲面内安排至少一个较低因子的细分曲面;以及
按照从所安排的细分曲面的最内部的域点开始以螺旋状方式到外围域点的次序,来存储所安排的细分曲面。
8.如权利要求1所述的方法,还包括:
在索引缓冲器内存储三角形的角的索引,其中,角的索引与域点相关联。
9.如权利要求1所述的方法,其中,所述细分曲面包括四边形或三角形中至少一种。
10.一种用于产生图块的装置,包括:
细分曲面单元,其生成图块,其中,为了生成图块,所述细分曲面单元取回图块的域点,其中,为了取回域点,所述细分曲面单元从奇数或偶数表之一中取回内部细分曲面的域点,其中,所述内部细分曲面的域点被预先计算并进行存储以便在运行时可获得,其中,最内部的内部细分曲面小于最外部的内部细分曲面,并且其中,预先计算多个边缘细节级别的内部细分曲面;以及
域着色器,其将域点转换到[0,1]域,并在所述图块上生成三维点。
11.如权利要求10所述的装置,其中,为了将域点转换到所述[0,1]域,所述域着色器对经编码的域点进行缩放与偏置。
12.如权利要求10所述的装置,其中,为了取回域点,所述细分曲面单元:按照从所述内部细分曲面的最内部的域点开始以螺旋状方式到所述内部细分曲面的外围域点的次序,来取回域点。
13.如权利要求10所述的装置,其中,按照在至少一个较高因子的细分曲面内安排至少一个较低因子的细分曲面的方式,来存储所述域点。
14.如权利要求10所述的装置,其中,为了生成图块,所述细分曲面单元生成沿着所述图块的外围边缘的域点。
15.如权利要求10所述的装置,其中,为了生成所述图块,所述细分曲面单元还从奇数或偶数细节级别表中取回三角形的角的索引。
16.一种用于产生图块的系统,包括:
显示器;以及
计算系统,其生成图块以发送到所述显示器,其中,所述计算系统包括:
细分曲面单元,其生成图块,其中,为了生成图块,所述细分曲面单元取回图块的域点,其中,为了取回域点,所述细分曲面单元从奇数或偶数表之一中取回内部细分曲面的域点,其中,所述内部细分曲面的域点被预先计算并进行存储以便在运行时可获得,其中,最内部的内部细分曲面小于最外部的内部细分曲面,并且其中,预先计算多个边缘细节级别的内部细分曲面;以及
域着色器,其将域点转换到[0,1]域,并在所述图块上生成三维点。
17.如权利要求16所述的系统,其中,为了将域点转换到所述[0,1]域,所述域着色器对经编码的域点进行缩放与偏置。
18.如权利要求16所述的系统,其中,为了取回域点,所述细分曲面单元:
按照从所述内部细分曲面的最内部的域点开始以螺旋状方式到所述内部细分曲面的外围域点的次序,来取回域点。
19.如权利要求16所述的系统,其中,为了生成所述图块,所述细分曲面单元还从奇数或偶数细节级别表之一中取回三角形的角的索引。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310741103.9A CN103761770B (zh) | 2009-04-29 | 2010-04-29 | 用于图像形成的方法和装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/387,187 US8482560B2 (en) | 2008-12-31 | 2009-04-29 | Image forming techniques |
US12/387,187 | 2009-04-29 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310741103.9A Division CN103761770B (zh) | 2009-04-29 | 2010-04-29 | 用于图像形成的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101894358A CN101894358A (zh) | 2010-11-24 |
CN101894358B true CN101894358B (zh) | 2014-01-08 |
Family
ID=42270887
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310741103.9A Active CN103761770B (zh) | 2009-04-29 | 2010-04-29 | 用于图像形成的方法和装置 |
CN201010214137.9A Active CN101894358B (zh) | 2009-04-29 | 2010-04-29 | 图像形成技术 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310741103.9A Active CN103761770B (zh) | 2009-04-29 | 2010-04-29 | 用于图像形成的方法和装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8482560B2 (zh) |
CN (2) | CN103761770B (zh) |
DE (1) | DE102010018701B4 (zh) |
GB (1) | GB2469920B (zh) |
SG (2) | SG10201401708QA (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8884957B2 (en) * | 2009-09-09 | 2014-11-11 | Advanced Micro Devices, Inc. | Tessellation engine and applications thereof |
US8537158B2 (en) * | 2009-12-02 | 2013-09-17 | Microsoft Corporation | Parallel triangle tessellation |
US9183651B2 (en) | 2010-10-06 | 2015-11-10 | Microsoft Technology Licensing, Llc | Target independent rasterization |
US9165403B2 (en) | 2011-01-14 | 2015-10-20 | Intel Corporation | Planetary scale object rendering |
CN102096948B (zh) * | 2011-03-01 | 2012-10-31 | 西安邮电学院 | 一种适用图形硬件的分格化方法 |
CN104025030B (zh) * | 2011-12-30 | 2017-08-29 | 英特尔公司 | 减少域着色器/镶嵌器调用的方法、装置及设备 |
US20140192051A1 (en) * | 2012-03-30 | 2014-07-10 | Etay Meiri | Offloading Tessellation from a Graphics Processor to a Central Processing Unit |
US10559123B2 (en) | 2012-04-04 | 2020-02-11 | Qualcomm Incorporated | Patched shading in graphics processing |
US9142060B2 (en) | 2012-08-30 | 2015-09-22 | Qualcomm Incorporated | Computation reduced tessellation |
US9082204B2 (en) | 2012-08-30 | 2015-07-14 | Qualcomm Incorporated | Storage structures for stitching primitives in graphics processing |
US9076260B2 (en) | 2012-08-30 | 2015-07-07 | Qualcomm Incorporated | Stitching for primitives in graphics processing |
US9177351B2 (en) * | 2012-10-09 | 2015-11-03 | Qualcomm Incorporated | Multi-primitive graphics rendering pipeline |
US9305397B2 (en) * | 2012-10-24 | 2016-04-05 | Qualcomm Incorporated | Vertex order in a tessellation unit |
US9401034B2 (en) * | 2013-04-30 | 2016-07-26 | Microsoft Technology Licensing, Llc | Tessellation of two-dimensional curves using a graphics pipeline |
KR102072656B1 (ko) | 2013-07-16 | 2020-02-03 | 삼성전자 주식회사 | 캐시를 포함하는 테셀레이션 장치, 그의 동작 방법, 및 상기 장치를 포함하는 시스템 |
KR101555426B1 (ko) * | 2014-02-07 | 2015-09-25 | 고려대학교 산학협력단 | 지형 렌더링 방법 및 장치 |
US10134171B2 (en) * | 2014-09-29 | 2018-11-20 | Arm Limited | Graphics processing systems |
GB2552260B (en) | 2015-06-05 | 2019-04-10 | Imagination Tech Ltd | Tessellation method |
GB2540981B (en) * | 2015-08-03 | 2017-11-15 | Advanced Risc Mach Ltd | Graphics processing |
US10068372B2 (en) | 2015-12-30 | 2018-09-04 | Advanced Micro Devices, Inc. | Method and apparatus for performing high throughput tessellation |
US20170358132A1 (en) * | 2016-06-12 | 2017-12-14 | Apple Inc. | System And Method For Tessellation In An Improved Graphics Pipeline |
US10242496B2 (en) * | 2017-04-24 | 2019-03-26 | Intel Corporation | Adaptive sub-patches system, apparatus and method |
US10580209B2 (en) * | 2018-03-06 | 2020-03-03 | Qualcomm Incorporated | Removal of degenerated sub-primitives in tessellation |
GB2572625B (en) * | 2018-04-05 | 2020-06-17 | Imagination Tech Ltd | Ordering in tessellation operations |
CN112419147B (zh) * | 2020-04-14 | 2023-07-04 | 上海哔哩哔哩科技有限公司 | 图像渲染方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101403909A (zh) * | 2008-11-12 | 2009-04-08 | 山东理工大学 | 三角网格细分曲面nc刀轨生成方法 |
CN101408991A (zh) * | 2008-05-12 | 2009-04-15 | 中山大学 | 一种插值型细分和逼近型细分相融合的曲面造型方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6167159A (en) * | 1998-04-30 | 2000-12-26 | Virtue Ltd. | Triangle mesh compression |
US6597356B1 (en) * | 2000-08-31 | 2003-07-22 | Nvidia Corporation | Integrated tessellator in a graphics processing unit |
US6504537B1 (en) * | 2000-09-05 | 2003-01-07 | Nvidia Corporation | System, method and article of manufacture for fractional tessellation during graphics processing |
AU2003245269A1 (en) * | 2002-05-03 | 2003-11-17 | Vialogy Corporation | System and method for characterizing microarray output data |
US6940505B1 (en) * | 2002-05-20 | 2005-09-06 | Matrox Electronic Systems Ltd. | Dynamic tessellation of a base mesh |
US8482559B2 (en) * | 2002-11-04 | 2013-07-09 | Ati Technologies Ulc | Method and apparatus for triangle tessellation |
US7639252B2 (en) * | 2004-08-11 | 2009-12-29 | Ati Technologies Ulc | Unified tessellation circuit and method therefor |
US20070018988A1 (en) * | 2005-07-20 | 2007-01-25 | Michael Guthe | Method and applications for rasterization of non-simple polygons and curved boundary representations |
CN100468464C (zh) * | 2006-12-11 | 2009-03-11 | 中山大学 | 一种基于逆Loop细分的渐进网格生成方法 |
US7928979B2 (en) * | 2008-02-01 | 2011-04-19 | Microsoft Corporation | Efficient geometric tessellation and displacement |
WO2011104746A1 (ja) * | 2010-02-23 | 2011-09-01 | 三菱電機株式会社 | 画像表示装置 |
-
2009
- 2009-04-29 US US12/387,187 patent/US8482560B2/en active Active
-
2010
- 2010-04-27 GB GB1006998.7A patent/GB2469920B/en active Active
- 2010-04-28 SG SG10201401708QA patent/SG10201401708QA/en unknown
- 2010-04-28 SG SG201002991-6A patent/SG166088A1/en unknown
- 2010-04-29 CN CN201310741103.9A patent/CN103761770B/zh active Active
- 2010-04-29 DE DE102010018701.1A patent/DE102010018701B4/de active Active
- 2010-04-29 CN CN201010214137.9A patent/CN101894358B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101408991A (zh) * | 2008-05-12 | 2009-04-15 | 中山大学 | 一种插值型细分和逼近型细分相融合的曲面造型方法 |
CN101403909A (zh) * | 2008-11-12 | 2009-04-08 | 山东理工大学 | 三角网格细分曲面nc刀轨生成方法 |
Non-Patent Citations (1)
Title |
---|
张宏鑫 等.半静态回插细分方法.《软件学报》.2002,第13卷(第4期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
GB201006998D0 (en) | 2010-06-09 |
DE102010018701A1 (de) | 2010-11-18 |
SG166088A1 (en) | 2010-11-29 |
CN101894358A (zh) | 2010-11-24 |
GB2469920A (en) | 2010-11-03 |
US20100164955A1 (en) | 2010-07-01 |
CN103761770B (zh) | 2017-05-17 |
SG10201401708QA (en) | 2014-06-27 |
DE102010018701B4 (de) | 2023-12-14 |
CN103761770A (zh) | 2014-04-30 |
GB2469920B (en) | 2015-03-18 |
US8482560B2 (en) | 2013-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101894358B (zh) | 图像形成技术 | |
KR101351236B1 (ko) | 테셀레이션 시간이 테셀레이션의 양에 따라 선형적으로 증가하는 테셀레이터 | |
US8120607B1 (en) | Boundary transition region stitching for tessellation | |
US6359624B1 (en) | Apparatus having graphic processor for high speed performance | |
CN100578547C (zh) | 一种用于河流模拟的方法和系统 | |
CN101978393A (zh) | 用于图形渲染的多阶段细分 | |
US9305397B2 (en) | Vertex order in a tessellation unit | |
KR101635334B1 (ko) | 대칭적 에지 스플릿팅에 의한 표면 테셀레이션 | |
US9449419B2 (en) | Post tessellation edge cache | |
US9076260B2 (en) | Stitching for primitives in graphics processing | |
KR20150110675A (ko) | 테셀레이션을 위한 도메인 좌표들의 출력 순서화 | |
TW201142741A (en) | Edge processing techniques | |
CN111063032B (zh) | 模型渲染方法、系统及电子装置 | |
CN102096948B (zh) | 一种适用图形硬件的分格化方法 | |
JP6441963B2 (ja) | グラフィックス処理における加速された複数のポリゴンの単一平面クリッピング | |
CN109785449A (zh) | 基于ffd的人物脸部编辑及贴花方法 | |
US20140192051A1 (en) | Offloading Tessellation from a Graphics Processor to a Central Processing Unit | |
Yu et al. | Research on tessellation with triangle strip | |
US20220206838A1 (en) | Adaptive thread group dispatch | |
US20140198120A1 (en) | Reducing the Domain Shader/Tessellatorinvocations | |
CN116797486A (zh) | 用于体素模型的平滑方法、装置及电子设备 | |
CN116416394A (zh) | 高精度地图多边形三角化处理方法及装置 | |
Wu | Ray Packet Tracing with Acceleration using AVX |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |