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

文档序号:6455841阅读:112来源:国知局
专利名称:用于在对象空间中执行用户定义剪辑的方法和装置的制作方法
技术领域
本发明涉及三维图形处理。
,支^
一般来说,三维(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其中t的值在颜色和纹理坐标剪辑等中使用。
如果图元是步骤S28处的多边形,那么在图元的每一边缘均完全在剪辑体积内的情
况下使所述图元通过,且否则剪辑或丢弃所述图元。多边形剪辑可能导致多边形边缘被 剪辑,但因为必须维持多边形连接性,所以这些经剪辑的边缘由沿剪辑体积的边界的新 边缘连接。因此,剪辑可能要求将新的顶点引入多边形中。边缘旗标与这些顶点相关联,
使得通过剪辑而引入的边缘被标记为边界(边缘旗标真(TRUE)),且使得多边形的在 这些顶点处被切断的原始边缘保持其原始旗标。
如果恰好多边形与剪辑体积的边界的边缘相交,那么经剪辑多边形必须包含位于此 边界边缘上的点。此点必须位于所述边界边缘与原始多边形的顶点的凸包(convex hull) 的交集中。
顶点具有带不同正负号的Wc值的线段或多边形可在剪辑之后产生多个经连接组件。 一些实施方案不被要求处理此情形。即,仅图元的位于Wc〉0的区域中的部分需要通过 剪辑来产生。
以剪辑平面渲染的图元必须满足补充标准。假设启用具有系数(p', p'2p'3p'4)的单 个剪辑平面(或许多以类似方式指定的剪辑平面),且绘制一系列图元。接下来,假设
以系数(-p',-p'2-p'3-p'4)重新指定原始剪辑平面(且对应地针对任何其它剪辑平面), 且再次绘制所述图元。在此情况下,图元不得丢失任何像素,也不能在那些图元被剪辑 平面切割的区域中两次绘制任何像素。
剪辑需要平面等式(每一者由四个单精度浮点系阵列成)和指示这些用户定义平面 等式中的哪些等式被启用的对应位。在初始状态下,所有用户定义平面等式系数均为零, 且所有平面均被停用。
鉴于上文对眼空间中的用户定义剪辑过程的描述,需要减少具有3D图形软件和/或 硬件引擎的3D成像装置中对用户定义剪辑的计算。
还需要在对象空间中执行用户定义剪辑以避免将顶点从对象空间变换到眼空间中。 3D游戏内容处理中的多数情况要求用来将少数用户定义剪辑平面从眼空间变换到对象 空间的计算少于用来将许多顶点从对象空间变换到眼空间的计算。
此外,需要避免在照明被停用的情况下产生眼坐标。

发明内容
鉴于上述内容,本发明的目标是在对象空间中提供用户定义剪辑,其在具有有限电
力容量的移动或手持式通信或计算装置中消耗较少电力。本发明的另一目的是在对象空间中提供用户定义剪辑以避免将顶点从对象空间变 换到眼空间中,从而减少眼空间中的用户定义剪辑通常所需的计算的数目。
本发明的另--目的是在3D游戏内容中的多数情况下提供与将许多顶点从对象空间 变换到眼空间所需的计算相比较少的用来将少数用户定义剪辑平面从眼空间变换到对 象空间的计算。
本发明的上述和其它目的是通过一种对象空间用户定义剪辑驱动器来实行的,所述 对象空间用户定义剪辑驱动器包括图元装配模块,其可操作以对对象空间中的顶点坐 标进行图元装配;以及用户定义剪辑模块,其可操作以使用所述对象空间中的剪辑平面 (P一对象)和所述对象空间中的所述经图元装配的顶点坐标来在所述对象空间中创建经 剪辑的顶点坐标。
通过一个向量到矩阵乘法来将对象空间中的经剪辑和未经剪辑的顶点坐标从对象 空间直接变换到投影空间中。当照明被停用且用户定义剪辑被停用或启用时,可将所述 两个变换(模型视图和投影)组合成一个4X4矩阵而不是两个4X4矩阵。
驱动器可以软件、硬件或硬件与软件的组合的形式实施。
或者,直到紧接投影变换之前,对象空间中的经剪辑顶点坐标才从对象空间变换到 眼空间。
本发明的另一方面是提供一种可由处理器执行且具有程序指令的程序代码,所述程 序指令在执行时可操作以对对象空间中的顶点坐标进行图元装配。所述代码还可操作以 执行用户定义剪辑以使用所述对象空间中的剪辑平面(P一对象)和所述对象空间中的所 述经图元装配的顶点坐标来在所述对象空间中创建经剪辑的顶点坐标。
本发明的另一方面是提供一种3D图形引擎,其包括对象空间用户定义剪辑驱动
器,其可操作以在照明功能在所述3D图形引擎中被停用时,对对象空间中的顶点坐标 执行用户定义剪辑。所述3D图形引擎还包含图形核心,其用于将对象空间中的经剪辑 的顶点坐标变换到投影空间中。
本发明的又一方面是提供一种可由处理器执行的具有程序指令的程序代码,其中在 执行时所述程序指令可操作以在照明被启用时对眼空间中的顶点坐标执行顶点坐标处 理,且在照明被停用时对对象空间中的顶点坐标执行顶点坐标处理。
所述可操作以在对象空间中执行顶点处理的程序指令可操作以使用所述对象空间 中的顶点坐标和对象空间中的用户定义剪辑来在所述对象空间中执行图元装配。
所述可操作以在眼空间中执行顶点处理的程序指令可操作以使用所述眼空间中的 顶点坐标和眼空间中的用户定义剪辑来在所述眼空间中执行图元装配。
17本发明的又一方面是提供一种3D成像装置,其包括确定装置,其用于确定照明 功能被启用还是被停用;眼空间处理装置,其用于在照明功能被启用时处理眼空间中的 顶点坐标以及对象空间处理装置,其用于在照明功能被停用时处理对象空间中的顶点 坐标。
所述对象空间处理装置使用对象空间中的顶点坐标和对象空间中的用户定义剪辑 来在所述对象空间中执行图元装配。
所述眼空间处理装置使用眼空间中的顶点坐标和眼空间中的用户定义剪辑来在所 述眼空间中执行图元装配。
所述对象空间处理装置包含用于通过一个向量到矩阵乘法来将对象空间中的经剪 辑和未经剪辑的顶点坐标直接变换到投影空间中的装置。当照明被停用且用户定义剪辑 被停用或启用时,所述两个变换(模型视图和投影)可组合成一个矩阵而不是两个矩阵。
本发明的另一方面是一种用于处理对象空间用户定义剪辑的方法,其包括以下步 骤将眼空间中的剪辑平面(P—眼睛)转换为对象空间中的剪辑平面(P—对象);以及 使用所述对象空间中的所述剪辑平面(?_对象)和所述对象空间中的顶点坐标来执行用 户定义剪辑,以在所述对象空间中创建经剪辑的顶点坐标。
本发明的又一方面是一种用于双模式处理用户定义剪辑的方法,其包括以下步骤-确定照明功能被启用还是被停用;当照明功能被停用时,执行具有对象空间用户定义剪 辑的对象空间顶点坐标处理以在对象空间中创建经剪辑的顶点坐标;以及当照明功能被 启用时,执行具有眼空间用户定义剪辑的眼空间顶点坐标处理以在眼空间中创建经剪辑 的顶点坐标。
所述用于双模式处理用户定义剪辑的方法进一步包括以下步骤将对象空间中经剪 辑的顶点坐标和所述对象空间中未经剪辑的顶点坐标直接变换到投影空间中。
本发明的优点是通过在照明被停用的情况下避免产生眼坐标而获得的较高性能和 较少功率消耗。


当结合附图阅读时将更好地理解上述发明内容以及本发明优选实施例的以下具体 实施方式。出于说明本发明的目的,图中展示目前为优选的实施例。然而应理解,本发 明不限于所展示的精确布置。在图中-
图1说明眼空间中的常规用户定义剪辑过程的流程图; 图2说明具有眼空间中的用户定义剪辑的常规顶点过程流程的流程图;图3说明根据本发明的对象空间中的用户定义剪辑过程的流程图4说明根据本发明的具有对象空间中的用户定义剪辑的顶点过程流程的流程图; 图5A说明根据本发明实施例的具有以软件形式实施的对象空间用户定义剪辑驱动
器的三维(3D)成像装置的框图5B说明根据本发明实施例的具有以硬件形式实施的对象空间用户定义剪辑驱动
器的三维(3D)成像装置的框图6说明存储在图5A或图5B中的装置的存储单元中的项目的框图; 图7A说明图5A中的装置的对象空间用户定义剪辑驱动器的大体框图; 图7B说明图5B中的装置的对象空间用户定义剪辑驱动器的大体框图;以及 图8说明根据本发明的双模式用户定义剪辑方法的流程图。
具体实施例方式
虽然本发明容许有许多不同形式的实施例,但本说明书和附图仅揭示某些形式作为 本发明的使用的实例。不希望本发明限于如此描述的实施例,且本发明的范围将在所附 权利要求书中指出。
下文以对一种用于在对象空间中进行用户定义剪辑的方法的特定应用来描述根据 本发明的3D成像装置的优选实施例。3D成像装置可以是个人计算机(PC) 3D图形系 统、例如个人数字助理(PDA)的手持式计算装置,或使用3D图形应用程序的移动电 话。然而所属领域的技术人员将了解,本发明还很适用于其它类型的具有3D图形应用 程序(例如游戏应用程序、模拟器图形和虚拟现实图形)的计算装置。本发明的实施方 案适合3D软件引擎中的用户定义剪辑过程。
现在详细参看图式,其中相同标号始终用于指示相同元件,图3中展示根据本发明 的用于对象空间中的用户定义剪辑的方法(在100处大体指明)的实施例。
如图4中最佳展示,用于对象空间中的用户定义剪辑的方法100包含顶点过程流程 150,其在照明被停用时具有对象空间中的用户定义剪辑。方法100在步骤S112处识别 用于表示为V一对象的顶点对象坐标的数据。其后,顶点对象坐标V—对象在步骤S118 (如果是多边形)、S120 (如果是线段)和S122 (如果是点)中的一者处经受图元装配。 步骤S118处针对多边形和步骤S120处针对线段的图元装配在步骤S124处经受平坦着 色过程。如果着色模型是平坦着色,那么将用三角形或线的最后一个顶点的颜色来代替 每一顶点的颜色。来自步骤S124的平坦着色过程或步骤S122的点装配过程的输出经受 用户定义剪辑过程(如果由步骤S126启用的话)。视见体积可进一步受多达n个用户定义剪辑平面限制以在剪辑过程S130中产生剪 辑半空间,其中n取决于实施方案。每一用户定义平面指定一半空间。剪辑体积是所有 此些半空间与视见体积的交集(步骤S134)。然而,如果在步骤S126处未启用用户定义 剪辑平面,那么剪辑体积是步骤S134处的视见体积(经受组合式模型视图与投影变换)。 剪辑需要平面等式(每一者由四个单精度浮点系阵列成)和指示这些用户定义平面 等式中的哪些等式被启用的对应位。在初始状态下,所有用户定义平面等式系数均为零, 且所有平面均被停用。
如果剪辑平面被停用,那么步骤S128后面接着是步骤S132。在步骤S132处,来 自平坦着色过程S124 (如果图元是多边形或线段)或步骤S122的点装配过程的输出在 步骤S132处经受模型视图和投影变换两者,而不经受步骤S130的用户剪辑。步骤S132 后面接着是步骤S134,其中发生视见体积剪辑过程,由以下不等式界定
-wc S xc ^ wc -wc S yc S wc -wc 5 zc S wc
其中Xc、 ye和Ze是剪辑坐标。步骤S134结束方法100。
现在参看图2,在具有眼空间中的用户定义剪辑的常规顶点过程流程50中,流程 50包含步骤S22 (后面接着是步骤S24)的顶点对象坐标。在步骤S24处,发生模型视 图变换过程,其中将对象空间中的顶点对象坐标转换到眼空间。其后,步骤S24后面接 着是图元装配过程S27,其一般来说包含步骤S28、 S30、 S32和S34。图元装配过程S27 后面接着是用户剪辑过程S40 (假定剪辑被启用),而用户剪辑过程S40后面接着是步骤 S42处的投影变换过程。步骤S42后面接着是步骤S44,其中可发生用于视见体积剪辑 的过程。步骤S44结束流程50。
另一方面,如在图4中最佳可见,具有对象空间中的用户定义剪辑的顶点过程流程 150被分为两个部分,其中驱动器218A (图7A)在步骤S117处在对象空间中执行图元 装配,随后在步骤S131处在对象空间中执行用户定义剪辑过程(假定已接收到启用命 令)。步骤S117包含步骤S118、 S120、 S122和S124,且步骤S131包含步骤S102、 S104、 S賜、S108、 SllO、 S114、 S116、 S126、 S128和S130。 3D图形引擎220可实施为软件 图形引擎或硬件图形引擎,且提供图形核心。将3D图形引擎220A展示为与程序指令 216A分离,但3D图形引擎220A将包含合适的程序指令(未图示)。在图4、图5A和 图7A所示的实施例中,驱动器218A大体上实施为软件。在3D图形引擎220A中,步 骤S112'的顶点对象坐标仍在对象空间中,但为经剪辑的顶点对象坐标,表示为CV一对
20象,且需要使用步骤S132的组合式模型视图与投影变换过程来变换为投影空间顶点坐 标,如稍后将使用单个矩阵(例如单个4X4矩阵)更详细地描述。通过用户剪辑步骤 S131的一些顶点坐标(V—对象)由于平面被停用(步骤S128到S132)或在步骤S130 中的条件不满足的情况下没有被剪辑。这些顶点坐标是对象空间中未经剪辑的顶点坐标 (V—对象)。因此,步骤S112'的顶点坐标可向步骤S132提供既是CV—对象又是V一对象 的数据。
或者,组合式模型视图与投影变换过程S132可包含步骤S132A处所表示的两步骤 过程(以幻像展示),其与图1的步骤S24使用相同的等式。步骤S132A的模型视图变 换与步骤S24处的模型视图变换相同。步骤S132A将经剪辑的顶点对象坐标转换到眼空 间中,紧接其后的是步骤S132B的投影变换过程(以幻像展示)。此两步骤过程需要两 (2)个单独的矩阵。步骤S132或S132B后面接着是步骤S134的视见体积剪辑过程。 现在参看步骤S132的组合式模型视图与投影变换过程,假定以下
V—眼睛=V—对象* MVT—矩阵 其中MVT一矩阵是模型视图变换矩阵。由于用于用户剪辑的V—眼睛未被使用,因 此将MVT—矩阵和投影—矩阵组合成一个矩阵MVTPRJ—矩阵。可将投影坐标计算为
V—投影=CV—对象* MVTPRJ—矩阵或 V—投影=V—对象* MVTPRJ—矩阵 其中CV—对象是对象空间中经剪辑的顶点坐标;且¥_对象是对象空间中未经剪辑 的顶点坐标;V—投影是投影空间中的所有顶点坐标;且MVTPR^矩阵是经组合的MVT— 矩阵与投影—矩阵。
流程150在对象空间中执行用户定义剪辑以避免将顶点从对象空间变换到眼空间 中。在3D游戏内容中的多数情况下,流程150要求的用来将少数用户定义剪辑平面从 眼空间变换到对象空间的计算少于用来将许多顶点从对象空间变换到眼空间的计算。
此外,在流程150中,模型视图变换可与步骤S132处所表示的投影变换组合。在 此情况下,在步骤S131的用户定义剪辑过程之后,通过一个向量到矩阵乘法而不是两 个向量到矩阵乘法,将经剪辑的顶点坐标从对象空间直接变换到投影空间中。在普通的 开放式GL⑧中,可在照明和用户定义剪辑两者被停用时组合两个变换。在示范性实施例 中,只要照明被停用,就可组合所述两个变换。因此,可停用或启用用户定义剪辑。如 可了解,使用单个矩阵减少了用来实现经剪辑顶点坐标到投影空间中的计算。
再次参看图3,用户可在步骤S102处指定多个剪辑平面。剪辑平面是3D空间中的 任意平面。每一平面界定一半空间。在用户定义剪辑中,任何对象或对象的任何部分将在其不位于所述半空间的情况下被剪辑。将对照所有剪辑平面来测试场景中的任何对 象。
在步骤S102处,通过调用 剪辑平面(平面,叫n[4])
的函数来指定用户定义剪辑平面,其中第一自变量(平面)的值是符号常数剪辑— 平面i,其中i是O与n-l之间的整数,指示n个用户定义剪辑平面中的一者;且eqn[4] 是四个浮点值的阵列。所述四个浮点值是步骤S104的平面等式P在对象坐标中的系数, 表示为pl、 p2、 p3和p4。在步骤S108处,为剪辑平面存储表示为Mc的当前模型视图 矩阵。在步骤S110处,经由逆矩阵过程获得或计算用于剪辑平面的当前模型视图矩阵 Mc的逆矩阵。将逆矩阵表示为Inv一Mc。当在步骤S106处指定这些系数时,经由乘法 将lm^Mc应用于这些系数,从而得出由以下等式界定的PJ艮睛
P—目艮目青=(p'l p'2 P'3 P'4) = (Pl P2 P3 P4) MC一1
其中Mc是当前模型视图矩阵;Mc',是矩阵Mc的逆矩阵,表示为Inv一Mc;所得平 面等式在Mc为奇异时是不明确的,且在Mc为病态时可能是不准确的;且PJ艮睛是眼 坐标中的平面等式系数。
使用模型视图矩阵坐标M来将步骤S106的眼空间中的平面等式系数P一眼睛转换到 步骤S114处的对象空间。步骤S116的模型视图矩阵坐标M与步骤S26的矩阵坐标相 同。此外,对于步骤S132A,模型视图变换可与步骤S26相同。眼空间中的平面等式系 数到对象空间的转换由以下等式界定
P一对象=(p'i p'2 P'3 P'4,M或 P—对象=P—眼睛T*M = (pQl p。2 p。3 p。4) 其中P—对象是对象空间中的平面等式系数;T表示矩阵或向量的转置;且*表示矩 阵乘法。
步骤SU4后面接着是步骤S130,其中具有满足
P一对象t * V—对象>=0 的顶点对象坐标V—对象-(x。 y。 z。 w。)的所有点均位于由平面界定的半空间中;不满 足此条件的点不位于所述半空间中。
在步骤S126处,用启用命令来启用用户定义剪辑平面。或者,用户可用停用命令 来停用剪辑平面。在步骤S128处,作出是启用还是停用用户定义剪辑平面的确定。如 果所述确定为"是"(意为启用),那么来自平坦着色过程S124 (如果是步骤SU8的多 边形或S120的线段装配)或点装配过程S122的输出在对象空间中经受步骤S130处的剪辑。任一命令的自变量的值是剪辑—平面i,其中i是0与n之间的整数;指定i的值 启用或停用具有指数i的平面等式。常数服从剪辑平面i-剪辑平面0+i。
现在参看步骤S130,在对象空间中而不是在眼空间中应用用户定义剪辑过程。代替 将所有顶点坐标从对象空间变换到眼空间以用于剪辑的是,将步骤S104处所指定的用 户定义剪辑平面从眼空间变换到对象空间,并对其应用剪辑。以此方式,多个顶点坐标 的变换中所需的计算被用来将步骤S106处的剪辑平面变换到对象空间的较少计算代替。 在多数情况下,顶点坐标的量远远大于所指定的用户定义剪辑平面的量。通过将用户定 义剪辑移动到对象空间,节省了许多计算循环,且因此降低了具有3D成像能力的移动 或手持式装置中的功率消耗。 -
眼空间中的常规用户剪辑由P—眼睛1^ V—眼睛确定。根据以下变换, PJ艮睛t * V—眼睛=P—眼睛t * (M * V—对象) =(P一目艮睛t * M) * V一对象 =P一对象T* V—对象 其中P—对象T = P—眼睛T * M。
因此,可以P—对象T* V一对象来进行步骤S130的用户剪辑过程,这是方法100的 关键。
由于基于顶点的照明过程是基于眼空间中的顶点的,因此在对象空间中执行剪辑的 方法IOO将不适用于在照明被启用时节省计算。代替的是,应在照明被启用的情况下使 用常规方法IO。在开放式GL⑧和开放式GL⑧ES中具有用以(例如)使用gl启用(GL 枚举量,阵列)来启用和停用照明的应用程序编程接口 (API)。
现在参看图8,展示双模式用户定义剪辑方法160分别用于图5A的3D成像装置 200A或图5B的3D成像装置200B中,且开始于作出照明是否已被停用的确定的步骤 S164。如果步骤S164处的确定为"是",那么步骤S164后面接着是步骤S166,其中具 有用户定义剪辑的顶点处理根据图3或图4的流程图而在对象空间中发生。另一方面, 如果步骤S164处的确定为"否",那么步骤S164后面接着是步骤S168,其中具有用户 定义剪辑的顶点处理在眼空间中发生,如图1和2中所揭示。因此,驱动器218A或218B 仅需要在照明被启用时操作。
图4的基于顶点的处理是在图形流程中的每顶点操作的内环路中。通过移除每顶点 的模型视图变换,系统将更快地处理顶点数据。基于顶点的处理对每顶点的数据进行处 理。在步骤S34的视见体积剪辑和屏幕上的视见区之后,所述处理在每像素等级上进 行。基于一多边形的每一顶点中的数据,将绘制/填充所述多边形内的所有像素。节省的计算可直接转变成功率减少。
由于用户剪辑较早进行,即,用户剪辑在对象空间中而不是在眼空间中进行,因此 有可能在将顶点坐标发送到数字信号处理器(DSP)或基于硬件的图形核心中之前,以 软件形式应用用户定义剪辑过程作为预处理,如图4中最佳可见。通过这样做,DSP或 硬件图形核心中的图形流程的复杂性减小,且有可能启用预开发图形系统中的用户剪辑 特征。顶点坐标在S117中装配且在S131中由用户定义剪辑平面剪辑。将对象中的经剪 辑顶点坐标发送到3D图形引擎220A中,以用于步骤S132处的进一步处理以变换到投 影空间中。

现在参看步骤S117的图元装配,如果图元是点,那么对象空间S112中的顶点对象 坐标是V—对象。眼空间中的顶点坐标是V—眼睛,那么
V—目艮睛-M * V—对象。
S104处对象空间中的任何输入剪辑平面为P。 S108中用于剪辑平面的模型视图变 换矩阵为Mc。那么,眼空间中的剪辑平面PJ艮睛为
Pj艮睛二Inv—Mc * P。
在步骤S114处,通过用于点的模型视图变换矩阵M来将平面P从眼空间变换到所 述点的对象空间。所述点的对象空间中的剪辑平面P—对象为
P—对象-Pj艮睛T*M。
接着,根据步骤S130或S131来在所述点的对象空间中执行剪辑。作为下文所陈述 的证明,在且仅在PJ艮睛t * V—眼睛>=0的情况下,P—对象t * ¥_对象>=0。所述证明 由以下等式界定
P—对象T * V—对象
=(P—目艮目青t * M) * V—对象
=P一眼睛t * (M * V—对象)
=P—眼睛T * VJ艮睛
其中眼空间中的点的顶点坐标V—眼睛是通过M从对象空间中的坐标转变而来的,
且由以下等式界定
V—眼睛二M * V—对象。
线段
如果图元是线,那么所述线可由端部处的两个顶点描述。在对象空间中,所述两个 顶点为V—对象1和V一对象2。为了通过模型视图变换矩阵M将所述线变换到眼空间中,
24VJ艮睛1 = M * V—对象1;且 V—眼睛2 = M * V—对象2。 S104处对象空间中的任何输入剪辑平面为P。 S108中用于剪辑平面的模型视图变 换矩阵为Mc。那么,眼空间中的剪辑平面PJ艮睛由以下等式界定-
P一目艮睛二 Inv—Mc * P。
在步骤S1M处,通过用于线的模型视图变换矩阵M来将平面P从眼空间变换到所 述线的对象空间。所述线的对象空间中的剪辑平面P一对象由以下等式界定
P—眼睛T*M。
接着,根据步骤S130或S131来在所述线的对象空间中执行剪辑。
显然,在且仅在线段完全位于眼空间中的剪辑体积内或外的情况下,所述线段才完 全位于对象空间中的剪辑体积内或外。下文陈述证明眼空间中所计算出的剪辑点是从对 象空间中所计算出的剪辑点变换而来的同一剪辑点的证据。
为了证明剪辑点在对象空间和眼空间两者中是相同的,将对象空间中的剪辑点定义 为C一对象,且将眼空间中的剪辑点定义为CJ艮睛。假定t是被剪辑到平面中的线中剪 辑点的比率。那么在对象空间中,
t—对象=P—对象t * V一对象2 / (P—对象t * V—对象2 + P—对象t * V—对象2)
且在眼空间中,
tj艮睛^ PJ艮睛T * V—眼睛2 / (P—眼睛T * V—眼睛2 + P—眼睛t * VJ艮睛2)。 对象空间中的剪辑点,
C—对象=t—对象* V—对象1 +(1 - tj(寸象)* V—对象2。 眼空间中的剪辑点,
<:_眼睛=t—眼睛*V—眼睛1 + (1 -1—眼睛)* V—眼睛2。 如果t—眼睛-L对象,那么眼空间中的剪辑点应为通过线的模型视图变换矩阵M变 换的对象空间中的剪辑点。对C—眼睛的证明由以下等式界定 C一眼睛
=tJ艮睛+Vj艮睛1 + (1 -1—眼睛)* VJ艮睛2
=t_对象* (M * V—对象1) + (1 -1—对象)* (M * V—对象2)
=M * (t—对象* V一对象1 + (1 - t—对象)* V一对象2)
=M*C—对象。
多边形
由于多边形的每一边缘均如上所述被处理为线段,因此如果上述情况对线来说是真的,那么对多边形来说也是真的。
鉴于前述内容,在常规方法与本发明之间存在三个主要差异。第一,在本发明中,顶点坐标直到刚好在步骤S132B处的投影变换之前才从对象空间变换到眼空间,或者直接转换到投影空间中。第二,在本发明中,用户定义剪辑平面是从眼空间变换到对象空间的。第三,在本发明中,剪辑是由IF (P—对象t * ¥_对象)>=0而不是IF (P—眼睛T * V_眼睛)>=0确定的。
再次参看图5A和图6,现在将详细描述三维(3D)成像装置200A。装置200A可以是移动电话或其它手持式计算装置,其具有用于许可双向有线或无线通信的通信装备(未图示),例如个人数字助理(PDA),以及具有视频能力的移动、蜂窝式或卫星电话。装置200A可以是PC、膝上型计算机或其它无线计算装置。装置200A包含处理器210和用于在屏幕上显示2D位图的显示器212。存储单元214为顶点对象坐标236、对象空间中的经剪辑顶点坐标(CV—对象)236'、剪辑平面230以及用于平面的模型视图矩阵232和用于坐标的模型视图矩阵234、投影变换矩阵240以及MVTPRJ一矩阵242提供必要的存储。存储单元214还包含体积剪辑238。存储单元214包含供所述类型的装置200A中使用的一个或一个以上合适的计算机可读存储媒体。
装置200A进一步包含程序指令216A,其具有对象空间用户定义剪辑驱动器218A或预处理级,以及3D图形应用程序模块222,例如(但不限于)具有用于玩游戏的游戏内容、模拟器、CAD、虚拟现实图形。眼空间用户定义剪辑模块224是用于顶点处理的软件,其中图1和图2所示的眼空间中的用户定义剪辑被整合到程序指令216A中以供双模式用户定义剪辑方法160中使用。然而,对于双模式操作,眼空间用户定义剪辑模块224还可以是基于硬件的,且将从216B的程序指令中去除。
现在参看图5B,三维(3D)成像装置200B描绘对象空间用户定义剪辑驱动器218B的硬件实施方案。类似于装置200A,装置200B可以是移动电话或其它手持式计算装置,其具有用于许可双向有线或无线通信的通信装备(未图示),例如个人数字助理(PDA),以及具有视频能力的移动、蜂窝式或卫星电话。装置200B可以是PC或膝上型计算机。装置200B包含处理器210和用于在屏幕上显示2D位图的显示器212,以及存储单元214。
装置200B进一步包含程序指令216B,其具有3D图形应用程序模块222 (以幻像展示),例如(但不限于)具有用于玩游戏的游戏内容、模拟器、CAD、虚拟现实图形。眼空间用户定义剪辑模块224是用于顶点处理的软件,其中图l和图2所示的眼空间中的用户定义剪辑被整合到程序指令216B中,以供双模式用户定义剪辑方法160中使用。
在硬件实施方案中,3D图形引擎220B与基于硬件的对象空间用户定义剪辑驱动器218B整合或介接。然而,对于双模式操作,眼空间用户定义剪辑模块224还可以是基于硬件的,且将从216B的程序指令中去除。
具体参看图7A,在将顶点坐标发送到3D图形引擎220A的DSP或硬件图形核心之前,用户剪辑作为预处理级或驱动器218A以软件形式较早完成。基于软件的对象空间用户定义剪辑驱动器218A包含对象空间中的顶点对象坐标240 (以幻像展示)。驱动器218A进一步包含图元装配模块242A和对象空间用户定义剪辑模块244A。图元装配模块242A包含多边形装配子模块242AA、线段装配子模块242AB、点装配子模块242AC以及平坦着色子模块242AD。图元装配模块242A包含用于实行步骤S118、 S120、 S122和S124的过程的程序指令。驱动器218A还包含3D图形引擎软件接口 246A以使驱动器218A与3D图形引擎220A介接。
具体参看图7B,在将顶点坐标发送到3D图形引擎220B的DSP或硬件图形核心中之前,用户剪辑作为预处理级或驱动器218B以硬件形式完成。基于硬件的对象空间用户定义剪辑驱动器218B包含对象空间中的顶点对象坐标240(以幻像展示)。驱动器218B进一步包含图元装配模块242B和对象空间用户定义剪辑模块244B。图元装配模块242B包含多边形装配子模块242BA、线段装配子模块242BB、点装配子模块242BC以及平坦着色子模块242BD。图元装配模块242B实行步骤S118、 S120、 S122和S124的过程。驱动器218B还包含3D图形引擎硬件接口 246B以使驱动器218B与3D图形引擎220B介接。
所属领域的技术人员将了解,根据本发明的用于在对象空间中执行用户定义剪辑的方法和装置通过避免在没有照明的情况下产生眼坐标而具有较高的性能且需要较少的功率消耗。
已出于说明和描述的目的而呈现了对本发明实施例的上述描述。不希望所述描述是详尽的或使本发明限于所揭示的精确形式,且依据上文的教示,修改和变化是可能的,或可从本发明的实践中获得修改和变化。选择并描述上述实施例是为了阐释本发明的原理及其实际应用,以使所属领域的技术人员能够在各种实施例中利用本发明,并作出适合于所预期的特定用途的各种修改。希望本发明的范围由所附权利要求书及其等效物界定。
权利要求
1.一种对象空间用户定义剪辑驱动器,其包括图元装配模块,其可操作以对对象空间中的顶点坐标进行图元装配;以及用户定义剪辑模块,其可操作以使用所述对象空间中的剪辑平面(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所述的引擎;其中所述矩阵是模型视图矩阵与投影矩阵的组合矩阵(MVTPRJ一矩阵),其中所述乘法的结果得出所述投影空间中的顶点坐标(V』ri),其由以下等式界定V_prj = CV—对象* MVTPRJ—矩阵或V_prj = V—对象* MVTPRJ一矩阵其中(3¥_对象是所述对象空间中的所述经剪辑的顶点坐标;且V—对象是对象空间中未经剪辑的顶点坐标。
37. 根据权利要求31所述的引擎;其中所述用户定义剪辑装置包括用于将眼空间中的剪辑平面(PJ艮睛)转换为所述对象空间中的剪辑平面"_对象)的装置,所述转换由以下等式界定Pj艮睛Inv—M(^P;且P—对象-P—眼睛T*M,其中P是输入剪辑平面;Mc是用于所述剪辑平面的模型视图矩阵;Inv—Mc是所述MC的逆矩阵;M是用于坐标的模型视图矩阵;T是矩阵或向量的转置;且*表示矩阵乘法。
38. 根据权利要求37所述的引擎;其中所述用户定义剪辑装置进一步包括用于在P—对象t * V一对象》0的情况下使用所述对象空间中的所述剪辑平面(P—对象)在所述对象空间中创建经剪辑顶点坐标的装置,其中P—对象是待剪辑的所述对象空间中的所述剪辑平面;T是矩阵或向量的转置;且*表示矩阵乘法。
39. —种具有程序指令的程序代码,其可由处理器执行以在照明被启用时对眼空间中的顶点坐标执行顶点坐标处理,及在照明被停用时对顶点坐标对象空间执行顶点坐标处理。
40. 根据权利要求39所述的程序代码;其中所述可操作以在所述对象空间中执行所述顶点处理的程序指令可操作以使用所述对象空间中的所述顶点坐标在所述对象空间中执行图元装配。
41. 根据权利要求40所述的程序代码;其中所述可操作以执行图元装配的程序指令包含在由所述处理器执行时可操作以选择性地对所述对象空间中的所述顶点坐标执行多边形装配、线装配和点装配中的一者的程序指令。
42. 根据权利要求39所述的程序代码;其中所述可操作以在所述眼空间中执行所述顶点处理的程序指令可操作以使用所述眼空间中的所述顶点坐标来在所述眼空间中执行图元装配。
43. 根据权利要求42所述的程序代码;其中所述可操作以在所述眼空间中执行图元装配的程序指令包含在由所述处理器执行时可操作以选择性对所述眼空间中的所述顶点坐标执行多边形装配、线装配和点装配中的一者的程序指令。
44. 根据权利要求39所述的程序代码;其中所述可操作以在所述眼空间中执行所述顶点坐标处理的程序指令包含在执行时可操作以将所述眼空间中的所述顶点坐标变换到投影空间的程序指令。
45. 根据权利要求44所述的程序代码;其中所述可操作以在所述对象空间中执行所述顶点坐标处理的程序指令包含在执行时可操作以在所述对象空间中执行组合式模型视图与投影变换。
46. 根据权利要求45所述的程序代码;其中所述可操作以执行组合式模型视图与投影变换的程序指令包含在由处理器执行时可操作以通过将一个向量乘到一矩阵来将所述对象空间中的所述顶点坐标直接变换到所述投影空间中的程序指令。
47. 根据权利要求46所述的程序代码;其中所述矩阵是模型视图矩阵与投影矩阵的组合矩阵(MVTPRJ—矩阵),其中所述乘法的结果得出所述投影空间中的顶点坐标(V_pri),其由以下等式界定V_prj = CV—对象* MVTPRJ—矩阵或V_prj = ¥_对象* MVTPRJ—矩阵其中<:¥_对象是所述对象空间中经剪辑的顶点坐标;且v一对象为所述对象空间中未经剪辑的顶点坐标。
48. 根据权利要求39所述的程序代码;其中所述可操作以在所述对象空间中执行所述顶点坐标处理的程序指令包含在执行时可操作以执行用户定义剪辑以将所述眼空间中的剪辑平面(PJ艮睛)转换为所述对象空间中的剪辑平面(P—对象)的程序指令,所述转换由以下等式界定P—Mc*P;且P—对象P—眼睛T*M其中P是输入剪辑平面;Mc是用于所述剪辑平面的模型视图矩阵;Im^Mc是所述MC的逆矩阵;M是用于坐标的模型视图矩阵;T是矩阵或向量的转置;且*表示矩阵乘法。
49. 根据权利要求48所述的程序代码;其中所述可操作以执行所述用户定义剪辑的程序指令包含在执行时在P—对象t * v一对象^ 0的情况下进行剪辑的程序指令,其中p—对象是待剪辑的所述对象空间中的所述剪辑平面;V—对象是所述对象空间中的所述顶点坐标;T是矩阵或向量的转置;且*表示矩阵乘法。
50. —种3D成像装置,其包括确定装置,其用于确定照明功能被启用还是停用;眼空间处理装置,其用于在所述照明功能被启用时处理眼空间中的顶点坐标;以及对象空间处理装置,其用于在所述照明功能被停用时处理对象空间中的顶点坐标。
51. 根据权利要求50所述的装置;其中所述对象空间处理装置包含用于使用所述对象空间中的所述顶点坐标在所述对象空间中进行图元装配的装置。
52. 根据权利要求51所述的装置;其中所述图元装配装置包含用于选择性地对所述对象空间中的所述顶点坐标执行多边形装配、线装配和点装配中的一者的装置。
53. 根据权利要求50所述的装置;其中所述眼空间处理装置包含用于使用所述眼空间 中的所述顶点坐标在所述眼空间中进行图元装配的装置。
54. 根据权利要求53所述的装置;其中所述眼空间图元装配装置包含用于选择性地对所述眼空间中的所述顶点坐标执行多边形装配、线装配和点装配中的一者的装置。
55. 根据权利要求50所述的装置;其中所述眼空间处理装置包含用于将所述眼空间中的所述顶点坐标变换到投影空间的装置。
56. 根据权利要求55所述的装置;其中所述对象空间处理装置包含用于对所述对象空间中的所述顶点坐标进行组合式模型视图与投影变换以将其变换到所述投影空间 的装置。
57. 根据权利要求56所述的装置;其中所述组合式模型视图与投影变换装置包含用于 通过将一个向量乘到一矩阵来将所述对象空间中的所述顶点坐标直接变换到所述 投影空间中的装置。
58. 根据权利要求57所述的装置;其中所述矩阵是模型视图矩阵与投影矩阵的组合矩 阵(MVTPRJ—矩阵),且所述乘法的结果得出所述投影空间中的顶点坐标(V_pri), 其由以下等式界定V_prj = CV—对象* MVTPRJ—矩阵或 V_pri = V—对象MVTPRJ—矩阵其中CV—对象是所述对象空间中经剪辑的顶点坐标;且V—对象是未经剪辑的顶 点坐标。
59. 根据权利要求50所述的装置;其中所述对象空间处理装置包含用于进行用户定义 剪辑以将所述眼空间中的剪辑平面(PJ艮睛)转换为所述对象空间中的剪辑平面(P— 对象)的装置,所述转换由以下等式界定-P眼睛-Inv Mc*P;且P—对象-P—眼睛T*M 其中P是输入剪辑平面;Mc是用于所述剪辑平面的模型视图矩阵;Inv—Mc是所述MC的逆矩阵;M是用于坐标的模型视图矩阵;T是矩阵或向量的转置;且*表示矩阵乘法。
60. 根据权利要求59所述的装置;其中所述用户定义剪辑装置包含用于在P一对象t * 丫_对象>=0的情况下进行剪辑的装置,其中p—对象是待剪辑的所述对象空间中的所述剪辑平面;V—对象是所述对象空间中的所述顶点坐标;T是矩阵或向量的转置;且*表 示矩阵乘法。
61. 根据权利要求50所述的装置;其中所述装置包括以下各项中的一者具有视频能 力的蜂窝式电话、具有视频能力的卫星电话、个人计算机、膝上型计算机、具有视 频能力的无线通信或计算装置,以及个人数字助理。
62. —种用于处理对象空间用户定义剪辑的方法,其包括以下步骤将眼空间中的剪辑 平面(P一眼睛)转换为对象空间中的剪辑平面(P一对象);以及进行用户定义剪辑, 以使用所述对象空间中的所述剪辑平面(P—对象)和所述对象空间中的顶点坐标在 所述对象空间中创建经剪辑的顶点坐标。
63. 根据权利要求62所述的方法;其进一步包括以下步骤将所述对象空间中的所述 经剪辑的顶点坐标和所述对象空间中未经剪辑的顶点坐标直接变换到投影空间中。
64. —种用于用户定义剪辑的双模式处理的方法,其包括以下步骤确定照明功能被启 用还是被停用;当所述照明功能被停用时,执行具有对象空间用户定义剪辑的对象 空间顶点坐标处理,以在对象空间中创建经剪辑的顶点坐标;以及当所述照明功能 被启用时,执行具有眼空间用户定义剪辑的眼空间顶点坐标处理,以在眼空间中创 建经剪辑的顶点坐标。
65. 根据权利要求64所述的方法;其中所述对象空间顶点坐标处理步骤进一步包括以 下步骤将所述对象空间中的所述经剪辑顶点坐标和所述对象空间中未经剪辑的顶点坐标直接变换到投影空间中。
66.根据权利要求64所述的方法;其中所述眼空间顶点坐标处理步骤进一步包括以下步骤将所述眼空间中的所述经剪辑顶点坐标和所述眼空间中未经剪辑的顶点坐标 直接变换到投影空间中。
全文摘要
一种用于在对象空间中执行和处理用户定义剪辑以减少剪辑操作所需的计算的数目的方法和装置。所述方法和装置还将顶点坐标的模型视图变换与投影变换进行组合。对象空间中的用户定义剪辑通过避免在没有照明的情况下产生眼坐标来提供较高的性能和较少的功率消耗。所述装置包含驱动器,其用于所述对象空间中的所述用户定义剪辑,以在照明功能被停用时在对象空间中且在所述照明功能被启用时在眼空间中执行双模式用户定义剪辑。
文档编号G06T15/30GK101553847SQ200780033161
公开日2009年10月7日 申请日期2007年9月12日 优先权日2006年9月12日
发明者令军·弗兰克·陈, 宁 毕, 林 陈 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1