CN100568289C - 计算机绘图元素描绘方法及装置 - Google Patents
计算机绘图元素描绘方法及装置 Download PDFInfo
- Publication number
- CN100568289C CN100568289C CNB2007101363144A CN200710136314A CN100568289C CN 100568289 C CN100568289 C CN 100568289C CN B2007101363144 A CNB2007101363144 A CN B2007101363144A CN 200710136314 A CN200710136314 A CN 200710136314A CN 100568289 C CN100568289 C CN 100568289C
- Authority
- CN
- China
- Prior art keywords
- drawing element
- cutting window
- pixel
- plane
- coordinate
- 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
Images
Landscapes
- Image Generation (AREA)
Abstract
本发明提出一种计算机绘图元素描绘方法及装置,特别涉及一种计算机绘图元素描绘方法,其包括接收绘图元素、裁切平面和预设裁剪窗界;依据第一裁剪窗界、裁切平面和绘图元素顶点间的空间关系决定第二裁剪窗界;自绘图元素剔除一调整后的裁剪窗界范围外的像素以决定一群待描绘像素;以及决定一群实际描绘像素,其中决定实际描绘像素群的步骤包括自该群待描绘像素中移除符合一裁切准则的像素。本发明亦包括实行此方法的装置。本发明所述的计算机绘图元素描绘方法及装置,通过一独立的裁剪窗界调整模块的加入,在不大幅改变其他模块的原有架构下,即达到提升计算机绘图元素描绘装置效能的目的。
Description
技术领域
本发明是有关于一种计算机绘图技术,特别是关于一种附有使用者指定裁切平面(clipping planes)的计算机绘图元素(primitive)描绘方法及装置。
背景技术
计算机绘图技术的基本动作在于描绘(rendering)三维物体的二维影像以将其显示或呈现于诸如阴极射线管(CathodRay Tube;CRT)或液晶显示器(Liquid Crystal Display;LCD)等显示装置或监视器上。被描绘的物体可能是诸如点、线段、三角形或多边形等简单几何元素(geometry primitive)。较为复杂的物体可通过将其表示为一连串彼此相连的平面多边形,例如,通过将其表示为一连串彼此相连的平面三角形而被描绘于显示装置上。所有几何元素最终皆可以表示成单一顶点(vertex)或一群顶点的集合,例如,定义一个点的坐标(X,Y,Z),又例如一线段的端点,或是一三角形的顶点。
为了产生用于将三维元素的二维投影显示于计算机监视器或其他显示装置的数据组,该元素的顶点须经由图形描绘管线(graphics-rendering pipeline)的一系列运算或处理级(processing stages)处理。一般的管线不过是一系列串联的处理单元,或称为级(stages),其前一级的输出作为后一级的输入。在绘图处理器的领域中,此等所谓的“级”包括诸如顶点相关运算、元素组合运算、像素(pixel)运算、纹路(texture)组合运算、阵列(rasterization)运算以及碎片(fragment)运算。
典型的绘图显示系统,较为复杂的物体通常被描述成包括许多称为绘图元素(primitives)的小多边形,其覆盖于该物体的表面就如同许多小磁砖覆盖于墙面或其他表面之上。每一多边形被表示为一组顶点坐标(模型坐标系中的X,Y,Z)并指明某些材料表面性质(意即,颜色、纹路、光泽等等)。对于具有复杂曲面的三维物体,前述多边形一般而言必须是三角形或四边形,其中后者永远可以分解为一对三角形。
一转换引擎(transformation engine)参照使用者输入所选定的视角转换物体的坐标。此外,使用者亦可以指定视场(fieldof view)、产生影像的大小和影像所在区域后方的细节以依需要呈现或移除背景。
一旦此可见区域(viewing area)被选定,诸如裁剪窗界(scissor window)的裁切逻辑(clipping logic)即移除位于可见区域外的绘图元素并处理部分位于可见区域内而部分位于可见区域外的绘图元素。绘图元素的顶点随之被传送至下一级,传送的内容为每一顶点对应于屏幕(viewing screen)的坐标(以X,Y坐标的形式)和其相关的深度(Z坐标)。典型的系统中,尚须引进考虑到光源的照明模型(lighting model),而后绘图元素和其颜色值传送至诸如阵列器(rasterizer)的像素内插模块或称属性内插模块(Attribute Interpolation Module)。
对于每一绘图元素,阵列器决定哪些像素位于此绘图元素之上并尝试将其颜色值和深度(Z值)写入帧缓冲器(framebuffer)之内。阵列器将正被处理的绘图元素中的深度(Z值)和像素的深度值做比较,该值可能已经写入帧缓冲器。假如新绘图元素像素的深度值较小,表示其位于已写入帧缓冲器的绘图元素前方,则其值将取代帧缓冲器内已有的数值,因为此新绘图元素将会遮蔽先前处理而已写入帧缓冲器的绘图元素。此程序一直重复直到所有绘图元素均被描画完成为止。此时,一视频控制器将帧缓冲器的内容依描画的顺序逐条扫描线显示于一显示器上。
介绍一般技术背景之后,以下参见图1,其显示一传统的管线式计算机绘图元素描绘装置100的方块图。包括绘图元素PR和裁切逻辑CLogic的输入数据沿绘图管线传送。绘图元素PR可以包括其所在位置的数据(例如,表示为X,Y,Z空间坐标的顶点),而裁切逻辑CLogic则可以包括预设的裁剪窗界和使用者指定的一或多个裁切平面(clipping planes)UDCP。裁剪窗界通常表示为上下左右四个边界值。裁切平面UDCP则可以表示成诸如f(x,y,x)=ax+by+cz+d的空间坐标函数,通常其将裁切或移除绘图元素PR中所有使得此空间坐标函数为负值的像素或点,而仅允许显示使得此空间坐标函数为正值的像素或点。
上述输入信息首先进入顶点着色器(vertex shader)102。顶点着色器102可以对绘图元素PR的顶点信息执行各种转换。例如,由真实世界坐标(world coordinates)转换至模型视界坐标(model view coordinates),再转换至投影坐标(projectioncoordinates),最后转换至屏幕坐标(screen coordinates)。顶点着色器102的功能亦可以包括计算或取得绘图元素PR顶点的诸如颜色和透视校正系数(perspective correction factor)等属性值(attributes)(图中以VX_ATT表示顶点属性值数据的集合)。当输入数据包括使用者指定的裁切平面UDCP时,顶点着色器102亦可以计算绘图元素PR的顶点对于所述裁切平面UDCP的裁切判定距离(图中以VX_DISc表示此等顶点裁切判定距离的集合)。顶点坐标代入裁切平面函数的结果值通常可以做为裁切判定距离,当裁切判定距离为负值时,表示此顶点被裁切而不应被显示。反之,当裁切判定距离为正值时,则保留此顶点。
像素内插模块106依据顶点着色器102的输出以诸如内插法的技术求出绘图元素PR内部的所有像素PX和其属性值PX_ATT,以及所有像素的裁切判定距离PX_DISc。之后,绘图元素PR内的每一像素均于Z值测试模块108执行Z值测试。所谓Z值测试是指将目前的Z值(意即绘图元素PR内一特定像素的深度值)和对应像素储存于Z值缓冲器(Z Buffer)的Z值做比较。储存的Z值提供先前描绘元素于特定像素位置的深度值。假如目前的Z值相对于储存的Z值并未较接近目前的观测点,则帧缓冲器和Z值缓冲器均无须置换,因为先前描绘的像素于此被视为在目前像素的前方。假如目前的Z值的深度相对于储存的Z值较接近观测者的双眼,则目前的Z值将取代储存的Z值且目前的绘图信息(例如颜色)将取代相对的帧缓冲器中像素位置的相对信息(此是于像素着色器(pixel shader)110判定)。Z值测试模块108将读取Z值缓冲器中包括像素PX中通过Z值测试的像素PXz。对于绘图元素PR内被判定较先前储存的像素更接近观测点的像素,将伴随相关信息传送至像素着色器110,像素着色器110决定绘图元素PR内每一已被判定较接近目前观测点的像素的绘图信息。此外,传统计算机绘图元素描绘装置100亦可以包括一颜色读取模块112,其读取像素的颜色和透明度数据并可以供绘图元素PR背景呈现处理所使用。
对于附有使用者指定的裁切平面的情形,传统计算机绘图元素描绘装置100的设计是于像素着色器110参考通过Z值测试的像素PXz并将裁切判定距离PXz_DISc为负值的像素舍去而输出一群实际描绘像素PXr。然绘图元素PR所有像素的裁切判定距离于像素内插模块106其实已可完全决定。由于传统的Z值测试模块108并未参照使用者指定的裁切平面及其相关信息,其显然将浪费许多计算和存储器频宽于裁切像素的Z值测试运算。此外,传统的像素内插模块106其实亦浪费了许多资源于求取绘图元素PR内所有像素的属性值和其裁切判定距离。绘图元素PR的某些像素于属性内插阶段即可以舍去。
基于前述传统计算机绘图元素描绘系统的缺失,其有必要提出改进以避免不必要的系统资源浪费和冗赘的运算。且此等改良最好可以不改变传统计算机绘图元素描绘装置各个模块的原有架构,又能达成增进整体效能的目的,以使得变更设计的代价减到最小。
发明内容
本发明提出一种附有使用者指定裁切平面的计算机绘图元素描绘方法,其相对于传统技术可以避免不必要的系统资源浪费和冗赘的运算。
本发明提出一种附有使用者指定裁切平面的计算机绘图元素描绘装置,其在不大幅改变传统技术各个模块原有架构的前提下,达成增进系统整体效能的目的。
本发明提出一种计算机绘图元素描绘方法,其包括接收绘图元素、多个裁切平面和预设裁剪窗界;依据该预设裁剪窗界、所述多个裁切平面中的第一裁切平面和该绘图元素顶点间的空间关系决定一第一裁剪窗界;依据第一裁剪窗界、所述多个裁切平面中的第二裁切平面和绘图元素顶点间的空间关系决定第二裁剪窗界;自绘图元素剔除一调整后的裁剪窗界范围外的像素以决定一群待描绘像素;决定一群实际描绘像素;以及显示此群实际描绘像素,其中决定实际描绘像素群的步骤包括自该群待描绘像素中移除符合一裁切准则的像素,所述多个裁切平面分别表示为多个空间坐标函数,而该裁切准则判断像素坐标是否使得任一该多个空间坐标函数的值落入一第一无限开放区间,该绘图元素是一三角形且该第一无限开放区间等于(-∞,0)。
本发明又提出一种计算机绘图元素描绘方法,包括:输入该绘图元素、多个裁切平面和一预设裁剪窗界;依据该预设裁剪窗界、该多个裁切平面和该绘图元素间的空间关系决定一新裁剪窗界;自该绘图元素剔除该新裁剪窗界范围外的像素以决定一群待描绘像素;通过移除该群待描绘像素中符合一裁切准则的像素而决定一群实际描绘像素;以及显示该群实际描绘像素;其中该多个裁切平面分别表示为多个空间坐标函数,而该裁切准则判断像素坐标是否使得任一该多个空间坐标函数的值落入一无限开放区间,该绘图元素是一三角形且该无限开放区间等于(-∞,0)。
本发明另提出一种计算机绘图元素描绘装置,其包括顶点着色器、裁剪窗界调整模块、像素内插模块和像素着色器。顶点着色器接收绘图元素、多个裁切平面和预设裁剪窗界,并决定绘图元素各顶点的多个属性值;裁剪窗界调整模块,依据该预设裁剪窗界、所述多个裁切平面中的第一裁切平面和该绘图元素顶点间的空间关系决定一第一裁剪窗界,并依据第一裁剪窗界、所述多个裁切平面中的第二裁切平面和绘图元素间的空间关系决定第二裁剪窗界;像素内插模块自绘图元素剔除一调整后的裁剪窗界范围外的像素以决定一群待描绘像素;而像素着色器通过移除此群待描绘像素中符合一裁切准则的像素决定一群实际描绘像素并输出至一像素显示区;其中所述多个裁切平面分别表示为多个空间坐标函数,而该裁切准则判断像素坐标是否使得任一该多个空间坐标函数的值落入一第一无限开放区间,该绘图元素是一三角形且该第一无限开放区间等于(-∞,0)。
本发明所述的计算机绘图元素描绘方法及装置,通过一独立的裁剪窗界调整模块的加入,在不大幅改变其他模块的原有架构下,即达到提升计算机绘图元素描绘装置效能的目的。
附图说明
图1显示一传统的管线式计算机绘图元素描绘装置的方块图。
图2显示依据本发明一实施例的计算机绘图元素描绘装置的方块图。
图3显示绘图元素、各裁剪窗界和裁切平面间的关系,此范例示范绘图元素是三角形且裁切平面的数目等于二的情形。
图4例示依据本发明一实施例的调整原裁剪窗界的范围以产生另一裁剪窗界的方法。
图5例示决定一边界和一裁切平面的交点的方法。
图6显示依据本发明一实施例的计算机绘图元素描绘方法。
具体实施方式
以下参见图2,其显示依据本发明一实施例的计算机绘图元素描绘装置200的方块图。计算机绘图元素描绘装置200包括顶点着色器202、裁剪窗界调整模块204、像素内插模块206、Z值测试模块208、像素着色器210和颜色读取模块212。以下配合相关图式分别就计算机绘图元素描绘装置200各组成要件详细说明其运作细节。
顶点着色器202可以接收绘图元素PR、多个裁切平面UDCP1-UDCPN和预设裁剪窗界(default scissor window)DSW并决定绘图元素PR各顶点的相关属性值VX_ATT,诸如颜色、纹理和透视校正系数(Perspective Correction Factor)等。顶点着色器202亦决定绘图元素PR各顶点相对于多个裁切平面UDCP1-UDCPN的裁切判定距离VX_DISc。如前所述,当一顶点的相对于裁切平面UDCPi(UDCP1-UDCPN其中之一)的裁切判定距离为负值时,表示此顶点为裁切平面UDCPi所移除。
裁剪窗界调整模块204依据预设裁剪窗界DSW、多个裁切平面UDCP1-UDCPN和绘图元素PR间的空间关系决定一新的裁剪窗界SWN。首先,裁剪窗界调整模块204可以先依据预设裁剪窗界DSW和绘图元素PR各顶点相对于裁切平面UDCP1的裁切判定距离判断绘图元素PR的裁切状况,并产生一第一裁剪窗界SW1。接着,依据第一裁剪窗界SW1和绘图元素PR各顶点相对于裁切平面UDCP2的裁切判定距离,可产生第二裁剪窗界SW2。重复此程序N次,最后可产生第N裁剪窗界SWN,即是该新的裁剪窗界。图3显示N等于2而绘图元素PR是一三角形T时,依据前述步骤产生的新裁剪窗界SWN和三角形T、裁切平面UDCP1、裁切平面UDCP2以及预设裁剪窗界DSW间的关系。图中二箭头的方向分别指出裁切平面UDCP1和裁切平面UDCP2欲保留的空间。推到最广的情况,每一新裁剪窗界产生程序均会依据一旧的裁剪窗界(例如,第二次执行此程序时的第一裁剪窗界SW1)、某一裁切平面和绘图元素PR间的空间关系决定一更新后的裁剪窗界(例如,第二次执行此程序时的第二裁剪窗界SW2)。并且,前述旧的裁剪窗界(例如,第二次执行此程序时的第一裁剪窗界SW1)是自预设裁剪窗界DSW通过之前的裁剪窗界产生程序所导出,且其范围被预设裁剪窗界DSW所涵盖。另一方面,后续的裁剪窗界产生程序将从更新后的裁剪窗界(例如,第二次执行此程序时的第二裁剪窗界SW2)导出前述的新的裁剪窗界SWN,且新的裁剪窗界SWN的范围被前述的更新后的裁剪窗界(例如,第二次执行此程序时的第二裁剪窗界SW2)所涵盖。
以下举例说明于给定任一裁剪窗界SWa和绘图元素PR各顶点相对于一裁切平面UDCP的裁切判定距离的条件下,如何调整裁剪窗界SWa的范围以产生另一裁剪窗界SWb。若绘图元素PR各顶点相对于裁切平面UDCP的裁切判定距离均为正值,意味绘图元素PR未被裁切平面UDCP裁切,此时裁剪窗界SWb的范围可以设为等于裁剪窗界SWa的范围。若各顶点的裁切判定距离均为负值,则表示绘图元素PR完全被裁切平面UDCP所遮蔽,其将完全不被显示(此特殊情况,裁剪窗界SWb的范围可以视为收敛成一个点)。若各顶点的裁切判定距离包括正值和负值,则须进一步决定裁切平面UDCP与绘图元素PR周边的交点,并配合裁切判定距离为正值的顶点决定裁剪窗界SWb的范围。图4例示依据本发明一实施例的调整原裁剪窗界Swa的范围以产生另一裁剪窗界SWb的方法,其中裁剪窗界Swa的范围包括左侧边界scissor_l、右侧边界scissor_r、顶侧边界scissor_t和底侧边界scissor_b。其于给定裁切平面UDCP与绘图元素PR周边的交点以及裁切判定距离为正值的顶点的条件下,将裁切平面UDCP与绘图元素PR周边的交点以及裁切判定距离为正值的顶点视为一点集合(步骤40),并分别决定此点集合中最大的水平(X)坐标值Xmax、最小的水平(X)坐标值Xmin、最大的垂直(Y)坐标值Ymax以及最小的垂直(Y)坐标值Ymin(步骤41至步骤44)。接着,将裁剪窗界SWb的左侧边界设为Xmin和scissor_l的较大者,将裁剪窗界SWb的右侧边界设为Xmax和scissor_r的较小者,将裁剪窗界SWb的顶侧边界设为Ymax和scissor_t的较小者,以及将裁剪窗界SWb的底侧边界设为Ymin和scissor_b的较大者(步骤45至流程步骤48)。
决定裁切平面UDCP与绘图元素PR周边的交点意味求取裁切平面UDCP与绘图元素PR每一边界的交点。参见图5,其例示决定一边界EDGE和一裁切平面UDCP的交点的方法。边界EDGE表示为二顶点Vo(Xo,Yo,Zo,Wo)和Vi(Xi,Yi,Zi,Wi),其中Wo和Wi分别为顶点Vo和Vi的透视校正系数,其可以于顶点着色器202中决定。假设顶点Vo和Vi相对于裁切平面UDCP的裁切判定距离分别为Do和Di,则边界EDGE和裁切平面UDCP的交点Vx可以利用公式Vx=Vo+(Do/Wo)(Vi-Vo)/(Do/Wo-Di/Wi)求得。由于Vx在裁切平面UDCP之上,故其裁切判定距离等于零。裁切判定距离必须以透视校正系数修正之,方能内插出交点Vx的正确坐标。
回到图2。像素内插模块206依据裁剪窗界调整模块204调整后的新裁剪窗界SWN以诸如内插法的技术产生一群待描绘像素PXc、其相关属性值PXc_ATT以及其相对于裁切平面的裁切判定距离PXc_DISc。此群待描绘像素PXc基本上是产生自绘图元素PR剔除此新裁剪窗界SWN涵盖范围外的像素。若情况如图3所示的情形,则此群待描绘像素PXc即是位于图中斜线区域的点。由图3的例示显然可知,相较于传统方式,当使用者指定的裁切平面依据本发明的方法使得待显示的绘图元素的范围缩小时,其产生的待描绘像素PXc数目较少,故将节省求取其相关属性值的时间。同理,计算机绘图元素描绘装置200后续的组件Z值测试模块208、像素着色器210和颜色读取模块212均是针对该群待描绘像素PXc做进一步处理(Z值测试模块208并执行Z值测试使Z值缓冲器包括待描绘像素PXc中通过Z值测试的像素PXcz),其耗用的系统资源正比于待描绘像素PXc的数目,故若待描绘像素PXc数目减少,各模块的运算时间和使用的存储器频宽均相对减少。之后,像素着色器210依据该群通过通过Z值测试的像素PXcz和其相对于裁切平面的裁切判定距离PXcz_DISc决定一群实际描绘像素PXr,当该群待描绘像素PXcz数目减少,则像素着色器210相对耗用的资源亦较少。Z值测试模块208和颜色读取模块212的细节运作和传统方式相同,在此不予赘述。此点亦为本发明的一特色,其通过一独立的裁剪窗界调整模块204的加入,在不大幅改变其他模块的原有架构下,即达到提升计算机绘图元素描绘装置效能的目的。
由以上说明可知,本发明亦揭示一种附有使用者指定裁切平面的计算机绘图元素描绘方法。图6显示依据本发明一实施例的计算机绘图元素描绘方法。图6例示的方法仅针对三个使用者指定裁切平面的情况,但本发明的范围显然不限于此,本例示的简化仅是为了方便说明。
以下说明图6例示的附有三个使用者裁切平面的计算机绘图元素描绘方法。首先参见步骤60,其接收多个使用者裁切平面、预设裁剪窗界DSW以及欲描绘的绘图元素PR,其中使用者裁切平面包括第一裁切平面UDCP1、第二裁切平面UDCP2和第三裁切平面UDCP3。如前所述,裁切平面可以表示为空间函数,故步骤60可以接收三个空间函数F1(x,y,z)、F2(x,y,z)和F3(x,y,z)分别代表第一裁切平面UDCP1、第二裁切平面UDCP2和第三裁切平面UDCP3。步骤60可以于图2所示的顶点着色器202进行。
接着参见步骤61-63,其依据预设裁剪窗界DSW、第一裁切平面UDCP1和绘图元素PR的空间关系决定一第一裁剪窗界SW1,再依据第一裁剪窗界SW1、第二裁切平面UDCP2和绘图元素PR的空间关系决定一第二裁剪窗界SW2,复依据第二裁剪窗界SW2、第三裁切平面UDCP3和绘图元素PR的空间关系决定一第三裁剪窗界SW3。以上61至63的任一步骤均可以包括依据特定的空间关系决定一点集合,譬如,此点集合可以包括绘图元素PR未被某裁切平面裁切的顶点以及绘图元素PR周边与前述的某裁切平面的交点。之后即可运用诸如揭示于图4和其相关说明的方法调整原裁剪窗界(例如步骤61的预设裁剪窗界DSW、步骤62的第一裁剪窗界SW1和步骤63的第二裁剪窗界SW2)的范围而产生一新的裁剪窗界(例如步骤61的第一裁剪窗界SW1、步骤62的第二裁剪窗界SW2和步骤63的第三裁剪窗界SW3)。步骤61至63可以于图2所示的裁剪窗界调整模块204中完成。
之后,于步骤64,依据第三裁剪窗界SW3和绘图元素PR决定一群待描绘像素,譬如自绘图元素PR剔除第三裁剪窗界SW3范围外的像素以做为此群待描绘像素。步骤64可以于图2所示的像素内插模块206中完成。而后于步骤65决定一群实际描绘像素,此决定该群实际描绘像素的步骤包括自该群待描绘像素中移除符合一裁切准则的像素。例如,此裁切准则可以定义为使得任一空间函数F1(x,y,z)、F2(x,y,z)或F3(x,y,z)为负值的点,则步骤65即包括自该群待描绘像素中移除使得任一空间函数F1(x,y,z)、F2(x,y,z)或F3(x,y,z)为负值的像素。步骤65可以于图2所示的像素着色器210中完成。最后于步骤66显示或呈现该群实际描绘像素。
由于空间函数的表示方法可以自由选择(例如,其可以自由选择将f(X,Y,Z)表示为aX+bY+cZ+d、aX+bY+cZ或-aX-bY-cZ-d),故裁切准则亦可以定义为使得代表裁切平面的空间函数f(x,y,z)为正值的点,或是使得空间函数值落入一无限开放区间(infinite open interval)的点。无限开放区间是指具有一开放端点(open end point)的无限区间。例如,使得一函数为负值即表示使得该函数值落入无限开放区间(-∞,0)。本领域技术人员当能理解,若裁切准则定义为移除使得一空间函数值落入一无限开放区间的点,例如(-∞,EP)(EP表示此区间的开放端点),则使得该空间函数值落入另一无限开放区间(EP,∞)的点将会被保留,此二区间具有相同的开放端点且彼此没有交集。
以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本申请的权利要求书所界定的范围为准。
附图中符号的简单说明如下:
40-48:依据本发明的裁剪窗界调整方法的步骤
60-66:依据本发明的计算机绘图元素描绘方法的步骤
100:传统管线式计算机绘图元素描绘装置
200:本发明的管线式计算机绘图元素描绘装置
102/202:顶点着色器
204:裁剪窗界调整模块
106/206:像素内插模块
108/208:Z值测试模块
110/210:像素着色器
112/212:颜色读取模块
PR:绘图元素
Clogic:裁切逻辑
VX_ATT:顶点属性值
VX_DISc:顶点裁切判定距离
PX:绘图元素内部的所有像素
PX_ATT:绘图元素内部像素属性值
PX_DISc:绘图元素内部像素的裁切判定距离
PXz:绘图元素内部通过Z值测试的像素
PXr:实际描绘像素
PXc:待描绘像素
PXc_ATT:待描绘像素属性值
PXc_DISc:待描绘像素裁切判定距离
PXcz:通过Z值测试的待描绘像素
DSW:预设裁剪窗界
Swa:调整前的裁剪窗界
SWb:调整后的裁剪窗界
SWN:新裁剪窗界
UDCP/UPCP1/UPCP2:裁切平面
Vo/Vi:绘图元素顶点
Vx:绘图元素和裁切平面的交点
Wo/W:透视校正系数
Xo/Xi:空间水平坐标
Yo/Yi:空间垂直坐标
Zo/Zi:空间深度坐标
T:三角形绘图元素
EDGE:绘图元素的边界。
Claims (10)
1.一种计算机绘图元素描绘方法,其特征在于,包括:
接收该绘图元素、多个裁切平面和一预设裁剪窗界;
依据该预设裁剪窗界、所述多个裁切平面中的第一裁切平面和该绘图元素顶点间的空间关系决定一第一裁剪窗界;
依据该第一裁剪窗界、所述多个裁切平面中的第二裁切平面和该绘图元素顶点间的空间关系决定一第二裁剪窗界;
自该绘图元素剔除一调整后的裁剪窗界范围外的像素以决定一群待描绘像素;
决定一群实际描绘像素;以及
显示该群实际描绘像素,
其中决定该群实际描绘像素的步骤包括自该群待描绘像素中移除符合一裁切准则的像素,所述多个裁切平面分别表示为多个空间坐标函数,而该裁切准则判断像素坐标是否使得任一该多个空间坐标函数的值落入一第一无限开放区间,该绘图元素是一三角形且该第一无限开放区间等于(-∞,0)。
2.根据权利要求1所述的计算机绘图元素描绘方法,其特征在于,上述的决定该第二裁剪窗界的步骤包括:
决定一点集合,其包括该绘图元素周边与该第二裁切平面的交点和该绘图元素未被裁切的顶点;
决定该点集合中的最大垂直坐标值;
决定该点集合中的最小垂直坐标值;
决定该点集合中的最大水平坐标值;
决定该点集合中的最小水平坐标值;以及
将该第二裁剪窗界的任一边界设为该最大垂直坐标值、该最小垂直坐标值、该最大水平坐标值或该最小水平坐标值,
其中该未被裁切的顶点是该绘图元素中使得表示该第二裁切平面的空间坐标函数的值落入一第二无限开放区间的顶点,该第二无限开放区间和该第一无限开放区间具有相同的开放端点且其交集为空集合。
3.根据权利要求2所述的计算机绘图元素描绘方法,其特征在于,更包括决定该绘图元素各顶点的多个属性值,该多个属性值包括透视校正系数;
其中上述的决定该点集合的步骤包括利用内插法和该透视校正系数求取该绘图元素的一边界与该第二裁切平面的交点。
4.根据权利要求1所述的计算机绘图元素描绘方法,其特征在于,该第一裁剪窗界不等于该预设裁剪窗界且被该预设裁剪窗界所涵盖,该调整后的裁剪窗界不等于该第二裁剪窗界且被该第二裁剪窗界所涵盖。
5.一种计算机绘图元素描绘方法,其特征在于,包括:
输入该绘图元素、多个裁切平面和一预设裁剪窗界;
依据该预设裁剪窗界、该多个裁切平面和该绘图元素间的空间关系决定一新裁剪窗界;
自该绘图元素剔除该新裁剪窗界范围外的像素以决定一群待描绘像素;
通过移除该群待描绘像素中符合一裁切准则的像素而决定一群实际描绘像素;以及
显示该群实际描绘像素;
其中该多个裁切平面分别表示为多个空间坐标函数,而该裁切准则判断像素坐标是否使得任一该多个空间坐标函数的值落入一无限开放区间,该绘图元素是一三角形且该无限开放区间等于(-∞,0)。
6.根据权利要求5所述的计算机绘图元素描绘方法,其特征在于,上述的决定该新裁剪窗界的步骤包括:
依据该绘图元素和该多个裁切平面的一决定一点集合;
决定该点集合中一特定坐标的极值;以及
将该新裁剪窗界的任一边界设为该极值,
其中该特定坐标是垂直坐标或水平坐标,该极值是该特定坐标的最大值或最小值。
7.一种计算机绘图元素描绘装置,其特征在于,包括:
一顶点着色器,其接收该绘图元素、多个裁切平面和一预设裁剪窗界,并决定该绘图元素各顶点的多个属性值;
一裁剪窗界调整模块,其依据该预设裁剪窗界、所述多个裁切平面中的第一裁切平面和该绘图元素预点间的空间关系决定一第一裁剪窗界,并依据该第一裁剪窗界、所述多个裁切平面中的第二裁切平面和该绘图元素间的空间关系决定一第二裁剪窗界;
一像素内插模块,其自该绘图元素剔除一调整后的裁剪窗界范围外的像素以决定一群待描绘像素;以及
一像素着色器,其移除该群待描绘像素中符合一裁切准则的像素以决定一群实际描绘像素并输出至一像素显示区;
其中所述多个裁切平面分别表示为多个空间坐标函数,而该裁切准则判断像素坐标是否使得任一该多个空间坐标函数的值落入一第一无限开放区间,该绘图元素是一三角形且该第一无限开放区间等于(-∞,0)。
8.根据权利要求7所述的计算机绘图元素描绘装置,其特征在于,该裁剪窗界调整模块决定该第二裁剪窗界的动作包括:
决定一点集合,其包括该绘图元素周边与该第二裁切平面的交点和该绘图元素未被裁切的顶点;
决定该点集合中的最大垂直坐标值;
决定该点集合中的最小垂直坐标值;
决定该点集合中的最大水平坐标值;
决定该点集合中的最小水平坐标值;以及
将该第二裁剪窗界的任一边界设为该最大垂直坐标值、该最小垂直坐标值、该最大水平坐标值或该最小水平坐标值,
其中该未被裁切的顶点是该绘图元素中使得表示该第二裁切平面的空间坐标函数的值落入一第二无限开放区间的顶点,该第二无限开放区间和该第一无限开放区间具有相同的开放端点且其交集为空集合。
9.根据权利要求8所述的计算机绘图元素描绘装置,其特征在于,该多个属性值包括透视校正系数,上述的决定该点集合的动作包括利用内插法和该透视校正系数求取该绘图元素的一边界与该第二裁切平面的交点。
10.根据权利要求7所述的计算机绘图元素描绘装置,其特征在于,该第一裁剪窗界不等于该预设裁剪窗界且被该预设裁剪窗界所涵盖,该调整后的裁剪窗界不等于该第二裁剪窗界且被该第二裁剪窗界所涵盖。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101363144A CN100568289C (zh) | 2007-07-13 | 2007-07-13 | 计算机绘图元素描绘方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101363144A CN100568289C (zh) | 2007-07-13 | 2007-07-13 | 计算机绘图元素描绘方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101071509A CN101071509A (zh) | 2007-11-14 |
CN100568289C true CN100568289C (zh) | 2009-12-09 |
Family
ID=38898714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007101363144A Active CN100568289C (zh) | 2007-07-13 | 2007-07-13 | 计算机绘图元素描绘方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100568289C (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9947130B2 (en) | 2008-01-23 | 2018-04-17 | Intel Corporation | Method, apparatus, and computer program product for improved graphics performance |
CN105608712B (zh) * | 2015-12-11 | 2018-10-26 | 中国航空工业集团公司西安航空计算技术研究所 | 一种3d图形处理透视校正处理方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6304271B1 (en) * | 1999-02-05 | 2001-10-16 | Sony Corporation | Apparatus and method for cropping an image in a zooming graphical user interface |
CN1514410A (zh) * | 2003-05-13 | 2004-07-21 | 威盛电子股份有限公司 | 3d绘图的边界盒 |
CN1687971A (zh) * | 2005-05-25 | 2005-10-26 | 威盛电子股份有限公司 | 绘图方法及其装置 |
CN1806260A (zh) * | 2003-06-11 | 2006-07-19 | 皇家飞利浦电子股份有限公司 | 3d立体平面剪裁的用户控制 |
CN1818976A (zh) * | 2006-03-17 | 2006-08-16 | 威盛电子股份有限公司 | 进行图形处理的方法及相关装置 |
-
2007
- 2007-07-13 CN CNB2007101363144A patent/CN100568289C/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6304271B1 (en) * | 1999-02-05 | 2001-10-16 | Sony Corporation | Apparatus and method for cropping an image in a zooming graphical user interface |
CN1514410A (zh) * | 2003-05-13 | 2004-07-21 | 威盛电子股份有限公司 | 3d绘图的边界盒 |
CN1806260A (zh) * | 2003-06-11 | 2006-07-19 | 皇家飞利浦电子股份有限公司 | 3d立体平面剪裁的用户控制 |
CN1687971A (zh) * | 2005-05-25 | 2005-10-26 | 威盛电子股份有限公司 | 绘图方法及其装置 |
CN1818976A (zh) * | 2006-03-17 | 2006-08-16 | 威盛电子股份有限公司 | 进行图形处理的方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101071509A (zh) | 2007-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109685869B (zh) | 虚拟模型渲染方法与装置、存储介质、电子设备 | |
US5357599A (en) | Method and apparatus for rendering polygons | |
KR102465969B1 (ko) | 그래픽스 파이프라인을 수행하는 방법 및 장치 | |
US7652666B2 (en) | Hybrid hardware-accelerated relighting system for computer cinematography | |
US7924278B2 (en) | Real-time GPU rendering of piecewise algebraic surfaces | |
US5734806A (en) | Method and apparatus for determining graphical object visibility | |
CA1260638A (en) | Method of displaying image | |
JP3030206B2 (ja) | グラフィック多角形をクリップ領域にクリップする方法および装置 | |
JP6843237B2 (ja) | シーンのポイントクラウドを表現するシステム及び方法 | |
KR19980702804A (ko) | 영상 생성 및 조작을 위한 하드웨어 아키텍처 | |
JPH0683979A (ja) | 影の生成を伴うコンピュータ図形表示の方法及びシステム | |
JPH02287776A (ja) | 大域レンダリングに階層ディスプレイリストを採用する方法 | |
US5138699A (en) | Hardware utilization of color interpolation capability in a color imaging system | |
CN101714259B (zh) | 图形处理系统 | |
JPH09319891A (ja) | 画像処理装置及びその処理方法 | |
CN108022202A (zh) | 一种超前消隐几何引擎结构 | |
CN103403755A (zh) | 图像处理方法及装置 | |
US7158131B2 (en) | Implicit function rendering method of nonmanifold, direct drawing method of implicit function curved surface and programs thereof | |
CN100568289C (zh) | 计算机绘图元素描绘方法及装置 | |
US8098264B2 (en) | Method and apparatus for rendering computer graphics primitive | |
Fussell et al. | A vlsi-oriented architecture for real-time raster display of shaded polygons | |
JP2001148030A (ja) | 画像処理装置、記録媒体およびプログラム | |
KR100295709B1 (ko) | 스폿라이트 특성 형성 방법 및 이것을 이용한 화상 처리 시스템 | |
CN117830490A (zh) | 一种渲染方法及装置 | |
JPH0816816A (ja) | コンピュータグラフィックス表示方法 |
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 |