用于在对象空间中执行用户定义剪辑的方法和装置制造方法及图纸

技术编号:5436027 阅读:176 留言:0更新日期:2012-04-11 18:40
一种用于在对象空间中执行和处理用户定义剪辑以减少剪辑操作所需的计算的数目的方法和装置。所述方法和装置还将顶点坐标的模型视图变换与投影变换进行组合。对象空间中的用户定义剪辑通过避免在没有照明的情况下产生眼坐标来提供较高的性能和较少的功率消耗。所述装置包含驱动器,其用于所述对象空间中的所述用户定义剪辑,以在照明功能被停用时在对象空间中且在所述照明功能被启用时在眼空间中执行双模式用户定义剪辑。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及三维图形处理。,支^一般来说,三维(3D)图形应用程序在二维(2D)空间(例如,显示器屏幕)中 显示3D对象。2维图形中的像素具有位置、颜色和亮度的特性。另一方面,3D像素增 加了深度特性,其指示点在假想Z轴上所处的位置。当每一者具有其自己的深度值的3D 像素被组合时会产生纹理。将关于3D对象的信息转换成可显示的位图被称为渲染,且要求相当大的存储器和 处理能力。在过去,3D图形仅在强大的工作站上可用,但现在3D图形加速器在个人计 算机(PC)中是常见的。图形加速器含有存储器和专用微处理器以处理3D渲染操作中 的许多操作。用于桌上型计算机的开放式GL (Open GL )(开放式图形库)为产生 3D和2D计算机图形的写入应用程序界定应用程序编程接口 (API)。 API包含用于从图 元绘制复杂的三维场景的数百个功能。用户定义的剪辑平面允许对非可见多边形的高效早期剔除,从而增加性能并节省功 率。用户定义剪辑通常在PC图形系统中的硬件中进行。用户定义剪辑是手持式装置中 相对较新的特征。开放式GL⑧ES是桌上型计算机开放式GL的子集,其创建软件与图 形之间的接口。此外,用户定义剪辑在移动电话中的软件中或硬件中进行。如果用户定 义剪辑在软件中进行,那么用户定义剪辑通常在眼坐标中进行。顶点(顶点坐标)首先 从对象空间变换到眼空间中。对照眼空间中的用户定义剪辑平面来测试经变换的顶点。 将顶点装配成图元。如果图元部分位于剪辑平面的半空间中,那么所述图元将由所述剪 辑平面剪辑。然而,需要大量计算来将大量顶点从对象空间变换到眼空间。举例来说,在例如开放式GL⑧ES或开放式GL⑧的3D图形应用程序中,用户可指 定多个剪辑平面。剪辑平面是3D空间中的任意平面。每一平面界定一半空间。任何对 象或对象的任何部分如果不位于所述半空间中,那么将被剪辑。将对照所有剪辑平面来 测试场景中的任何对象。此过程被称为用户定义剪辑。另一类型的剪辑被称为平截头体剪辑(frustum clipping),其针对眼平截头体而剪辑对象。本文将不描述平截头体剪辑。 当前的挑战是使用在手持式3D成像装置中找到的3D软件引擎来实施用户定义剪 辑而不具有较弱的性能。手持式3D成像装置具有有限的电池电力和处理能力。需要大 量计算来将许多顶点从对象空间变换到眼空间,这些计算降低了 3D成像装置的性能。在图1所示的眼空间中的常规用户定义剪辑过程(例如由开放式GL⑧ES引擎提供) 中,使用步骤S24处的模型视图变换过程来变换步骤S22的表示为V—对象的顶点对象 坐标。在步骤S24处,将顶点对象坐标V—对象转换到眼空间中以形成表示为V—眼睛的 顶点眼坐标,其中使顶点对象坐标V一对象乘以用于坐标的模型视图矩阵M。顶点眼坐 标V—眼睛在步骤S28 (如果是多边形)、S30 (如果是线段)和S32 (如果是点)中的一 者处经受图元装配。在步骤S28处针对多边形以及在步骤S30处针对线段的图元装配进 一步在步骤S34处经受平坦着色过程(flat shading process)。如果着色模型是平坦着色, 那么将用三角形或线的最后一个顶点的颜色来代替每一顶点的颜色。来自步骤S34的平 坦着色过程或步骤S32的点装配过程的输出在步骤S40处经受眼空间中的用户定义剪辑 过程(如果启用的话)。稍后将详细描述启用步骤S40处的剪辑过程。图元可以是多边形、线段或点,且可使用图1所示的常规用户定义剪辑过程来对图 元进行剪辑。可在步骤S40处针对用户剪辑平面来对这些图元进行剪辑。在剪辑坐标中, 步骤S44的视见体积由以下不等式界定-Wc ^ Xc S Wc-wc 5 zc S wc其中&、 ye和Ze是剪辑坐标。视见体积可进一步受用以产生剪辑体积的多达n个用户定义剪辑平面限制,其中n取决于实施方案。每一用户定义平面指定一半空间。剪辑体积是所有此些半空间与视见体积的交集(步骤S44)。应注意,在普通的开放式GL中,用户剪辑可在眼空间中或在 投影空间中进行。然而,步骤S44假定用户剪辑在投影空间中进行。然而,如果在步骤 S38处未启用用户定义剪辑平面,那么剪辑体积是步骤S44处的视见体积。因此,来自 平坦着色过程S34 (如果图元是多边形或线段)或步骤S32的点装配过程的输出经受步 骤S42处的投影变换而不经受步骤S40的用户定义剪辑过程。在步骤S12处用函数剪辑平面(平面,eqn[4])来指定用户定义剪辑平面,其中第一自变量(平面)的值是符号常数剪辑一平面i,其中i是O与n-l之间的整数,指示n个用户定义剪辑平面中的一者;且eqn[4]是四个 单精度浮点值的阵列。(开放式GL⑧要求双精度浮点。)所述四个单精度浮点值是步骤 S14的平面等式P在对象坐标中的系数,表示为pl、 p2、 p3和p4。在步骤S18处,为 剪辑平面P存储表示为Mc的当前模型视图矩阵。在步骤S20处,经由逆矩阵过程获得 或计算出用于剪辑平面P的当前模型视图矩阵Mc的逆矩阵。所得逆矩阵表示为Inv一Mc。 当在步骤S16处指定这些系数时,经由乘法将Inv_Mc应用于这些系数,从而如下得出 PJ艮睛P一目艮目青=(p'l p'2 P'3 P'4) = (Pl P2 P3 P4) MC.1其中Mc为当前模型视图矩阵;Mc'为Inv—Mc;所得平面等式在Mc为奇异的情况 下是不明确的,且在Mc为病态(poorly-conditioned)的情况下可能是不准确的;且P_ 眼睛为步骤S16 (后面接着是步骤S40)处的眼坐标中的平面等式系数。在步骤S40处, 具有满足PJ艮睛V—眼睛>=0或(P'l* Xe + p'2 * ye + p'3* Ze + p'4 * We ) >= 0 的眼坐标(Xe ye ze We)T的所有点均位于由平面界定的半空间中;不满足此条件的点 不位于所述半空间中,其中T为转置;且*表示矩阵或向量的乘法。在步骤S36处,可用启用命令来启用用户定义剪辑平面。或者,可用停用命令来停 用剪辑。在步骤S38处,作出启用还是停用用户定义剪辑平面的确定。如果所述确定为 是(意为启用),那么来自平坦着色过程S34 (如果是步骤S28的多边形或S30的线 段装配)或点装配过程S32的输出在眼空间中经受步骤S40处的剪辑。任一命令的自变 量的值为剪辑_平面1,其中i是0与n之间的整数,指定i的值会启用或停用具有指数i 的平面等式。常数服从剪辑平面1=剪辑平面0+i。关于步骤S32,如果考虑中的图元是点,那么在图元位于剪辑体积内的情况下,剪 辑使所述图元通过而不对其进行改变;否则丢弃所述图元。如果图元是步骤S30处的线 段,那么在图元完全位于剪辑体积内的情况下,剪辑不对所述图元做任何处理,且在所 述图元完全位于所述体积外的情况下丢弃所述图元。如果线段部分位于所述体积内且部 分位于所述体积外,那么对所述线段进行剪辑,且为一个或两个顶点计算新的顶点坐标。 经剪辑线段端点既位于原始线段上也位于剪辑体积的边界上。步骤S40处的剪辑过程针对每一经剪辑顶点得出一值0《t《1。如果经剪辑顶 点的坐标为D,且原始顶点的坐标为D!和D2,那么t由以下等式给出D 二tDi + (1 +t)D2本文档来自技高网...

