专利名称:以动态精确度调整3d绘图管线的方法和装置的制作方法
技术领域:
本发明一般地涉及三维(3D)绘图,更具体而言,涉及用于在资源受限设备上以动态精确度调整3D绘图管线的方法和装置。
背景技术:
从令人着迷的电影特效,到医学成像、电子游戏和更多的领域,3D图形所带来的冲击不亚于一场革命。3D图形领域广泛而复杂,除可用于娱乐产业(包括电影和游戏)之外,3D图形技术也在计算机辅助设计(CAD)上为工业设计带来了巨大的飞跃。制造商可以在不使用任何材料设计的情况下“构造”出它们的产品。用来创建3D图形的过程被称为3D管线(pipeline)。因为3D图形渲染本身的有序特性,整个处理过程被拆分成不同的步骤,有时被称作阶段(Stage)。概括地讲,一个常规的3D绘图管线顺序拆分为四个阶段:场景管理,几何图元运算,三角形设置和渲染(rendering)。图1示出3D绘图管线的示意图。场景管理可以包括静态和动态几何物件资料结构的建立,摄影机资料的建立,遮蔽物的剪切以及多层次精致度模型(Level of Detail,L0D)。几何图元运算可以包括从模型空间到世界空间的变换,从世界空间到视图空间的变换,投影变换,背面剔除,光照处理,到剪裁空间的变换以及到二维(2D)屏幕空间的变换,等等。三角形设置包括斜率/增量计算,扫描线换算,等等。在几何图元运算之后,顶点资料已经被正确地放入3D立体空间中。通过三角形设置,可以将像素资料也放到里面。从屏幕画面来看,构建三角形也就是产生这个三角形外围各个像素的坐标。渲染包括着色、纹理、高光/雾计算、Alpha透明度测试、深度缓存等等。由于3D图形绘制的各个阶段都涉及大量数据处理,因此在硬件运算能力受限的移动设备上,尤其是在没有浮点数运算能力的平台上,要实现3D绘图是非常困难的。通常,人们能够接受的图形处理速率是每秒产生并显示至少8帧图像。要想达到这样的处理速率,一般要求设备平台满足如下条件:(I)平台需要具有用于3D图形处理的图形处理单元(GPU),从而能够足够快地绘制3D图像;(2)由于3D图像的渲染过程需要使用大量的浮点数运算,因此平台硬件需要具有浮点数运算能力。然而,对于不具有GPU甚至不提供硬件浮点数运算能力的资源受限平台而言,则难以实现高效的3D绘图管线。所谓“资源受限平台”,其被定义为不具有GPU,仅具有单一CPU并且该CPU不支持浮点数运算的设备平台。对于资源受限平台,一般是用定点数来取代浮点数以加快计算的过程。然而,定点数计算存在一些局限。例如,在从世界坐标系转换到剪裁坐标系的过程中,由于3D世界大小的不同,转换过程中可能会因为精确度不足而导致计算的错误。这些计算错误会影响最终的视觉效果,使最后生成的图像产生抖动或扭曲的现象。
因此,存在对于能够在3D绘图过程中动态调整使用定点数模拟浮点数运算的精确度的需求。
发明内容
鉴于上述问题,本发明提出一种用于在资源受限设备上以动态精确度调整3D绘图管线的方法和装置。举例来说,在一个实施例中,该方法可以根据例如I帧画面中3D场景的大小(三维摄影机或眼睛所能看到的范围)来动态调整使用定点数模拟浮点数运算的精确度。根据本发明第一方面,提供了一种用于进行3D绘图的方法,该方法的特征在于:在3D绘图管线中,用定点数模拟浮点数运算,并且其中,用定点数模拟浮点数运算的精确度被动态调整。在一个实施例中,在将3D世界坐标转换到2D屏幕坐标的过程中,根据摄影机所能看到的3D世界的大小,调整计算所需的精确度。在另一实施例中,在将3D世界坐标转换到2D屏幕坐标的过程中,对于各种物件,使用不同的精确度进行计算。例如,使用高精确度进行计算的内容可以是如下各项中的一个或多个:坐标转换矩阵、光源参数和摄影机参数。在又一实施例中,在变换到剪裁坐标的过程中,根据坐标转换数值的范围,调整计算所需的精确度。在又一实施例中,在贴图像素运算的过程中,根据贴图的大小,调整贴图UV内插运算所需的精确度。上述各精确度调整方式可以分别或结合使用。根据本发明第二方面,提供了一种用于进行3D绘图的装置,所述装置包括:3D绘图装置,用于执行3D绘图,其中,在3D绘图管线中,用定点数模拟浮点数运算;以及动态精确度调整装置,用于动态调整用定点数模拟浮点数运算的精确度。根据本发明第三方面,提供了一种进行3D绘图的终端设备,所述终端设备包括上述用于进行3D绘图的装置。例如,该终端设备可以是移动设备、电视机、媒体播放器、个人电脑、游戏平台以及任意能够绘制和显示3D图形的设备。在一个实施例中,终端设备可以是资源受限设备,该资源受限设备不具有GPU并且仅支持定点数运算。在不依赖于CPU浮点数运算能力的情况下,比起一般使用定点数计算三维坐标投影的竞争技术,本发明能够更精确地计算物件前后位置排序,从而得到更精确的深度值。在使用定点数模拟浮点数运算的资源受限平台上,本发明可以产生误差更低的3D绘图结果,并且降低图像因为精确度不足所导致的例如不正确插入或刺出其他相邻物件的视觉瑕疵。从下面结合附图的详细描述中,可以看出本发明的其他特征和优点。注意,本发明并不限于图中所示的示例或者任何具体的实施例。
结合附图,从下面对本发明实施例的详细描述,将更好地理解本发明,附图中类似的参考标注指示类似的部分,其中:图1是3D绘图管线的示意图;图2是示出根据本发明的动态精确度调整3D绘图管线的终端设备200的内部结构的框图;图3是用于说明定点数模拟浮点数运算的示意图;以及图4是根据本发明一个实施例,用于详细说明图2所示3D绘图装置和动态精确度调整装置的操作过程的示意图。
具体实施例方式如上所述,常规的3D绘图管线一般包括四个阶段:场景管理,几何图元运算,三角形设置和渲染。在各个阶段中,由于涉及大量数据计算,因此通常要求终端设备具有用于图形计算的GPU并且具备浮点数运算能力。然而,对于仅包含单一 CPU并且CPU仅具备定点数运算能力的资源受限设备而言,3D绘图变得很困难。本发明所提出的方案在3D管线的各个阶段用定点数模拟浮点数运算,并且根据例如3D世界大小等参数动态调整在3D绘图管线的各个阶段中定点数模拟浮点数运算的精确度。图2是示出可以实现本发明的以动态精确度调整3D绘图管线的终端设备200的内部结构的框图。设备200可以是任何具有3D绘图需求的终端设备,例如移动电话、电视机、个人电脑、游戏平台等等。如图2所示,设备200包括3D绘图装置201、动态精确度调整装置202和显示单元203。这里仅仅示出设备200的与本发明的技术相关的部件,其他常规部件被省略。在一个实施例中,设备200可以是资源受限设备,S卩,设备200的CPU仅仅具有定点数运算能力,并且不包含用于图形计算的GPU。3D绘图装置201的工作过程可以参考已知的3D管线(参见图1)。在3D绘图过程中,动态精确度调整装置202可以动态调整3D绘图装置201在执行3D管线过程中用定点数模拟浮点数运算的精确度。所产生的3D图形经由显示单元203被显示在设备200的屏幕上。图3是用于说明定点数模拟浮点数运算的示意图。如图3所示,对于32比特(bit)的整数值,一般定点数被分成m比特+η比特,其中m+n = 31,留出I比特表示正负号。m表示大于1.0的整数部分,η表示小于I的小数点后部分。一般通常使用m = 16,η = 15的表示方法。例如,浮点数0.5用定点数来表示时,就是16384。根据本发明,由于在资源受限平台上,CPU仅具有定点数运算能力,因此在3D绘图过程中通过上述方法用定点数来模拟浮点数进行运算。根据本发明,在3D管线的各个阶段的计算中,可以根据例如3D世界大小等参数对计算精确度进行动态调整。图4详细示出图2所示3D绘图装置201和动态精确度调整装置202的操作过程的示意图。在图4所示实施例中,3D绘图装置201例如利用本领域所公知的3D绘图管线来进行3D图形绘制。就是说,3D绘图装置201按照4个阶段进行3D绘图,S卩,场景管理,几何图元运算,三角形设置和渲染。在一个实施例中,动态精确度调整装置202可以对各个阶段中的运算所需的精确度进行动态调整。例如,下面给出动态调整精确度的几个示例。注意,这些示例可以分开或结合使用。并且,本发明的原理并不局限于这些示例。本领域技术人员可以设想,在3D管线的各个阶段所包含的各种运算中,可以根据其他参数对运算所需的精确度进行调整。在一个示例中,第一调整装置2021在将3D世界坐标转换到2D屏幕坐标的过程中,可以根据摄影机所能看到的3D世界范围的大小,计算需要的最小精确度。例如,当摄影机所能看到的3D世界范围为5-1000时,可以使用10比特的整数部分,就足以表示所有物件顶点的3D坐标。因此,此时可以设置m = 10, η = 21。
又例如,第二调整装置2022在将3D世界坐标转换到2D屏幕坐标的过程中,可以针对不同物件设置不同的精确度。使用高精确度计算的内容例如可以包括:坐标转换矩阵(transformation matrix),光源参数(light parameters)以及摄影机参数(cameraparameters)。而对于其他内容则可以使用相对较低的精确度。使用高精确度计算的内容并不局限于上述示例。本领域技术人员可以根据实际需求进行设计。在另一示例中,第三调整装置2023在转换到剪裁坐标系时,可以根据目前坐标转换数值的范围来决定使用多少比特的整数以及小数位数。再比如,第四调整装置2024在进行贴图像素运算时,可以根据贴图的大小来调整贴图Uv内插运算所需要的精确度。以128X128的贴图为例,小数位数η可以被设置为7。如果有开启平滑化的运算,因为必须计算0.5个像素的大小,则可以改为η = 8来进行计如上所述,本发明的技术能够在资源受限平台上通过定点数模拟浮点数运算来进行3D绘图,并且根据例如3D世界大小等参数对运算精确度进行动态调整。利用本发明,可以更精确地计算物件前后位置排序,从而得到更精确的深度值,并且降低图像因为精确度不足所导致的视觉瑕疵。上面已经参考附图描述了根据本发明的具体实施例。但是,本发明并不限于图中示出的特定配置和处理。并且,为了简明起见,这里省略对已知方法技术的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神之后,作出各种改变、修改和添加,或者改变步骤之间的顺序。本发明的元素可以实现为硬件、软件、固件或者它们的组合,并且可以用在它们的系统、子系统、部件或者子部件中。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。本发明可以以其他的具体形式实现,而不脱离其精神和本质特征。例如,特定实施例中所描述的算法可以被修改,而系统体系结构并不脱离本发明的基本精神。因此,当前的实施例在所有方面都被看作是示例性的而非限定性的,本发明的范围由所附权利要求而非上述描述定义,并且,落入权利要求的含义和等同物的范围内的全部改变从而都被包括在本发明的范围之中。
权利要求
1.一种用于进行3D绘图的方法,该方法的特征在于: 在3D绘图管线中,用定点数模拟浮点数运算,并且 其中,用定点数模拟浮点数运算的精确度被动态调整。
2.如权利要求1所述的方法,其中, 在将3D世界坐标转换到2D屏幕坐标的过程中,根据摄影机所能看到的3D世界的大小,调整计算所需的精确度。
3.如权利要求1所述的方法,其中, 在将3D世界坐标转换到2D屏幕坐标的过程中,对于各种物件,使用不同的精确度进行计算。
4.如权利要求3所述的方法,其中,使用高精确度进行计算的内容是如下各项中的一个或多个:坐标转换矩阵、光源参数和摄影机参数。
5.如权利要求1所述的方法,其中, 在变换到剪裁坐标的过程中,根据坐标转换数值的范围,调整计算所需的精确度。
6.如权利要求1所述的方法,其中, 在贴图像素运算的过程中,根据贴图的大小,调整贴图UV内插运算所需的精确度。
7.一种用于进行3D绘图的装置,所述装置包括: 3D绘图装置,用于执行3D绘图,其中,在3D绘图管线中,用定点数模拟浮点数运算;以及 动态精确度调整装置,用于动态调整用定点数模拟浮点数运算的精确度。
8.如权利要求7所述的装置,其中,所述动态精确度调整装置包括: 第一调整装置,用于在将3D世界坐标转换到2D屏幕坐标的过程中,根据摄影机所能看到的3D世界的大小,调整计算所需的精确度。
9.如权利要求7所述的装置,其中,所述动态精确度调整装置包括: 第二调整装置,用于在将3D世界坐标转换到2D屏幕坐标的过程中,针对不同物件,确定不同的精确度进行计算。
10.如权利要求9所述的装置,其中,使用高精确度进行计算的内容是如下各项中的一个或多个:坐标转换矩阵、光源参数和摄影机参数。
11.如权利要求7所述的装置,其中,所述动态精确度调整装置包括: 第三调整装置,用于在变换到剪裁坐标的过程中,根据坐标转换数值的范围,调整计算所需的精确度。
12.如权利要求7所述的装置,其中,所述动态精确度调整装置包括: 第四调整装置,用于在贴图像素运算的过程中,根据贴图的大小,调整贴图UV内插运算所需的精确度。
13.一种进行3D绘图的终端设备,包括: 如权利要求7-12中任意一个所述的用于进行3D绘图的装置。
14.如权利要求13所述的终端设备,其中,所述终端设备是资源受限设备,该资源受限设备不具有图形处理单元GPU并且仅支持定点数运算。
全文摘要
本发明提出了以动态精确度调整3D绘图管线的方法和装置。在一个实施例中,本发明所提供的3D绘图方法的特征在于在3D绘图管线中,用定点数模拟浮点数运算,并且其中,用定点数模拟浮点数运算的精确度被动态调整。本发明的技术可以被应用到不具有GPU且仅具备定点数运算能力的资源受限设备。利用本发明,可以更精确地计算物件前后位置排序,从而得到更精确的深度值,并且降低图像因为精确度不足所导致的视觉瑕疵。
文档编号G06T17/00GK103164869SQ20111042586
公开日2013年6月19日 申请日期2011年12月9日 优先权日2011年12月9日
发明者江国昌, 叶思义 申请人:金耀有限公司