CN100342403C - 使用图案阴影来产生阴影效果的方法与装置 - Google Patents
使用图案阴影来产生阴影效果的方法与装置 Download PDFInfo
- Publication number
- CN100342403C CN100342403C CNB2004100952966A CN200410095296A CN100342403C CN 100342403 C CN100342403 C CN 100342403C CN B2004100952966 A CNB2004100952966 A CN B2004100952966A CN 200410095296 A CN200410095296 A CN 200410095296A CN 100342403 C CN100342403 C CN 100342403C
- Authority
- CN
- China
- Prior art keywords
- look
- brick
- depth
- buffer zone
- shade
- 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 title claims abstract description 37
- 230000000694 effects Effects 0.000 title claims abstract description 17
- 239000000872 buffer Substances 0.000 claims abstract description 109
- 239000011449 brick Substances 0.000 claims description 111
- 230000006835 compression Effects 0.000 claims description 32
- 238000007906 compression Methods 0.000 claims description 32
- 230000012447 hatching Effects 0.000 claims description 15
- 238000012360 testing method Methods 0.000 claims description 11
- 230000003247 decreasing effect Effects 0.000 claims description 8
- 238000009792 diffusion process Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 11
- 238000000465 moulding Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 9
- 230000000007 visual effect Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 235000013399 edible fruits Nutrition 0.000 description 4
- 239000000463 material Substances 0.000 description 4
- 238000010420 art technique Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000005286 illumination Methods 0.000 description 2
- 238000013102 re-test Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 238000002203 pretreatment Methods 0.000 description 1
- NHDHVHZZCFYRSB-UHFFFAOYSA-N pyriproxyfen Chemical compound C=1C=CC=NC=1OC(C)COC(C=C1)=CC=C1OC1=CC=CC=C1 NHDHVHZZCFYRSB-UHFFFAOYSA-N 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/60—Shadow generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本发明所揭示的电脑绘图系统是被设置来以图案阴影方法产生阴影效果,其依据压缩与未压缩深度资料缓冲区来使用压缩与未压缩的图案缓冲区的组合。未压缩图案缓冲区能够储存相应于各像素的图案阴影资料,并且压缩图案缓冲区能储存相应于像素群组的图案阴影资料。
Description
技术领域
本发明是关于一种电脑绘图系统,特别是关于一种用图案阴影(shadow volume)方法来产生阴影效果的方法与装置。
背景技术
就一般所知,三维电脑绘图与三维物件的二维影像的产生或彩现(rendering)有关,以显示或呈现在如阴极射线管或液晶显示的显示装置或监视器上。而物件可以是简单的几何造型(geometry primitive),例如点、线段、三角形或多边形。更复杂的物件可以用呈现一连串相连的共平面多边形(planar polygons)来彩现在一显示装置上,例如呈现一连串相连的共平面三角形。所有的几何单元最终都可以被描述为一个顶点或一组顶点的集合的形式,例如以座标(x,y,z)来定义一个点,如线段的端点或多边形的一个角落。
为了产生用来将三维造型的二维投射呈现显示在电脑萤幕或其他显示装置上的资料集合,这些造型的顶点被以一连串的操作或图形彩现管线(graphics-rendering pipeline)的处理阶段来处理。一般的管线为一序列串连的处理单元或阶段,在管线中前一个阶段的输出被做为下一个阶段的输入。在一个绘图处理器的处理内容中,这些阶段包含有每一顶点作业(per-vertex operations)、图元配置作业(primitive assemblyoperations)、材质配置运算(texture assembly operations)、图形描绘运算(rasterization operations)以及资料分段运算(fragmentoperations)。
在典型的图形显示系统中,一个影像资料库(如命令列)所储存的可以是画面中物件的描述,这些物件被以数个多边形来描述,就像以小磁砖来涵盖墙面一样,以这些多边形来涵盖物件的表面。每一个多边形被以一列的顶点座标(在模型座标中的X,Y,Z)与一些表面性质的底材(material)规格(如颜色、材质、亮度等等)来描述,也可包括在每一个顶点对表面的法线向量。对于有复杂曲线表面的三维物件,则多边形一般为三角形或四边形,其中后者能被再分解为两个三角形。
一个转换引擎(transformation engine)能够从使用者所输入的选择视角来转换物件座标。另外,使用者也可能指定视野范围、所要产生的影像大小与视野后端来随意包含或去除背景。
一旦视觉区(viewing area)被选择,割截逻辑(clipping logic)会消除在视觉区外的多边形(如三角形),并割截部份在视觉内及部份在视觉区外的多边形。这些被割截的多边形将相应于视觉区的边以新的边来对应多边形在视觉区内的部份,然后多边形的顶点会被以相应于视景窗(viewing screen)的座标(以X,Y座标)伴随着每个顶点的相关深度(Z座标)送到下个阶段。在一个典型的系统中,一光照模组(lighting model)在考量一光源下将被加以应用,然后具有颜色值的多边形会被送至描绘器(rasterizer)。
描绘器是对每一个多边形决定哪些像素是座落在多边形,并且尝试将相关的颜色值与深度(Z值)写入图幅缓冲区(frame buffer)表面。描绘器会以一个个像素的深度值(Z)来对被处理的多边型深度值(Z值)做比较,被比较的深度值可能已经被写入图幅缓冲区中,如果新的多边型像素的深度值较小,表示是在已被写入图幅缓冲区的多边形之前,因此在图幅缓冲区的值将被新值所取代,这是因为新的多边型会遮蔽先前处理的多边形并且被写入图幅缓冲区。这个过程会一直被重复直到所有的多边形都被描绘完成,此时,影像控制器(video controller)会将图幅缓冲区的内容依描绘次序以一次一条扫瞄线显示于显示器上。
依据所提供的一般背景,在图1中所显示的是电脑绘图系统中绘图管线的一些元件的功能流程示意图。由于这些在绘图管线中的元件会因为系统的不同而有所不同,也因此需要以不同的方式说明,就所知,电脑主机10(或运作于电脑主机的绘图应用程式设计界面API)可以产生一命令列12(command list),此命令列包含一连串绘图命令与用于在绘图显示器上彩现(render)一个“环境”的资料。在绘图管线中的元件是以在命令列12中的资料与命令来绘出在绘图显示器中的视框(screen)。
在这样的考量下,解析器14可以从命令列12中撷取资料并透过资料“解析”来解译命令并顺着(或进入)绘图管线传递定义绘图造型的资料。由于这样的考量,绘图造型可以用位置资料(如x,y,z与w座标)加上光照与材质资讯来定义,每一个造型的所有资讯可以被解析器14由命令列12中撷取出来,并且传递给顶点阴影器(vertex shader 16)。在已知技术中,顶点阴影器可以执行许多撷取自命令列的绘图资料转换。考量于此,资料可以由世界座标(World coordinates)转换为模型视景座标(Model View coordinates)、投影座标(Projection coordinates)以及最终的视框座标(Screen coordinates)。这些功能性的处理是由已知顶点阴影器16来执行,所以不需要更进一步在此描述。在这之后,绘图资料被传递到描绘器18如以上概述被运作。
之后,Z测试20被用于在被运作的造型中的每一个像素。由已知技术可知,比较目前的Z值(如目前造型的一个指定像素的Z值)与相应目前像素位置所储存的Z值来执行Z测试。被储存的Z值提供先前被绘出的造型在指定像素位置的深度值,如果目前的Z值表示其深度比被储存的深度值更接近收视者的眼睛,则目前的Z值将取代被储存的Z值,并且目前的绘图资讯将取代在图幅缓冲区相对像素位置的色彩资讯(由像素阴影器(pixel shader)所决定)。如果目前Z值并未比被储存的Z值更接近目前视点(viewpoint),则图幅缓冲区与Z缓冲区(z-buffer)内容都不需要被取代,先前被绘出的像素会被判定在目前像素之前。
另外,对那些在造型内被绘出并被决定是比先前像素更接近视点的像素而言,相关的资讯是被传递到像素阴影器22,由像素阴影器22来决定那些被决定是在更接近视点的造型的各像素的色彩资讯。色彩资讯包含像素是否是在阴影内,由已知技术可得知,可利用图案阴影来决定成为阴影的区域。
参考图2,所示的图示为在电脑绘图系统产生阴影效果的图案阴影方法。在已知技术中,图案阴影34是针对一特定光源30定义了在一个特定遮蔽物32下的一图案阴影,每一个面对光源30的多边形视为一遮蔽物32,并且因而产生一图案阴影34。落在一图案阴影的一像素38在被绘出时是位在阴影中。像素38、39是由图案阴影方法以计算介于像素38、39与视者36(viewer)之间光线35(ray)进入光线33与离开点37图案阴影34的次数来决定像素38、39是否落于图案阴影中,例如从视者36到像素38的光线35进入图案阴影一次,但是却没有离开过图案阴影34,因此像素38是在阴影中。同样地,因为从视者36到像素39的光线进入与离开图案阴影各一次,因此像素39并不在阴影中。
因为光线追踪技术相当耗时,尤其是在多个遮蔽物与多个光源的下,图案(stencil)图案阴影方法是采用执行图案缓冲区来执行一个简单进/出计算的方法以简易这样的作业,它是采用在相对于视者或最大深度平面的一执行在图案阴影正面(front-facing)与背面(back-facing)多边形的Z测试来决定在阴影中的像素。例如,在图案阴影方法的实施上,图案缓冲区的值会在正面多边形与背面多边形穿过Z测试时会被分别递增与递减,因此如果最后的图案值为0,则像素不在阴影中。
参考图3,图案阴影方法可以在开始时先清除图案缓冲区(40)并且以扩散色彩(diffuse colors)彩现景像(scene)(42)。在绘出时提供资料给图案缓冲区与深度缓冲区(43),深度缓冲区也可以被称为Z缓冲区。Z缓冲区与彩色缓冲区的更新会被关闭(44),除非图案值是在Z缓冲区中。对于每一个光源,图案阴影会针对每一个遮蔽物来被产生,并且此图案阴影的正面多边型会被绘出(46)。当正面多边形上的每一个像素被绘出时,图案缓冲区的值被递增(47)。同样的作业也用在背面多边形(48),当背面多边形上的每一个像素被绘出时,图案缓冲区的值被递减(49)。图案值被递增与递减地穿过被视为图案阴影。在阴影中的物件会具有非0的图案值,并且被据以绘出。而不在阴影中的物件会具有0的图案值(50),并且以反光色(specular color)来绘出(52)。以反光色来绘出的阴影外像素这样的穿过可以被视为反光色的穿过。回过头参考图1,一旦颜色资讯被像素阴影器22计算出来时,资讯是被储存在图幅缓冲区24中。
再回去参考图2,在例子中,对像素A38而言图案缓冲区值在进入点33被绘出时对正面图案阴影多边形递增一次,但是并未递减,这是因为对像素A38而言并没有背面图案阴影多边形。此相应像素A38的非0值被保留在图案缓冲区,用来表示像素A38是在阴影中。同样地,相应于像素B39的图案缓冲区值在进入点33被绘出时对正面图案阴影多边形递增一次,并且在离开点37被绘出时对背面图案阴影多边形递减一次,由于图案缓冲区值为0,像素B39并不在阴影中,并且以反光色52被绘出。虽然在图2的例子中只有一个遮蔽物与一个光源,但是图案阴影方法更可用在多个遮蔽物与多个光源的阴影上。
虽然电脑绘图系统近来实做了一种压缩深度缓冲器(compresseddepth buffer;有时被称为ZL1),以降低对Z缓冲区的读取流量,目前这种解决方法在图案作业上并不是很有效率,尤其是当ZL1色砖(子色砖)在一个Z比较(Z-compare)函式之后被接受时。因为图案作业即使在通过Z测试后一样会发生,ZL1必需将色砖由接受(ACCEPT)状态改为重测(RETEST)状态,并且递送给Z缓冲区(有时也被称为ZL2)。目前Z缓冲区与图案缓冲区(由时被称为SL2)可以是被组合在一起,使得ZL2/SL2缓冲区的格式为32比特,并且Z值为32比特,以及图案值为8比特。在接受状态下,要使用8比特的图案值时,整个32比特Z/图案值必须被读出,使得存储器频宽的使用变得很没效率。
虽然在以上的叙述已经简短地概述了许多用来产生阴影的处理元件与技术的作业,对于已知处理绘图资料的相关技艺者来说这些技术还是十分被期待地,总而言的,很希望能够尽可能地将处理效率加以改善。
发明内容
本发明的目的、优点与新颍的特徵是于以下的描述中被述及,已知相关技艺者可据以了解或据以实作本发明后将能轻易推知,本发明的目的与优点可藉以其后的专利申请范围所清楚指出的手段与组合来被明了与得出。
据此,本发明的一具体实施例是一种被装配用来做为绘出阴影的装置,此装置被用于包含复数个深度缓冲区与复数个图案缓冲区的电脑绘图系统中,其中深度缓冲区与图案缓冲区可以是压缩的或不压缩的。此装置可更进一步包含用来在压缩或不压缩缓冲区产生与沟通资料的快取区,并可进一步包含用来控制深度与图案缓冲区的逻辑单元。
本发明的另一具体实施例是一包含用来产生相应于一像素群组的压缩深度资料的绘图系统,已知相关技艺者可得知,像素群组可能包含有一色砖、一子色砖或超过一色砖。此绘图系统更进一步包含用来产生相应像素色砖的压缩图案阴影资料,使得这些资料被以图案阴影方法来产生。
本发明的再一具体实施例是一种在电脑绘图系统中产生阴影效果的方法,在这样的考量下,本方法的一种实施方式运用了使用一压缩图案缓冲区的图案阴影方法,此压缩图案阴影缓冲区与一压缩深度缓冲区共享一快取区。
本发明的更一具体实施例提供了一种以使用一压缩图案缓冲区来建立一阴影效果的装置,并且更进一步包含用来个别合并(merging)压缩图案阴影缓冲区资料到像素图案缓冲区的装置。
附图说明
为进一步说明本发明的技术内容,以下结合实施例及附图详细说明如何,其中:
图1是先前技术中传统绘图管道的功能方块示意图;
图2是先前技术中图案阴影的二维呈现;
图3是先前技术中图案阴影方法的功能方块示意图;
图4是根据本发明的一具体实施例所建构的一些绘图系统的元件;
图5所举例的是本发明的一具体实施例所使用的色砖格式;
图6所举例的是本发明的一具体实施的压缩图案缓冲区的资料格式的功能方块示意图;
图7所举例的是本发明的一具体实施的压缩阴影缓冲区的资料格式的功能方块示意图;
图8所举例的是本发明的一具体实施的压缩图案缓冲区之前置作业的功能方块示意图;
图9所举例的是本发明的一具体实施在SL1记录为必要时的处理程式的功能方块示意图;
图10所举例的是本发明的一具体实施的压缩图案缓冲区记录作业的功能方块示意图;
图11所举例的是本发明的一具体实施在图案阴影透过时的合并作业的功能方块示意图;
图12所举例的是本发明的一具体实施在反光色透过时的合并作业的功能方块示意图;
图13所举例的是本发明的一具体实施的压缩图案缓冲区合并作业的功能方块示意图;
图14所举例的是本发明的一具体实施在图案阴影透过时的SL1处理程序的功能方块示意图;以及
图15所举例的是本发明的一具体实施在反光色透过时的SL1处理程序的功能方块示意图。
具体实施方式
本发明在此所探讨的方向为一种在电脑绘图系统产生阴影效果的装置、系统与方法。为了能彻底地了解本发明,将在下列的描述中提出详尽的结构。显然地,本发明的施行并未限定于照明装置的技艺者所熟习的特殊细节。另一方面,众所周知的组成或制程步骤并未描述于细节中,以避免造成本发明不必要的限制。本发明的较佳实施例会详细描述如下,然而除了这些详细描述的外,本发明还可以广泛地施行在其他的实施例中,且本发明的范围不受限定,其以之后的发明范围为准。
图4列举了一些本发明的具体实施例的基本元件,如图示,电脑绘图系统硬件100可包含一绘图处理单元110与存储器120,存储器120可包含Z缓冲区130(ZL2)的图案缓冲区140(SL2)的特定配置。ZL2 130与SL2 140的资料结构可以被组合在一个单一的缓冲区150中,例如一个资料记录可以是32比特,其中包含相应于Z值132的24比特与相应于图案值142的8比特。由已知技术可知,ZL2/SL2缓冲区150是对每一个像素储存一个记录。
存储器120并且可以包含一个用于压缩Z缓冲区的配置160(ZL1),例如用来储存相应于像素色砖(tile of pixels)的z资料162。另外存储器120可包含一压缩图案缓冲区170(SL1),例如用来储存相应于像素色砖的图案值172。由已知技术可知,一个像素色砖可以是一组8×8、8×16或其他维度的像素组合,其组合方式是以达到所望的效能来考量。
绘图处理单元110包含一快取区112,由ZL1与SL1所共享,快取区112的一部份被设定用来储存ZL1与SL1的记录。另外,绘图处理单元110还可包含一快取区114,快取区114的一部份被设定用来储存ZL2与SL2的记录。快取区112与114是可分别被视为ZL1/SL1快取区与ZL2/SL2快取区,绘图处理单元110可更包含逻辑单元116,逻辑单元116是用来控制ZL1 160、SL1 170、ZL2 130与SL2 140,例如可做为图案阴影作业的用。逻辑单元116并可以被设定来执行深度资料与图案阴影资料的压缩,逻辑单元116更可以被设定来产生未压缩的图案阴影资料142,另外,逻辑单元116可以被设定来选择性地合并与SL1 170及SL2 140相关的压缩的图案阴影资料172与未压缩的图案阴影资料142。
参考图5,图示中举例了色砖的排列,在本发明的一具体实施例中,色砖190包含有64个像素194,例如是以8×8的方式排列,每个色砖更可以分为4个子色砖,例如每一个子色砖为8×2个像素。
图6中举例了一个用于SL1的资料格式,在本具体实施例中,在SL1 170的图案资料包含每个色砖190的记录180,所相应的色砖190是位于ZL1 160。在图6的例子中,一个用于8×8色砖190的资料记录180的格式具有四个8×2的子色砖192,这个记录并包含了相应于这四个子色砖192中每一个子色砖的8比特参考值182、相应于这64个像素中每一个像素的3比特的delta值184、相应于这4个子色砖192中每一个子色砖的SL1子色砖暗旗标186、相应于这4个子色砖192中每一个子色砖的溢位旗标188、与相应于这4个子色砖192中每一个子色砖的退位旗标189。
参考图7,图示为本发明的一具体实施例的实作,将在之后被描述,其归功于在压缩图案缓冲区170(SL1)的实作中所用的图案阴影方法可以在数种不同的方式来达成,相关的描述仅仅是为了呈现本发明的一具体实施例。
在色砖产生器210将像素聚集在8×8色砖之后,Z值被压缩并被存于ZL1中。被压缩的Z值接下来为了SL1被前置处理,以决定哪些子色砖应该在图案作业中被处理。例如,在以下的讨论中,任何在ZL1中具有一个接受状态(ACCEPT status)的子色砖会要求一个SL1记录。一命中测试(hit test)被执行在ZL1/SL1快取区,并且SL1记录点(entry)是为了存储器存取期间补偿,被置入先进先出伫列218(deep FIFO)。SL1的记录作业220包含相关于上述的图案阴影作业的递增/递减功能,此外,SL1的记录作业还包含上述的设定状态旗标,这些功能将在下面描述中讨论更多的细节。
在SL1记录作业之后,区块产生器222创建了如相应于ZL2/SL2的像素图案资料的2×2区块,根据状态旗标的状态,SL1图案资料被选择性地合并到ZL2/SL2中。
图8举例了本发明的一具体实施例的SL1前置处理216,在SL1前置处理216中的第一步是检查相应于子色砖的D_Mask比特的值302。D_Mask是ZL1记录中的一个比特,被用来表示子色砖是否应该被绘制,如果D_Mask的值为0,则子色砖的状态为拒绝(REJECT)(306),并且子色砖不需要SL1存取(308)。
在另一方面,如果相应于子色砖的D_Mask的值为1,则同为相应于子色砖的ZL1记录中的T_Mask会被检查(314)。T_Mask是位于ZL1记录中的一个比特,并且表示是否子色砖应该被重测。如果相应于子色砖的T_Mask具有0值,则子色砖的状态为接受(316),并且在SL1中需要一个相应于色砖的记录(318)。如果相应于子色砖的T_Mask值为1,则子色砖的状态为重测(RETEST)(320)。如果4个子色砖的T_Mask值皆为重测状态,则子色砖不需要SL1存取(308),如果色砖中的4个子色砖的任一为接受,则在SL1中需要一个相应于色砖的记录(318)。
参考图9,图示中举例出相应于色砖来取要求一个SL1记录的程序。当需要SL1记录(318)时,下一步为执行ZL1/SL1快取区命中测试(324)。如果测试结果为命中(hit),则相应于SL1记录的快取区资讯被移入深先进先出伫列(330)。如果测试结果为失败(miss),则SL1存储器要求会被产生(328),并且相应于SL1记录的快取资讯被移入深先进先出伫列(330)。SL1先进先出伫列为深度伫列,例如为64阶,用来对存储器要求期间做补偿。SL1先进先出伫列储存SL1色砖资讯,包含被SL1前置处理所产生的ZL1/SL1快取位置。
参考图10,图示中所举例的是本发明的一具体实施例的SL1记录作业。如果子色砖是在重测状态(400),则子色砖暗旗标被设置(440),SM_Mask被设为1(450)并且SL1资料被合并至SL2资料。SM_Mask是一个以SL1的输出来加入的额外屏蔽资料(mask data),用来表示SL1与SL2的合并是否为致能。如果子色砖不是在重测状态,则SM_Mask被设为0并且SL1作业被执行,SL1记录的基本作业为上述的递增/递减作业。因为三角形的表面选择了这个作业(404),即造型的表面必须递送到这个单元。在递增/递减作业外,SL1记录作业将产生被储存在SL1记录内的状态旗标,这些旗标包含溢位、退位与子色砖暗旗标,例如,SL1记录作业可以在一递增作业中产生溢位旗标或在递减作业中产生退位旗标。递增作业的第一步为检查溢位旗标状态(410),如果溢位旗标没有被设置,但是在作业为递增时子色砖将会溢位,则溢位旗标被设置(410)并且之后子色砖将会递增(414),否则,如果溢位旗标被设置,则子色砖状态会由接受改为重测(430)。
在递减作业的情形下,退位旗标会被检查(420),如果退位旗标没有被设置,但是在作业为递减时子色砖将会退位(422),则退位旗标被设置(426)并且之后子色砖将会递减(424)。据此,如果退位旗标在递减作业开始时被设置,子色砖状态会由接受改为重测(430)。另一方面,如果子色砖在相对递增/递减作业并不接近溢位或退位情形,子色砖的参考值被递增或递减。如果子色砖状态由接受改为重测(430),子色砖暗旗标被设(440)并且SM_Mask被设为1(450),其结果导致相应于子色砖的SL1与SL2资料被合并。
根据上述,当子色砖暗旗标在SL1被设置,SL1资料被合并到SL2,此合并作业说明了最后图案值在SL1与SL2中皆被散布,合并作业可发生在图案阴影透过或反光色透过。在图案阴影透过时,如图11所示,子色砖可以是在溢位或退位情形中(510),当这情形发生时,子色砖将由接受转换为重测(512)。此外,SM_Mask被产生来由SL1合并资料至SL2,其最后值为SL1+SL2的加总,并且被写入SL2中(516)。在资料被合并到SL2后,SL1的子色砖暗旗标比特会被重设为“0”(518)来表示子色砖是空的(clean),并且图案值可以被清除(cleared)(520)。这种动态合并可以降低相应于每一个子色砖的溢位与退位的机率。
参考图12,在反光色透过时,在ZL1控制暂存器(ZL1 controlregister)中的一个比特触发合并作业,此比特是于反光透过(specularpass)开始时被设置,并且是根据在SL1的色砖暗比特(542)与SL1子色砖暗比特(544)来设置。接着,设置SM_Mask(546),并在图案比较之前将SL1与SL2合并至ZL2(548)。最后,将总合写入SL2(550)。
SL1/SL2的合并会如同上述因SM_Mask的设置而给予信号。请参考图13,一般合并的流程。SM_Mask值是由SL1来读出(500),在这种情形下SM_Mask值为0,SL1资料没有任何作业执行于其上(504)。否则,当SM_Mask值为1(502),SL1与SL2中的加总值会被产生(506),并且此最终的值会被写入SL2(508)。
参考图14,图示中所举例的是在图案阴影透过时的SL1处理程序。如果任一子色砖具有接受状态,在ZL1中的SL1色砖暗比特被设置(600)。对于任一具有接受状态的子色砖,SL1记录会被读取(602),并且相应于SL1中子色砖的子色砖暗旗标会被设置(604)。在图案阴影递增/递减作业被执行前,溢位/退位旗标会被检查(608)。如果溢位或退位旗标的一有被设置的话,SL1子色砖会被重置为0(610),并且状态会由接受改为重测(610)。此时,相应于子色砖的SM_Mask会被设置(610),并且SL1资料会被往下传(610),在SL1资料往下传后,SL1资料会被清除(610)。
如果SM_Mask为致能(620),则从SL1与SL2来的值会被相加(622)来反应出最终图案值,额外的递增/递减作业会被执行并且会在SL2写入这个值(622)。
参考图15,图示中所举例的是在反光色透过中的SL1处理程序。如果在ZL1中的SL1色砖暗比特为0时(650),则相应于子色砖的SM_Mask会被设为0(652),在这种情形下,SL1记录没有必要被存取(654),并且没有合并的必要(656)。如果在ZL1中的SL1色砖暗比特的值为1,则从SL1而来的记录会被读取(662),并且SM_Mask会根据相应于每一个子色砖的SL1子色砖暗比特来被产生(664)。在ZL1中的SL1色砖暗比特会被重置为0(666)来确保SL1与SL2合并只会发生一次。
显然地,依照上面实施例中的描述,本发明可能有许多的修正与差异。因此需要在其附加的权利要求项的范围内加以理解,除了上述详细的描述外,本发明还可以广泛地在其他的实施例中施行。上述仅为本发明的较佳实施例而已,并非用以限定本发明的申请专利范围;凡其它未脱离本发明所揭示的精神下所完成的等效改变或修饰,均应包含在下述申请专利范围内。
Claims (19)
1.一种用于电脑绘图的装置,其特征在于,该用于电脑绘图的装置包含:
复数个用于储存深度资料的深度缓冲区,其中该复数个深度缓冲区中至少一个被设置来提供相应于一像素群组的深度资料,其中其他该复数个深度缓冲区中至少一个被设置来提供相应于该像素群组中各像素的深度资料;
复数个图案缓冲区,该复数个图案缓冲区被设置来储存图案阴影资料,其中该复数个图案缓冲区中至少一个被设置来提供相应于该像素群组的图案阴影资料,其中其他该复数个图案缓冲区中至少一个被设置来储存相应于该像素群组中的各该像素的图案阴影资料;以及
一用来控制该复数个图案缓冲区与该复数个深度缓冲区的控制逻辑,其中图案阴影资料是被该控制逻辑产生与储存。
2.如权利要求1所述的用于电脑绘图的装置,其特征在于,其中上述的复数个深度缓冲区包含:
一第一深度缓冲区,其中该第一深度缓冲区具有复数个第一深度缓冲区记录,每一个第一深度缓冲区记录分别储存相应于一像素群组的深度资料,其中该像素群组包含一色砖;以及
一第二深度缓冲区,其中该第二深度缓冲区具有复数个第二深度缓冲区记录,其中每一个该第二深度缓冲区记录分别储存相应于一个像素的深度资料。
3.如权利要求2所述的用于电脑绘图的装置,其特征在于,其中上述的复数个图案缓冲区包含:
一第一图案缓冲区,其中该第一图案缓冲区具有复数个第一图案缓冲区记录,每一个该第一图案缓冲区记录分别储存相应于该色砖的该图案阴影资料;以及
一第二图案缓冲区,其中该第二图案缓冲区具有复数个第二图案缓冲区记录,其中每一个该第二图案缓冲区记录分别储存各自所相应的一个像素的深度资料。
4.如权利要求3所述的用于电脑绘图的装置,其特征在于,其中还包含:
一第一快取区,其中该第一快取区是被配置来储存该第一深度缓冲区与该第一图案缓冲区的记录;以及
第二快取区,其中该第二快取区是被配置来储存该第二深度缓冲区与该第二图案缓冲区的记录。
5.如权利要求4所述的用于电脑绘图的装置,其特征在于,其中还包含复数个子色砖,其中每一个该色砖被分为复数个该子色砖,其中被储存在该第一图案缓冲区记录的该图案阴影资料包含:
相应于该复数个子色砖的每一个该子色砖的一参考值;
相应于该像素群组中各该像素的一差异值;以及
复数个子色砖状态旗标。
6.如权利要求5所述的用于电脑绘图的装置,其特征在于,其中还包含一先进先出伫列硬件结构,其中该先进先出伫列硬件结构被设置来储存该第一图案缓冲区记录。
7.如权利要求5所述的用于电脑绘图的装置,其特征在于,其中上述的复数个子色砖状态旗标包含复数个子色砖暗旗标、复数个子色砖溢位旗标与复数个子色砖退位旗标,其中该复数个子色砖暗旗标之一是相应于该复数个子色砖的任一种,其中该复数个子色砖溢位旗标之一是相应于该复数个子色砖的任一种,其中该复数个子色砖退位旗标之一是相应于该复数个子色砖的任一种。
8.如权利要求4所述的用于电脑绘图的装置,其特征在于,其中上述的复数个图案缓冲区内含在复数个硬件存储器结构的任一种。
9.如权利要求4所述的用于电脑绘图的装置,其特征在于,其中上述的复数个深度缓冲区内含在复数个硬件存储器结构的任一种。
10.如权利要求4所述的用于电脑绘图的装置,其特征在于,其中上述的复数个资料快取区是位于一电脑绘图处理器中。
11.一种在电脑绘图系统中产生一阴影效果的方法,其特征在于,该电脑绘图系统中产生一阴影效果的方法包含:
以扩散色彩现一物件;
产生用来储存在一像素深度缓冲区中的相应于一景像的一像素深度资讯;
产生相应于一像素群组的深度资讯,其中该相应于一像素群组的深度资讯是被储存在一压缩深度缓冲区;
测试在压缩深度缓冲区的该深度资讯来决定该像素群组是否可能会用到在一压缩图案缓冲区的一图案阴影资料;
产生该图案阴影资料,其中该图案阴影资料的一第一部份是被产生于该压缩图案缓冲区,其中该图案阴影资料的一第二部份是被产生于一像素图案缓冲区;
加入一反光色,其中该图案阴影资料决定在阴影空间的像素,并且该反光色被加给彩现在阴影空间以外的像素。
12.如权利要求11所述的在电脑绘图系统中产生一阴影效果的方法,其特征在于,其中还包含:
产生一阴影空间,其中该阴影空间包含相对于一视点的复数个正面多边形,其中该阴影空间还包含相对于该视点的复数个背面多边形。
13.如权利要求12所述的在电脑绘图系统中产生一阴影效果的方法,其特征在于,其中还包含选择性地递增一子色砖参考值的步骤。
14.如权利要求13所述的在电脑绘图系统中产生一阴影效果的方法,其特征在于,其中还包含选择性地递减一子色砖参考值的步骤。
15.如权利要求14所述的在电脑绘图系统中产生一阴影效果的方法,其特征在于,其中上述像素群组为一色砖。
16.如权利要求14所述的在电脑绘图系统中产生一阴影效果的方法,其特征在于,其中上述像素群组为一子色砖。
17.如权利要求14所述的在电脑绘图系统中产生一阴影效果的方法,其特征在于,其中还包含设定在压缩图案缓冲区中的复数个状态旗标,其中该复数个状态旗标被设定来表示在压缩图案缓冲区中的图案阴影资料的一部份需要重测。
18.如权利要求17所述的在电脑绘图系统中产生一阴影效果的方法,其特征在于,其中还包含根据一被设置的子色砖暗旗标,将该压缩图案缓冲区的该图案阴影资料以相加操作合并于该像素图案缓冲区,其中该复数个状态旗标是被运用来选择出从该压缩图案缓冲区被合并到该像素图案缓冲区的图案阴影资料。
19.一种电脑绘图系统,其特征在于,包含:
一逻辑单元,该逻辑单元包括:
被设置来产生压缩深度资料,其中该压缩深度资料是相应于一像素群组;
被设置来产生一压缩的图案阴影资料,其中该压缩的图案阴影资料是相应于该像素群组,其中该压缩的图案阴影资料被产生来用于一图案阴影空间方法;
被设置来产生一未压缩的图案阴影资料,其中该未压缩的图案阴影资料是被产生来用于该图案阴影空间方法;以及
根据一被设置的子色砖暗旗标的结果,将该未压缩的图案阴影资料以相加操作合并该压缩的图案阴影资料。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/804,862 | 2004-03-19 | ||
US10/804,862 US7030878B2 (en) | 2004-03-19 | 2004-03-19 | Method and apparatus for generating a shadow effect using shadow volumes |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1609898A CN1609898A (zh) | 2005-04-27 |
CN100342403C true CN100342403C (zh) | 2007-10-10 |
Family
ID=34795855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100952966A Active CN100342403C (zh) | 2004-03-19 | 2004-11-19 | 使用图案阴影来产生阴影效果的方法与装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7030878B2 (zh) |
CN (1) | CN100342403C (zh) |
TW (1) | TWI275039B (zh) |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7184040B1 (en) * | 2003-11-21 | 2007-02-27 | Nvidia Corporation | Early stencil test rejection |
US7978194B2 (en) * | 2004-03-02 | 2011-07-12 | Ati Technologies Ulc | Method and apparatus for hierarchical Z buffering and stenciling |
US7538765B2 (en) * | 2004-08-10 | 2009-05-26 | Ati International Srl | Method and apparatus for generating hierarchical depth culling characteristics |
US7589722B2 (en) * | 2004-08-10 | 2009-09-15 | Ati Technologies, Ulc | Method and apparatus for generating compressed stencil test information |
US7277098B2 (en) * | 2004-08-23 | 2007-10-02 | Via Technologies, Inc. | Apparatus and method of an improved stencil shadow volume operation |
US20070002044A1 (en) * | 2005-06-30 | 2007-01-04 | Adam Lake | System and method for a compressed hierarachical stencil buffer |
CN100349186C (zh) * | 2005-09-09 | 2007-11-14 | 威盛电子股份有限公司 | 调适性阴影空间算法的阴影产生方法与装置 |
US8766995B2 (en) * | 2006-04-26 | 2014-07-01 | Qualcomm Incorporated | Graphics system with configurable caches |
US20070268289A1 (en) * | 2006-05-16 | 2007-11-22 | Chun Yu | Graphics system with dynamic reposition of depth engine |
US8884972B2 (en) | 2006-05-25 | 2014-11-11 | Qualcomm Incorporated | Graphics processor with arithmetic and elementary function units |
US8869147B2 (en) * | 2006-05-31 | 2014-10-21 | Qualcomm Incorporated | Multi-threaded processor with deferred thread output control |
US8644643B2 (en) | 2006-06-14 | 2014-02-04 | Qualcomm Incorporated | Convolution filtering in a graphics processor |
US8766996B2 (en) * | 2006-06-21 | 2014-07-01 | Qualcomm Incorporated | Unified virtual addressed register file |
US7847798B1 (en) * | 2006-10-24 | 2010-12-07 | Adobe Systems Incorporated | Clipping and culling artwork using a graphics processing unit |
US8264503B1 (en) * | 2006-10-24 | 2012-09-11 | Adobe Systems Incorporated | Batch early engagement rules graphics processing |
US9058792B1 (en) * | 2006-11-01 | 2015-06-16 | Nvidia Corporation | Coalescing to avoid read-modify-write during compressed data operations |
US8427495B1 (en) | 2006-11-01 | 2013-04-23 | Nvidia Corporation | Coalescing to avoid read-modify-write during compressed data operations |
US8243069B1 (en) | 2006-11-03 | 2012-08-14 | Nvidia Corporation | Late Z testing for multiple render targets |
DE112007002991B4 (de) | 2006-12-08 | 2011-09-08 | Mental Images Gmbh | Computergraphikschattenvolumen unter Verwendung von hierarchischem Okklusions-Culling |
US8736627B2 (en) * | 2006-12-19 | 2014-05-27 | Via Technologies, Inc. | Systems and methods for providing a shared buffer in a multiple FIFO environment |
US7876332B1 (en) | 2006-12-20 | 2011-01-25 | Nvidia Corporation | Shader that conditionally updates a framebuffer in a computer graphics system |
US7817165B1 (en) * | 2006-12-20 | 2010-10-19 | Nvidia Corporation | Selecting real sample locations for ownership of virtual sample locations in a computer graphics system |
US8547395B1 (en) | 2006-12-20 | 2013-10-01 | Nvidia Corporation | Writing coverage information to a framebuffer in a computer graphics system |
US10115221B2 (en) * | 2007-05-01 | 2018-10-30 | Advanced Micro Devices, Inc. | Stencil compression operations |
US8184118B2 (en) * | 2007-05-01 | 2012-05-22 | Advanced Micro Devices, Inc. | Depth operations |
US8184117B2 (en) * | 2007-05-01 | 2012-05-22 | Advanced Micro Devices, Inc. | Stencil operations |
US7982734B2 (en) * | 2007-08-01 | 2011-07-19 | Adobe Systems Incorporated | Spatially-varying convolutions for rendering soft shadow effects |
US7970237B2 (en) * | 2007-08-01 | 2011-06-28 | Adobe Systems Incorporated | Spatially-varying convolutions for rendering glossy reflection effects |
US8004522B1 (en) | 2007-08-07 | 2011-08-23 | Nvidia Corporation | Using coverage information in computer graphics |
US20090046105A1 (en) * | 2007-08-15 | 2009-02-19 | Bergland Tyson J | Conditional execute bit in a graphics processor unit pipeline |
US8325203B1 (en) | 2007-08-15 | 2012-12-04 | Nvidia Corporation | Optimal caching for virtual coverage antialiasing |
JP4612031B2 (ja) * | 2007-09-28 | 2011-01-12 | 株式会社コナミデジタルエンタテインメント | 画像生成装置、画像生成方法、ならびに、プログラム |
CN101816021B (zh) * | 2007-10-03 | 2012-08-29 | 艾利森电话股份有限公司 | 用于使用行和列斜率码字对像素块值进行无损压缩的方法、压缩器、解压缩器 |
JP4852555B2 (ja) * | 2008-01-11 | 2012-01-11 | 株式会社コナミデジタルエンタテインメント | 画像処理装置、画像処理方法、ならびに、プログラム |
US20110141112A1 (en) * | 2009-12-11 | 2011-06-16 | William Allen Hux | Image processing techniques |
US9437025B2 (en) * | 2012-07-12 | 2016-09-06 | Nvidia Corporation | Stencil data compression system and method and graphics processing unit incorporating the same |
US9633467B2 (en) * | 2012-12-26 | 2017-04-25 | Adshir Ltd. | Stencil mapped shadowing system |
US9117306B2 (en) * | 2012-12-26 | 2015-08-25 | Adshir Ltd. | Method of stencil mapped shadowing |
GB2520366B (en) | 2013-12-13 | 2015-12-09 | Imagination Tech Ltd | Primitive processing in a graphics processing system |
GB2520365B (en) | 2013-12-13 | 2015-12-09 | Imagination Tech Ltd | Primitive processing in a graphics processing system |
KR20160071774A (ko) * | 2014-12-12 | 2016-06-22 | 삼성전자주식회사 | 영상 처리를 위한 영상 처리 장치, 방법 및 기록 매체 |
US9836874B2 (en) * | 2015-01-27 | 2017-12-05 | Splunk Inc. | Efficient polygon-clipping technique to reduce data transfer requirements for a viewport |
US10026204B2 (en) | 2015-01-27 | 2018-07-17 | Splunk Inc. | Efficient point-in-polygon indexing technique for processing queries over geographic data sets |
US9767122B2 (en) | 2015-01-27 | 2017-09-19 | Splunk Inc. | Efficient point-in-polygon indexing technique to facilitate displaying geographic data |
US9916326B2 (en) | 2015-01-27 | 2018-03-13 | Splunk, Inc. | Efficient point-in-polygon indexing technique for facilitating geofencing operations |
US9607414B2 (en) | 2015-01-27 | 2017-03-28 | Splunk Inc. | Three-dimensional point-in-polygon operation to facilitate displaying three-dimensional structures |
US10453170B2 (en) | 2016-09-09 | 2019-10-22 | Intel Corporation | Minimum/maximum and bitwise and/or based coarse stencil test |
CN111339463B (zh) * | 2020-02-19 | 2023-07-04 | 望海康信(北京)科技股份公司 | 列表数据的展示方法、装置和电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000011607A1 (en) * | 1998-08-20 | 2000-03-02 | Apple Computer, Inc. | Deferred shading graphics pipeline processor |
US6384822B1 (en) * | 1999-05-14 | 2002-05-07 | Creative Technology Ltd. | Method for rendering shadows using a shadow volume and a stencil buffer |
CN1369849A (zh) * | 2001-02-06 | 2002-09-18 | 索尼计算机娱乐美国公司 | 适于创建透明对象的实时阴影的系统和方法 |
US20030112237A1 (en) * | 2001-12-13 | 2003-06-19 | Marco Corbetta | Method, computer program product and system for rendering soft shadows in a frame representing a 3D-scene |
US20030216175A1 (en) * | 2002-05-16 | 2003-11-20 | Satoru Osako | Game machine and game program |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5870097A (en) * | 1995-08-04 | 1999-02-09 | Microsoft Corporation | Method and system for improving shadowing in a graphics rendering system |
US6557083B1 (en) * | 2000-06-30 | 2003-04-29 | Intel Corporation | Memory system for multiple data types |
US6798421B2 (en) * | 2001-02-28 | 2004-09-28 | 3D Labs, Inc. Ltd. | Same tile method |
US7145565B2 (en) * | 2003-02-27 | 2006-12-05 | Nvidia Corporation | Depth bounds testing |
-
2004
- 2004-03-19 US US10/804,862 patent/US7030878B2/en not_active Expired - Lifetime
- 2004-11-05 TW TW093133764A patent/TWI275039B/zh active
- 2004-11-19 CN CNB2004100952966A patent/CN100342403C/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000011607A1 (en) * | 1998-08-20 | 2000-03-02 | Apple Computer, Inc. | Deferred shading graphics pipeline processor |
US6384822B1 (en) * | 1999-05-14 | 2002-05-07 | Creative Technology Ltd. | Method for rendering shadows using a shadow volume and a stencil buffer |
CN1369849A (zh) * | 2001-02-06 | 2002-09-18 | 索尼计算机娱乐美国公司 | 适于创建透明对象的实时阴影的系统和方法 |
US20030112237A1 (en) * | 2001-12-13 | 2003-06-19 | Marco Corbetta | Method, computer program product and system for rendering soft shadows in a frame representing a 3D-scene |
US20030216175A1 (en) * | 2002-05-16 | 2003-11-20 | Satoru Osako | Game machine and game program |
Also Published As
Publication number | Publication date |
---|---|
US20050206647A1 (en) | 2005-09-22 |
CN1609898A (zh) | 2005-04-27 |
US7030878B2 (en) | 2006-04-18 |
TW200519771A (en) | 2005-06-16 |
TWI275039B (en) | 2007-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100342403C (zh) | 使用图案阴影来产生阴影效果的方法与装置 | |
CN112270756B (zh) | 一种应用于bim模型文件的数据渲染方法 | |
US7126615B2 (en) | Color compression using multiple planes in a multi-sample anti-aliasing scheme | |
US7911480B2 (en) | Compression of multiple-sample-anti-aliasing tile data in a graphics pipeline | |
US8456468B2 (en) | Graphic rendering method and system comprising a graphic module | |
CN1581234A (zh) | 使用多遍形成方式的图形基元成形装置及方法 | |
CN1287330C (zh) | 用于区带渲染的有效图形状态管理 | |
US20060170703A1 (en) | Color compression using an edge data bitmask in a multi-sample anti-aliasing scheme | |
US9865065B2 (en) | Method of and graphics processing pipeline for generating a render output using attribute information | |
EP0740272A2 (en) | Method and apparatus for fast rendering of three-dimensional objects | |
GB2363304A (en) | 3D Compositing using 2D pipeline system | |
CN1317666C (zh) | 适于创建透明对象的实时阴影的系统和方法 | |
CN1519777A (zh) | 像素高速缓存、使用该高速缓存的三维图形加速器及方法 | |
WO1997008658A1 (en) | A method and apparatus for performing post-process antialiasing of polygon edges | |
US20070268291A1 (en) | Occlusion Culling Method and Rendering Processing Apparatus | |
US20070268290A1 (en) | Reduced Z-Buffer Generating Method, Hidden Surface Removal Method and Occlusion Culling Method | |
US7277098B2 (en) | Apparatus and method of an improved stencil shadow volume operation | |
KR20120034293A (ko) | 정점 처리 방법 및 장치 | |
US6396502B1 (en) | System and method for implementing accumulation buffer operations in texture mapping hardware | |
JP2002529870A (ja) | 3次元コンピュータ生成画像のシェーディング及びテクスチャリング | |
CN100339869C (zh) | 使用最小深度遮挡剔除和z字形遍历的图形处理设备及方法 | |
US20080211811A1 (en) | Drawing Apparatus for Displaying Image Data About a Plurality of Objects Including Semitransparent Object and Opaque Object on Computer Display Screen | |
WO2020015808A1 (en) | Primitive z-sorting | |
US7116333B1 (en) | Data retrieval method and system | |
US20050162435A1 (en) | Image rendering with multi-level Z-buffers |
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 |