【技术保护点】
一种对象空间用户定义剪辑驱动器,其包括:图元装配模块,其可操作以对对象空间中的顶点坐标进行图元装配;以及用户定义剪辑模块,其可操作以使用所述对象空间中的剪辑平面(P_对象)和所述对象空间中的所述经图元装配的顶点坐标在所述对象空间中创建经剪辑的顶点坐标。

【技术特征摘要】
【国外来华专利技术】US 2006-9-12 11/531,2051.一种对象空间用户定义剪辑驱动器,其包括图元装配模块,其可操作以对对象空间中的顶点坐标进行图元装配;以及用户定义剪辑模块,其可操作以使用所述对象空间中的剪辑平面(P_对象)和所述对象空间中的所述经图元装配的顶点坐标在所述对象空间中创建经剪辑的顶点坐标。2. 根据权利要求1所述的驱动器;其中所述图元装配模块包含多边形装配子模块、线装配子模块以及点装配子模块中的至少一者。3. 根据权利要求1所述的驱动器;其中所述图元装配模块包含多边形装配子模块、线装配子模块、点装配子模块以及用于处理来自所述多边形装配子模块和所述线装配子模块的输出的平坦着色子模块。4. 根据权利要求1所述的驱动器;其进一步包括三维(3D)图形引擎接口,所述三维(3D)图形引擎接口用于将所述用户定义剪辑模块的输出介接到3D图形引擎的图形核心,使得所述对象空间中的所述经剪辑顶点坐标可变换到投影空间中。5. 根据权利要求1所述的驱动器;其中所述驱动器以软件形式实施。6. 根据权利要求1所述的驱动器;其中所述驱动器以硬件形式实施。7. 根据权利要求1所述的驱动器;其中所述驱动器在照明功能被停用时操作。8. 根据权利要求1所述的驱动器;其中所述用户定义剪辑模块将眼空间中的剪辑平面(PJ艮睛)转换为所述对象空间中的所述剪辑平面(P—对象),所述转换由以下等式界定P—目艮睛Inv—Mc*P;且P—对象P一眼睛其中P是输入剪辑平面;Mc是用于所述剪辑平面的模型视图矩阵;Irw—Mc是所述Mc的逆矩阵;M是用于坐标的模型视图矩阵;T是矩阵或向量的转置;且*表示矩阵乘法。9. 根据权利要求8所述的驱动器;其中所述用户定义剪辑模块在P一对象t * V一对象:^ 0的情况下执行剪辑,其中P—对象是待剪辑的所述对象空间中的所述剪辑平面;V一对象是所述对象空间中的所述顶点坐标;T是矩阵或向量的转置;且*表示矩阵乘法。10. —种对象空间用户定义剪辑驱动器,其包括图元装配装置,其用于对对象空间中的顶点坐标进行图元装配;以及用户定义剪辑装置,其用于使用所述对象空间中的剪辑平面(?_对象)和所述对象空间中的所述经图元装配的顶点坐标在所述对象空间中创建经剪辑的顶点坐标。11. 根据权利要求IO所述的驱动器;其中所述图元装配装置包含用于对所述顶点坐标进行多边形装配的装置、用于对所述顶点坐标进行线装配的装置以及用于对所述顶点坐标进行点装配的装置中的至少一者。12. 根据权利要求IO所述的驱动器;其进一步包括用于将所述用户定义剪辑装置的输出介接到3D图形引擎的图形核心以使得所述对象空间中的所述经剪辑顶点坐标可变换到投影空间中的装置。13. 根据权利要求IO所述的驱动器;其中所述驱动器以软件形式实施。14. 根据权利要求IO所述的驱动器;其中所述驱动器以硬件形式实施。15. 根据权利要求IO所述的驱动器;其中所述驱动器在照明被停用时操作。16. 根据权利要求10所述的驱动器;其中所述用户定义剪辑装置包含将眼空间中的剪辑平面(P一眼睛)转换为所述对象空间中的所述剪辑平面(P—对象)的装置,所述转换由以下等式界定P—眼睛-Inv—Mc*P;且P—对象-P—眼睛T*M其中P是输入剪辑平面;Mc是用于所述剪辑平面的模型视图矩阵;Inv Mc是所述MC的逆矩阵;M是用于坐标的模型视图矩阵;T是矩阵或向量的转置;且*表示矩阵乘法。17. 根据权利要求16所述的驱动器;其中所述用户定义剪辑装置包含用于在P—对象t * V一对象0的情况下执行剪辑的装置,其中P—对象是待剪辑的所述对象空间中的所述剪辑平面;V—对象是所述对象空间中的所述顶点坐标;T是矩阵或向量的转置;且*表示矩阵乘法。18. —种可由处理器执行的具有程序指令的程序代码,所述程序指令在执行时可操作以对对象空间中的顶点坐标进行图元装配;及使用所述对象空间中的剪辑平面(P—对象)和所述对象空间中的所述经图元装配的顶点坐标在所述对象空间中创建经剪辑的顶点坐标。19. 根据权利要求18所述的程序代码;其中所述可操作以进行图元装配的程序指令包含在执行时可操作以选择性执行多边形装配、线装配以及点装配中的一者的程序指令。20. 根据权利要求18所述的程序代码;其中所述程序指令在照明功能被停用时执行。21. 根据权利要求18所述的程序代码;其中所述可操作以执行所述用户定义剪辑的程序指令包含在执行时可操作以将眼空间中的剪辑平面(P—眼睛)转换为所述对象空间中的所述剪辑平面(PJ(寸象)的程序指令,所述转换由以下等式界定PJ艮睛^ Inv—Mc*P;且P—对象=P—眼睛T*M其中P是输入剪辑平面;Mc是用于所述剪辑平面的模型视图矩阵;Inv—Mc是所述MC的逆矩阵;M是用于坐标的模型视图矩阵;T是矩阵或向量的转置;且*表示矩阵乘法。22. 根据权利要求21所述的程序代码;其中所述可操作以执行所述用户定义剪辑的程序指令包含在执行时可操作以在÷P一对象T * V—对象>=0的情况下进行剪辑的程序指令,其中P一对象是待剪辑的所述对象空间中的所述剪辑平面;V—对象是所述对象空间中的所述顶点坐标;T是矩阵或向量的转置;且*表示矩阵乘法。23. —种3D图形引擎,其包括对象空间用户定义剪辑驱动器,其可操作以在照明功能在所述3D图形引擎中被停用时,对对象空间中的顶点坐标执行用户定义剪辑;以及图形核心,其用于将所述对象空间中的所述经剪辑顶点坐标变换到投影空间中。24. 根据权利要求23所述的引擎;其中所述驱动器包括图元装配模块,其可操作以使用所述对象空间中的所述顶点坐标在所述对象空间中执行图元装配。25. 根据权利要求24所述的引擎;其中所述图元装配模块包含多边形装配子模块、线装配子模块以及点装配子模块,其每一者可分别响应于所述对象空间中的所述顶点坐标是线、点还是多边形而选择性地操作。26. 根据权利要求25所述的引擎;其中所述图元装配模块进一步包含耦合到所述多边形装配子模块和所述线装配子模块的输出的平坦着色子模块。27. 根据权利要求23所述的引擎;其中所述图形核心通过将一个向量乘到一矩阵来将所述对象空间中的所述顶点坐标直接变换到所述投影空间中。28. 根据权利要求27所述的引擎;其中所述矩阵是模型视图矩阵与投影矩阵的组合矩阵(MVTPRJ一矩阵),其中所述乘法的结果得出所述投影空间中的顶点坐标(V』d),其由以下等式界定V_prj = CV—对象* MVTPRJ—矩阵或V_prj = V—对象* MVTPR乙矩阵其中CV—对象是所述对象空间中的所述经剪辑的顶点坐标;且V一对象是所述对象空间中未经剪辑的顶点坐标。29. 根据权利要求23所述的引擎;其中所述驱动器包括用户定义剪辑模块,其可操作以将眼空间中的剪辑平面(p一眼睛)转换为所述对象空间中的剪辑平面(p—对象),所述转换由以下等式界定PJ艮睛二 Inv—Mc*P;且P—对象=P—眼睛T*M其中P是输入剪辑平面;Mc是用于所述剪辑平面的模型视图矩阵;Inv一Mc是所述MC的逆矩阵;M是用于坐标的模型视图矩阵;T是矩阵或向量的转置;且*表示矩阵乘法。30. 根据权利要求29所述的引擎;其中所述用户定义剪辑模块进一步可操作以在P—对象t * V—对象>=0的情况下使用所述对象空间中的所述剪辑平面(P—对象)在所述对象空间中创建经剪辑的顶点坐标,其中P—对象是待剪辑的所述对象空间中的所述剪辑平面;T是矩阵或向量的转置;且*表示矩阵乘法。31. —种3D图形引擎,其包括用户定义剪辑装置,其用于在照明功能在所述3D图形引擎中被停用时对对象空间中的顶点坐标进行用户定义剪辑;以及变换装置,其与所述用户定义剪辑装置介接,用于将所述对象空间中的所述经剪辑的顶点坐标变换到投影空间中。32. 根据权利要求31所述的引擎;其中所述用户定义剪辑装置包括用于使用所述对象空间中的所述顶点坐标在所述对象空间中进行图元装配的图元装配装置。33. 根据权利要求32所述的引擎;其中所述图元装配装置包括用于多边形装配的装置、用于线装配的装置以及用于点装配的装置,其每一者可分别响应于所述对象空间中的所述顶点坐标是线、点还是多边形而选择性地操作。34. 根据权利要求33所述的引擎;其中所述图元装配装置进一步包含用于平坦着色的装置,其耦合到所述多边形装配装置和所述线装配装置的输出。35. 根据权利要求31所述的引擎;其中所述变换装置包含用于通过将一个向量乘到一矩阵来将所述对象空间中的所述顶点坐标直接变换到所述投影空间中的装置。36. 根据权利要求35所述的引擎;其中所述矩...

【专利技术属性】
技术研发人员:毕宁陈林令军弗兰克陈
申请(专利权)人:高通股份有限公司
类型:发明
国别省市:US[美国]

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

1