通过预先排序以增进三维空间电脑绘图效果的方法技术

技术编号:2950625 阅读:185 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开一种通过预先排序以增进三维空间电脑绘图效果的方法,该排序动作可将深度值较小的显示列表或显示图元置于一再排序区域的前端,而将深度值较大的显示列表或显示图元置于该再排序区域的后端。当排序完成后,本方法进入一Z缓冲预先测试程序。因为该显示列表或显示图元已预先依深度值由小至大而完成排序,因此在执行该Z缓冲预先测试程序时将大幅降低无效像素存取存储器的动作,从而节省系统资源及加快图像显示的执行效率。(*该技术在2021年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术是关于一种增进三维空间电脑绘图效果的方法,特别是关于一种依据景深值的大小预先排序显示列表或显示图元,再经由一Z缓冲(Z-buffer)预先测试程序以消除无效像素的方法。如附图说明图1所示,一熟知的三维空间电脑绘图显示系统包含一主控端接口11、一显示存储器12、一存储器控制器13、一3D绘图控制器14、一屏幕控制器15及一屏幕16。该主控端接口11,例如一熟知的AGP总线,用于接受一中央处理器(图未示出)所发出的控制信号及作为该中央处理器与该3D绘图控制器14的图像数据双向传输的接口。该3D绘图控制器14为整个绘图显示系统的中心所在,负责产生该电脑绘图显示系统所需的三维空间图像。该3D绘图控制器14利用一存储器控制器13控制该显示存储器12的读写,并利用一屏幕控制器15控制该屏幕16的显示。该显示存储器12用于储存显示于该屏幕16的图像数据。由于三维空间电脑绘图在屏幕上的图像数据均由数个对象组合而成,而有时候该数个对象会形成重叠的情形。在透明度着色处理,即α混合着色处理时,所有重叠在同一座标的对象均被显示。在非透明度着色处理时,仅有重叠于最上方的对象,即最靠近人眼的对象将被显示出来,其他重叠于下方的对象将不被显示。图2是一熟知的三维空间电脑绘图的Z缓冲预先测试程序的流程图。该Z缓冲预先测试程序是用以消除该电脑绘图系统的无效像素,且利用该3D绘图控制器14内的一Z缓冲储存所有已输入像素的景深值中的最小者Zb。景深值越小,代表该对象越接近人眼,亦即为重叠对象的较上方者。该流程于步骤21中启动,即进入一着色处理。在步骤22中,该流程读取输入像素的景深值Zi及Z缓冲的景深值Zb。在步骤23中,检查Zb和Zi的大小而决定是否要显示或舍弃该输入像素。若Zb<Zi,即代表该输入像素位于对象重叠的下方,则进入步骤24。在步骤24,该输入像素被舍弃,且重覆步骤22。若在步骤23中Zb>Zi,代表该输入像素位于重叠的上方,则进入步骤25。在步骤25中,该流程更新Z缓冲的深度值为该输入像素的深度值,并进行其他有效性测试,例如一剪力测试及模版测试等。若该像素通过这些有效性测试,则予以显示,并于步骤26结束。但上述过程即使在步骤23中发现一无效像素,而在步骤25更新Z缓冲的深度值。该电脑绘图显示系统仍然已花费了一次以上的存储器存取动作,无形中已消耗了不少系统的资源及执行效率。本专利技术的目的在于解决先前技术因存取无效像素而浪费系统资源的缺点。为了达到上述目的,本专利技术提出一种,该方法将一显示帧内的数个显示列表依据是否执行一透明着色处理而区分为静态区域及再排序区域。在再排序区域内的显示列表依据一代表该显示列表内的所有显示图元的深度值的一指标进行排序的动作。该排序动作可将指标值较小的显示图元置于该再排序区域的前端,而将指标值较大的显示图元置于该再排序区域的后端。在静态区域内的显示列表则不进行排序的动作。当排序完成后,本流程将进入一Z缓冲预先测试程序。因为该显示列表已预先依代表该深度值的指标由小至大而完成排序,因此在执行该Z缓冲预先测试程序时,将大幅降低无效像素存取存储器的动作,而得以节省系统资源及加快图像显示的执行效率。本专利技术主要包含步骤(a)~(f)。在步骤(a)中,读取一显示列表内的所有显示图元的深度值,并以一指标代表所读取的深度值。在步骤(b)中,检查该显示列表是否为该显示帧的最后一项或该显示列表之后为一静态区域。在步骤(c)中,若步骤(b)的答案是否定的,则将该指标储存于该再排序区域,且进入步骤(a)。在步骤(d)中,若步骤(b)的答案是肯定的,则依据该指标排序该数个显示列表,且储存该排序后的显示列表。在步骤(e)中,检查该显示列表是否为该显示帧的最后一项,在步骤(f)中,若步骤(e)的答案是否定的,则进入步骤(a);若步骤(e)的答案是肯定的,则结束本方法。本专利技术的另一方法是将该显示帧的图像数据直接以数个显示图元组合而成。因为该显示列表内的所有显示图元的深度值可能不相等,因此该指标只能近似该显示列表内所有显示图元的深度值,却仍然存有误差。若直接以该数个显示图元组合成该显示帧,则无须再计算一指标作为参数,因而可以避免误差的产生。但直接使用该数个显示图元组合成该显示帧的图像数据的缺点为硬件花费较大,相对地成本亦较高。本专利技术若以数个显示图元组合该显示帧的图像数据,则主要包含步骤(a)~(f)。在步骤(a)中,读取一显示图元的深度值。在步骤(b)中,检查该显示图元是否为该显示帧的最后一项或该显示图元之后为一静态区域。在步骤(c)中,若步骤(b)的答案是否定的,则将该深度值储存于该再排序区域,且进入步骤(a),在步骤(d)中,若步骤(b)的答案是肯定的,则依据该深度值排序该数个显示图元,且储存该排序后的显示图元。在步骤(e)中,检查该显示图元是否为该显示帧的最后一项。在步骤(f)中,若步骤(e)的答案是否定的,则进入步骤(a);若步骤(e)的答案是肯定的,则结束本方法。本专利技术的方法可用软件或硬件来实现,在此并未作任何限制,因本专利技术的结构简单且运算少,因此无论用什么方式予以实现,同样具有前述相同的优点。本专利技术将依照附图来说明,其中图1是一熟知的三维空间电脑绘图显示系统的结构图;图2是一熟知的Z缓冲预先测试程序的流程图;图3是一个三维空间电脑绘图的数个对象重叠的示意图;图4是根据本专利技术的显示列表组合成一显示帧的示意图;图5是根据本专利技术的第一实施例的流程图;及图6是根据本专利技术的第二实施例的流程图。图3是一个三维空间电脑绘图的数个对象重叠的示意图。就一观察点31所注意到的一视线35而言,将同时观察到三个对象32、33及34,且这三个对象将以重叠的方式显现。若将深度值以0至1的区间表示,则对象32因最靠近观察点31而具有最小的景深值,而对象33因最远离观察点31而具有最大的景深值。在透明度着色处理时,这三个对象均被显示。在非透明度着色处理时,仅有重叠于最上方的对象32被显示出来,而其他重叠于下方的对象33及34将不被显示。因为对象33及34不被显示,因此被称为隐藏面,且该隐藏面所包含的像素被称为无效像素。如前所述,要提高三维空间电脑绘图效果的方法,即事先清除隐藏面或该隐藏面所包含的无效像素,而不使其进入着色处理,由此节省许多不必要的存储器存取动作,在目前的三维空间电脑绘图中,每一个对象均由至少一个显示列表所组成,各该显示列表均具有不同的特征,例如不同的纹理等。该数个显示列表又可由数个显示图元,例如多边形所组成。此外,该显示图元是由数个输入像素所组成。因此我们可以将整个显示帧的图像数据以数个显示列表的组合而表示。图4是将一显示帧40的图像数据以数个显示列表43组合的示意图,其中该数个显示列表被区分为数个再排序区域41及静态区域42。该静态区域42执行前述的透明度着色处理,该再排序区域41为执行非透明度着色处理。图1所示的3D绘图控制器14会接受来自该主控端接口11所传来的数据,以分辨是否执行透明度着色处理。图5是根据本专利技术的第一实施例的流程图。在步骤51,本专利技术启动,即进入着色处理。在步骤52,读取一显示列表内的所有显示图元的深度值。我们可以计算所读取的深度值以产生一指标,该指标例如为所有已读取的深度值的平均值、最大值或本文档来自技高网...

【技术保护点】
一种通过预先排序以增进三维空间电脑绘图效果的方法,该方法将一显示帧内的数个显示列表依据是否执行一透明度着色处理而区分为静态区域及再排序区域,该方法包括下列步骤:(a)读取一显示列表内的所有显示图元的深度值,并以一指标代表所读取的深度值; (b)检查该显示列表是否为该显示帧的最后一项或该显示列表之后为一静态区域;(c)若步骤(b)的答案是否定的,则将该指标储存于该再排序区域,且进入步骤(a);(d)若步骤(b)的答案是肯定的,则依据该指标排序该数个显示列表,且储存 该排序后的显示列表;(e)检查该显示列表是否为该显示帧的最后一项;及(f)若步骤(e)的答案是否定的,则进入步骤(a);若步骤(e)的答案是肯定的,则结束本方法。

【技术特征摘要】

【专利技术属性】
技术研发人员:叶国炜
申请(专利权)人:矽统科技股份有限公司
类型:发明
国别省市:71[中国|台湾]

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

1
相关领域技术
  • 暂无相关专利