CN1687971A - 绘图方法及其装置 - Google Patents
绘图方法及其装置 Download PDFInfo
- Publication number
- CN1687971A CN1687971A CN 200510073847 CN200510073847A CN1687971A CN 1687971 A CN1687971 A CN 1687971A CN 200510073847 CN200510073847 CN 200510073847 CN 200510073847 A CN200510073847 A CN 200510073847A CN 1687971 A CN1687971 A CN 1687971A
- Authority
- CN
- China
- Prior art keywords
- distance
- plane
- projection plane
- pixel
- buffer
- 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.)
- Granted
Links
Images
Landscapes
- Image Generation (AREA)
Abstract
一种绘图方法。首先,计算一使用者定义剪裁平面至一投影平面的距离,并依据该距离设定一缓存器。计算一三角形的顶点至投影平面的距离,并依据顶点至投影平面的距离计算三角形中一像素点至投影平面的距离。将像素点至投影平面的距离与缓存器中相应的一值进行对比。若像素点至投影平面的距离大于缓存器中的值时,不绘制像素点。
Description
技术领域
本发明有关于绘图方法,且特别有关于一种用于使用者定义剪裁平面(User-Defined Clip Plane,UDCP)的绘图方法及其装置。
背景技术
在空间中,不同的多边形将会投影至一投影平面,如投影平面来在屏幕上进行显示。当多个多边形同时投影至投影平面上的相同屏幕像素时,则距离投影平面最近的,即距离视点最近的多边形将会显示于投影平面上。图1为一示意图,其表示一Z-缓存器(Z-Buffer)原理。Z-缓存器用以比较空间中多边形投影于屏幕像素时距离投影平面的远近。如图1表示,空间中有三个多边形(101、102与103),其中多边形(101、102与103)上分别的像素点(I、J与K)将同时投影落在投影平面100的像素(x,y)上。将(x,y)分别代入多边形(101、102与103)的平面方程式,可以分别得到多边形(101、102与103)至投影平面100的距离,即Z值。通过比较每一平面的Z值,可以发现多边形101距离投影平面100最近,因此,投影平面100的像素(x,y)上必须显示多边形101上像素点I的颜色。
此外,在绘图设计中,使用者可以自行定义特定的剪裁平面来检查在不同剖面下的物体结构,或是限制物体的绘制范围。举例来说,图2表示一3D矩形200。当一矩形200被一前向(Face Forward)的使用者定义剪裁平面300切过时,如图3所示,则矩形200被切割为使用者定义剪裁平面300前可检查的一部分210与使用者定义剪裁平面300后无法检查的一部分220。注意的是,前向使用者定义剪裁平面表示剪裁平面前的物体可以被检查,而剪裁平面后的物体无法检查。而后向(Face Backward)使用者定义剪裁平面表示剪裁平面后的物体可以被检查,而剪裁平面前的物体无法检查。
对于一欲绘制的三角形而言,公知方法必须计算三角形的每一顶点至使用者定义剪裁平面的距离。再利用每一顶点至使用者定义剪裁平面的距离来内插得到三角形中每一像素点至使用者定义剪裁平面的距离。最后,若像素点至使用者定义剪裁平面的距离为负值,即代表此像素点位于使用者定义剪裁平面的反侧,则此像素点被丢弃,不被绘制。图4为一示意图,其表示公知用于使用者定义剪裁平面的绘图方法。如图所示,若一三角形包括A、B与C三个顶点,则可以分别依据A、B与C至使用者定义剪裁平面UDCP的距离dA、dB与dC来计算像素间的单位距离差(dx与dy),并利用单位距离与顶点位置来内插得到每一像素点(P1、P2与Pk)至使用者定义剪裁平面UDCP的距离。在此例子中,假设使用者定义剪裁平面UDCP为一正向剪裁平面,则像素点P1与P2将会被绘制。另外,由于像素点Pk至使用者定义剪裁平面UDCP的距离为负值,则像素点Pk将不会被绘制。
在公知绘图过程中,由于每一顶点与内部像素点的值都必须分别计算其至投影平面与使用者定义剪裁平面的距离,当同时具有多个使用者定义剪裁平面时,则必须花费许多资源来进行相关计算,从而降低整体绘图程序的效率。
发明内容
有鉴于此,本发明提供一种用于使用者定义剪裁平面的绘图方法及其装置。
依据本发明实施例的绘图方法,首先,计算一使用者定义剪裁平面至一投影平面的距离,并依据该距离设定一缓存器。计算一三角形的顶点至投影平面的距离,并依据顶点至投影平面的距离计算三角形中一像素点至投影平面的距离。将像素点至投影平面的距离与缓存器中相应的一值进行对比。若像素点至投影平面的距离大于缓存器中的值时,不绘制像素点。
依据本发明实施例的绘图方法,首先,计算一第一使用者定义剪裁平面至一投影平面的距离,并依据距离设定一第一缓存器,并计算一第二使用者定义剪裁平面至投影平面的距离,并依据距离设定一第二缓存器。之后,计算一三角形的多个顶点至投影平面的距离,并依据顶点至投影平面的距离计算三角形中一像素点至投影平面的距离。将像素点至投影平面的距离与第一缓存器中相应的一第一值进行对比。若像素点至投影平面的距离大于第一缓存器中的第一值时,不绘制像素点。将像素点至投影平面的距离与第二缓存器中相应的一第二值进行对比。若像素点至投影平面的距离小于第二缓存器中的第二值时,不绘制像素点
本发明上述方法可以通过程序代码方式收录于实体媒体中。当程序代码被机器加载且执行时,机器变成用以实行本发明的装置。
附图说明
为使本发明的上述目的、特征和优点能更明显易懂,下文特举实施例,并配合附图,进行详细说明如下。
图1为一示意图,其表示一Z-缓存器原理。
图2表示一3D矩形。
图3表示图2中被一使用者定义剪裁平面切过的3D矩形。
图4为一示意图,其表示公知用于使用者定义剪裁平面的绘图方法。
图5为一示意图,其表示依据本发明实施例的装置。
图6为一流程图,其表示依据本发明实施例的绘图方法。
符号说明
100-投影平面;101、102、103-多边形;I、J、K-像素点;200-矩形;210-可检查矩形;220-不可检查矩形;300、UDCP-使用者定义剪裁平面;A、B、C-顶点;P1、P2、Pk-像素点;dA、dB、dC-距离;500-装置;510-顶点着色引擎;520-装配引擎;530-原始引擎;540-像素着色引擎;550-突发引擎;S601、S602、…、S610-操作步骤。
具体实施方式
图5为一示意图,其表示依据本发明实施例的装置。
依据本发明实施例的装置500包括一顶点着色引擎(Vertex ShaderEngine,VSE)510、一装配引擎(Setup Engine,SE)520、一原始引擎(PrimitiveEngine,PE)530、一像素着色引擎(Pixel Shader Engine,PSE)540、与一突发引擎(Burst Engine,BE)550。
顶点着色引擎510计算物体中每一三角形的顶点至一投影平面的距离。顶点着色引擎510亦计算物体中每一三角形的顶点至所有使用者定义剪裁平面的距离。值得注意的是,顶点着色引擎510可以通过计算一三角形的顶点至使用者定义剪裁平面的距离的一正负号位符号位(Sign Bit),并依据每一顶点分别相应的正负号位符号位判断是否绘制三角形。在一实施例中,当一三角形中所有顶点所相应的正负号位符号位都是负值时,则此三角形可以忽略,不进行后续处理。装配引擎520依据三角形的顶点至投影平面的距离计算三角形中像素间的单位距离差(dx与dy)。原始引擎530利用单位距离差与顶点位置来内插得到三角形中每一像素点至投影平面的距离。像素着色引擎540用以将像素点至投影平面的距离与两缓存器中的值进行对比,以过滤出一些不需要绘制的像素点。突发引擎550则将剩下的像素点进行绘制。值得注意的是,在完整的绘图装置中,顶点着色引擎510、装配引擎520、原始引擎530、像素着色引擎540与突发引擎550亦各自具有其它功能与操作,并不限定于此。
另外,两缓存器包括一近平面(Near Plane)缓存器与一远平面(Far Plane)缓存器(图5中未表示)。在一实施例中,近平面缓存器与远平面缓存器的大小等于屏幕的大小。近平面缓存器依据后向的使用者定义剪裁平面至投影平面的距离来设定。当有多个后向的使用者定义剪裁平面时,则近平面缓存器中相应投影平面中一投影像素的值可以设定为距离投影平面最远的使用者定义剪裁平面上相应的像素点的距离。远平面缓存器依据前向的使用者定义剪裁平面至投影平面的距离来设定。当有多个前向的使用者定义剪裁平面时,则远平面缓存器中相应投影平面中一投影像素的值可以设定为距离投影平面最近的使用者定义剪裁平面上相应的像素点的距离。值得注意的是,在绘图过程中,远平面缓存器即为Z-缓存器,换言之,远平面缓存器将会依据Z-缓存器原理进行更新,Z-缓存器原理的细节在此省略。
图6为一流程图,其表示依据本发明实施例的绘图方法。注意的是,在此实施例中仅以一物体的一三角形进行说明。物体的其它三角形可以依据相同方式进行操作与运算。
首先,如步骤S601,依据使用者定义剪裁平面设定近平面与远平面缓存器。其中,近平面缓存器依据后向的使用者定义剪裁平面至投影平面的距离来设定。当有多个后向的使用者定义剪裁平面时,则近平面缓存器中相应投影平面中一投影像素的值可以设定为距离投影平面最远的使用者定义剪裁平面上相应的像素点的距离。注意的是,当没有后向的使用者定义剪裁平面时,则近平面缓存器中的值可以设定为0。另外,远平面缓存器依据前向的使用者定义剪裁平面至投影平面的距离来设定。当有多个前向的使用者定义剪裁平面时,则远平面缓存器中相应投影平面中一投影像素的值可以设定为距离投影平面最近的使用者定义剪裁平面上相应的像素点的距离。注意的是,当没有前向的使用者定义剪裁平面时,则远平面缓存器中的值可以设定为1。
如步骤S602,分别计算三角形的顶点至投影平面与每一使用者定义剪裁平面的距离。注意的是,计算顶点至使用者定义剪裁平面的距离可以是计算该距离的正负号位符号位。之后,如步骤S603,判断顶点至使用者定义剪裁平面的距离是否都是负值。换言之,判断顶点是否都位于前向的使用者定义剪裁平面之后,或是后向的使用者定义剪裁平面之前。若是,如步骤S604,丢弃此三角形,不进行绘制。若否,如步骤S605,依据顶点至投影平面的距离利用内插法计算三角形中每一像素点至投影平面的距离。针对每一像素点,如步骤S606,判断像素点至投影平面的距离是否大于远平面缓存器中相应的值。若是,如步骤S607,丢弃此像素点,不进行绘制。若否,如步骤S608,判断像素点至投影平面的距离是否小于近平面缓存器中相应的值。若是,如步骤S607,丢弃此像素点,不进行绘制。若否,如步骤S609,判断是否三角形中所有的像素点都已经检查过。若否,流程回到步骤S606,继续检查另一个像素点。若是,如步骤S610,绘制三角形中剩余的像素点。值的注意的是,在绘图过程中,远平面缓存器将会依据Z-缓存器原理进行更新,且依据Z-缓存器原理,投影至相同投影像素的不同像素点中,最靠近投影平面的像素点会被绘制。
本发明的方法与系统,或特定类型或其中部份,可以以程序代码的类型包含于实体媒体,如软盘、光盘、硬盘、或是任何其它机器可读取(如计算机可读取)储存媒体,其中,当程序代码被机器,如计算机加载且执行时,此机器变成用以参与本发明的装置。本发明的方法与装置也可以以程序代码类型通过一些传送媒体,如电线或电缆、光纤、或是任何传输类型进行传送,其中,当程序代码被机器,如计算机接收、加载且执行时,此机器变成用以参与本发明的装置。当在一般用途处理器实用时,程序代码结合处理器提供一操作类似于应用特定逻辑电路的独特装置。
本发明虽以优选实施例公开如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围的情况下,可进行更动与修改,因此本发明的保护范围以所提出的权利要求所限定的范围为准。
Claims (14)
1.一种绘图方法,包括下列步骤:
计算一第一使用者定义剪裁平面至一投影平面的距离,并依据该距离设定一第一缓存器;
计算一第一三角形的多个顶点至该投影平面的距离,并依据该多个顶点至该投影平面的距离计算该第一三角形中一第一像素点至该投影平面的距离;
将该第一像素点至该投影平面的距离与该第一缓存器中相应的一第一值进行对比;以及
若该第一像素点至该投影平面的距离大于该第一缓存器中的该第一值时,不绘制该第一像素点。
2.如权利要求1所述的绘图方法,还包括下列步骤:
计算一第二使用者定义剪裁平面至该投影平面的距离,并依据该距离设定一第二缓存器;
将该第一像素点至该投影平面的距离与该第二缓存器中相应的一第二值进行对比;以及
若该第一像素点至该投影平面的距离小于该第二缓存器中的该第二值时,不绘制该第一像素点。
3.如权利要求1所述的绘图方法,还包括下列步骤:
计算每一该多个顶点至该第一使用者定义剪裁平面的距离;以及
若每一该多个顶点至该第一使用者定义剪裁平面的距离皆为负值时,不绘制该第一三角形。
4.如权利要求3所述的绘图方法,其中计算每一该多个顶点至该第一使用者定义剪裁平面的距离计算每一该多个顶点至该第一使用者定义剪裁平面的距离的一正负号位符号位,并依据每一该多个顶点分别相应的该正负号位符号位判断是否绘制该第一三角形。
5.如权利要求1所述的绘图方法,还包括依据该多个顶点至该投影平面的距离利用一内插法计算该第一像素点至该投影平面的距离。
6.如权利要求1所述的绘图方法,还包括
计算一第二三角形的多个顶点至该投影平面的距离,并依据该多个顶点至该投影平面的距离计算该第二三角形中至少一第二像素点至该投影平面的距离;以及
若该第二像素点至该投影平面的距离小于该第一缓存器中相应的该第一值时,将该第一值设定为该第二像素点至该投影平面的距离。
7.一种绘图方法,包括下列步骤:
计算一第一使用者定义剪裁平面至一投影平面的距离,并依据该距离设定一第一缓存器;
计算一第二使用者定义剪裁平面至该投影平面的距离,并依据该距离设定一第二缓存器;
计算一第一三角形的多个顶点至该投影平面的距离,并依据该多个顶点至该投影平面的距离计算该第一三角形中一第一像素点至该投影平面的距离;
将该第一像素点至该投影平面的距离与该第一缓存器中相应的一第一值进行对比;
若该第一像素点至该投影平面的距离大于该第一缓存器中的该第一值时,不绘制该第一像素点。
将该第一像素点至该投影平面的距离与该第二缓存器中相应的一第二值进行对比;以及
若该第一像素点至该投影平面的距离小于该第二缓存器中的该第二值时,不绘制该第一像素点。
8.如权利要求7所述的绘图方法,还包括下列步骤:
计算每一该多个顶点至该第一使用者定义剪裁平面的距离;以及
若每一该多个顶点至该第一使用者定义剪裁平面的距离皆为负值时,不绘制该第一三角形。
9.如权利要求8所述的绘图方法,其中计算每一该多个顶点至该第一使用者定义剪裁平面的距离计算每一该多个顶点至该第一使用者定义剪裁平面的距离的一正负号位符号位,并依据每一该多个顶点分别相应的该正负号位符号位判断是否绘制该第一三角形。
10.如权利要求7所述的绘图方法,还包括下列步骤:
计算一第二三角形的多个顶点至该投影平面的距离,并依据该多个顶点至该投影平面的距离计算该第二三角形中至少一第二像素点至该投影平面的距离;以及
若该第二像素点至该投影平面的距离小于该第一缓存器中相应的该第一值时,将该第一值设定为该第二像素点至该投影平面的距离。
11.一种绘图装置,包括:
一第一装置,用以计算一第一使用者定义剪裁平面至一投影平面的距离,并依据该距离设定一第一缓存器;
一第二装置,用以计算一第一三角形的多个顶点至该投影平面的距离,并依据该多个顶点至该投影平面的距离计算该第一三角形中一第一像素点至该投影平面的距离;以及
一第三装置,用以将该第一像素点至该投影平面的距离与该第一缓存器中相应的一第一值进行对比,且若该第一像素点至该投影平面的距离大于该第一缓存器中的该第一值时,不绘制该第一像素点。
12.如权利要求11所述的绘图装置,还包括:
一第四装置,用以计算一第二使用者定义剪裁平面至该投影平面的距离,并依据该距离设定一第二缓存器;以及
一第五装置,用以将该第一像素点至该投影平面的距离与该第二缓存器中相应的一第二值进行对比,且若该第一像素点至该投影平面的距离小于该第二缓存器中的该第二值时,不绘制该第一像素点。
13.如权利要求11所述的绘图装置,还包括:
一第六装置,用以计算每一该多个顶点至该第一使用者定义剪裁平面的距离;以及
一第七装置,用以若每一该多个顶点至该第一使用者定义剪裁平面的距离皆为负值时,不绘制该第一三角形。
14.如权利要求11所述的绘图装置,还包括:
一第八装置,用以计算一第二三角形的多个顶点至该投影平面的距离,并依据该多个顶点至该投影平面的距离计算该第二三角形中至少一第二像素点至该投影平面的距离;以及
一第九装置,用以若该第二像素点至该投影平面的距离小于该第一缓存器中相应的该第一值时,将该第一值设定为该第二像素点至该投影平面的距离。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100738473A CN100468460C (zh) | 2005-05-25 | 2005-05-25 | 绘图方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100738473A CN100468460C (zh) | 2005-05-25 | 2005-05-25 | 绘图方法及其装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1687971A true CN1687971A (zh) | 2005-10-26 |
CN100468460C CN100468460C (zh) | 2009-03-11 |
Family
ID=35306012
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100738473A Active CN100468460C (zh) | 2005-05-25 | 2005-05-25 | 绘图方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100468460C (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100568289C (zh) * | 2007-07-13 | 2009-12-09 | 威盛电子股份有限公司 | 计算机绘图元素描绘方法及装置 |
CN101261744B (zh) * | 2008-03-27 | 2010-10-13 | 威盛电子股份有限公司 | 绘图处理器中的保护带剪切系统、保护带剪切方法 |
-
2005
- 2005-05-25 CN CNB2005100738473A patent/CN100468460C/zh active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100568289C (zh) * | 2007-07-13 | 2009-12-09 | 威盛电子股份有限公司 | 计算机绘图元素描绘方法及装置 |
CN101261744B (zh) * | 2008-03-27 | 2010-10-13 | 威盛电子股份有限公司 | 绘图处理器中的保护带剪切系统、保护带剪切方法 |
Also Published As
Publication number | Publication date |
---|---|
CN100468460C (zh) | 2009-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210279503A1 (en) | Image processing method, apparatus, and device, and storage medium | |
TWI278788B (en) | Z-buffering techniques for graphics rendering | |
CN111860304B (zh) | 一种图像标注方法、电子装置、设备及存储介质 | |
US20100277504A1 (en) | Method and system for serving three dimension web map service using augmented reality | |
CN109121009A (zh) | 视频处理方法、客户端和服务器 | |
CN112527374B (zh) | 标注工具生成方法、标注方法、装置、设备以及存储介质 | |
US11967132B2 (en) | Lane marking detecting method, apparatus, electronic device, storage medium, and vehicle | |
CN113223113B (zh) | 车道线处理方法、装置、电子设备和云控平台 | |
CN101236485A (zh) | 一种多屏3d同步显示的方法、装置及系统 | |
CN112306439B (zh) | 一机多屏交互系统及其管理方法、电子设备和存储介质 | |
CN111814637A (zh) | 一种危险驾驶行为识别方法、装置、电子设备及存储介质 | |
WO2023040437A1 (zh) | 路牙确定方法、装置、设备以及存储介质 | |
CN110390327A (zh) | 前景提取方法、装置、计算机设备及存储介质 | |
CN109145272A (zh) | 文本渲染和布局方法、装置、设备和存储介质 | |
CN112115865A (zh) | 用于处理图像的方法、装置、设备以及存储介质 | |
CN1687971A (zh) | 绘图方法及其装置 | |
CN113126120A (zh) | 数据标注方法、装置、设备、存储介质以及计算机程序产品 | |
CN108510740A (zh) | 误报路况的挖掘方法及装置 | |
CN113592981B (zh) | 图片标注方法、装置、电子设备和存储介质 | |
US20220207991A1 (en) | Method and device for determining boundary points of bottom surface of vehicle, roadside device and cloud control platform | |
CN109088746A (zh) | 一种云资源编排方法和装置 | |
CN113486415A (zh) | 模型透视方法、智能终端以及存储装置 | |
CN114359376A (zh) | 包裹定位方法、装置、电子设备和存储介质 | |
CN113362438A (zh) | 全景渲染的方法、装置、电子设备、介质及程序 | |
US9196066B2 (en) | Method, apparatus and system for rendering an object on a page |
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 |