发明名称 三维电脑绘图系统中Z値误差修正之方法和装置
摘要 本发明主要提出一种Z值误差修正的装置和方法,在多边形之扫描转换(scan conversion)过程,将每一扫描段线(span)第一点的Z值(即深度值),藉本发明之误差修正之方式,获得精确的起始Z座标值,而使得该扫描线转换过程中每一绘图像素(pixel)的Z值误差都降低,故在以Z-缓冲器(Z-Buffer)演算法作遮蔽面消除处理时,因为能提供更准确之绘图资讯,所以可得到更正确之绘图影像。
申请公布号 TW371747 申请公布日期 1999.10.11
申请号 TW085113031 申请日期 1996.10.22
申请人 财团法人工业技术研究院 发明人 李润容;黄俊凯
分类号 G06T17/00 主分类号 G06T17/00
代理机构 代理人
主权项 1.一种三维电脑绘图系统中Z値误差修正之方法,其中包含下面步骤:(a)依该绘图系统扫描转换的顺序,选择并决定所绘物体的基本绘图元件(primitive)与该绘图系统扫描线座标轴相交截之第一条段线(span);(b)选择并决定该第一条段线在该基本绘图元件起始边缘线上的第一个点,修正此第一个点对应之该绘图系统所绘之扫描转换的第一点像素的Z座标値;(c)根据该第一点绘图像素修正后的Z座标値,计算前述之第一条段线上的其余复数点绘图像素之Z座标値;(d)选择与前述之第一条段线依扫描顺序的下一条段线,并依次执行下面步骤,直到该基本绘图元件的所有复数条段线皆扫描完成Z値座标修正:(1)决定该条段线在该基本绘图元件起始边缘线上的第一个点;(2)根据该第一条段线之第一个点的Z座标値,修正该条段线的前述之第一个点对应之绘图像素的Z座标値;(3)根据前述之第一点绘图像素修正后的Z座标値,计算该条段线上的其余复数点绘图像素之Z座标値。2.如申请专利范围第1项所述的三维电脑绘图系统中Z値误差修正之方法,其中步骤(b)之该第一条段线的第一点绘图像素之修正方式系为下列步骤者:(1)取得前述之第一条段线在该基本绘图元件起始边缘上的、前述之第一个点之Z座标値(FPZ),并取得该第一个点与该点对应之绘图像素的Z差距値(FPZ_ERROR);(2)以该差距値修正前述之第一条段线的第一点绘图像素之Z座标値(Z0),其中Z0=FPZ+FPZ_ERROR。3.如申请专利范围第2项所述的三维电脑绘图系统中Z値误差修正之方法,其中步骤(c)之该第一条段线上的其余复数点绘图像素之Z座标値计算方式系为下列步骤者:(1)取得相邻两点像素之水平增量(DZH);(2)用前述之水平增量値,累加计算该第一条段线的其余复数点像素的Z座标値其中Zi=Zi-l+DZH,i=l,...,k,而k为该第一条段线上的绘图像素点数目。4.如申请专利范围第1.2或3项所述的三维电脑绘图系统中Z値误差修正之方法,其中步骤(d)之(2)中该条段线上的第一点绘图像素之修正方式系为下列步骤者:(2-1)取得前述之第一条段线在该基本绘图元件起始边缘上的前述之第一个点之Z座标値(FPZ),并取得该基本绘图元件之起始扫描边缘线的Z增量値(DZL);(2-2)用该Z增量値(DZL)计算该条段线的第一个点之Z座标値(Zj0),其中Zj0=FPZ+DZL,j=l,...,m,而m为前述之复数条段线之数目;(2-3)取得该与第一条段线之第一个点对应之绘图像素的Z差距値(FPZ_ERROR),并将该Z差距値,设定成为所需修正的Z値误差量(ERROR_Z)初始値;(2-4)计算该第一个点对应之绘图像素的Z値误差量(ERROR_Z);(2-5)用该Z値误差量(ERROR_Z),修正前述之第一点绘图像素的Z座标値(Zj0),其中Zj0=Zj0+ERROR_Z,j=l,...,m,而m为前述之复数条段线之数目。5.如申请专利范围第4项所述的三维电脑绘图系统中Z値误差修正之方法,其中步骤(2-4)该Z値误差量(ERROR_Z)之计算方式系为下列步骤者:(i)取得该基本绘图元件之起始扫描边缘线与两相邻段线截点在X轴方向上之投影点之Z値差(DZ_ERROR);(ii)用该Z値差(DZ_ERROR),计算该条段线之前所累积之所有Z値误差量(EZ),其中EZ=ERROR_Z+DZ_ERROR;(iii)取得相邻两点像素之水平增量(DZH);(iv)将该累积Z値误差量(EZ)与该水平增量(DZH)加以比较,若EZ>DZH,则该Z値误差量(ERROR_Z)之値为EZ_DZH,否则其値则为EZ。6.如申请专利范围第1项所述的三维电脑绘图系统中Z値误差修正之方法,其中步骤(d)之(3)中该条段线上的复数点绘图像素之Z座标値计算方式系为下列步骤者:(3-1)取得相邻两点像素之水平增量(DZH);(3-2)以前述之水平增量値,累加计算该条段线的其余复数点绘图像素的Z座标値,即Zji=Zj(i-l)+DZH,其中i=l,...,k,k为该条段线的像素点数目,且j=l,...,m,m为前述之复数条段线数目。7.如申请专利范围第4项所述的三维电脑绘图系统中Z値误差修正之方法,其中步骤(d)之(3)其中该条段线上的复数点像素之Z座标値计算方式系为下列步骤者:(1)取得相邻两点像素之水平增量(DZH);(2)以前述之水平增量値,累加计算该条段线的其余复数点绘图像素的Z座标値,即Zji=Zj(i-l)+DZH,其中i=l,...,k,k为该条段线的像素点数目,且j=l,...,m,m为前述之复数条段线数目。8.如申请专利范围第5项所述的三维电脑绘图系统中Z値误差修正之方法,其中步骤(d)之(3)其中该条段线上的复数点像素之Z座标値计算方式系为下列步骤者:(1)取得相邻两点像素之水平增量(DZH);(2)以前述之水平增量値,累加计算该条段线的其余复数点绘图像素的Z座标値,即Zji=Zj(i-l)+DZH,其中i=l,...,k,k为该条段线的像素点数目,且j=l,...,m,m为前述之复数条段线数目。9.一种三维电脑绘图系统中Z値误差修正之装置,其中包含:一个Z-误差计算单元,其接收输入値:该绘图系统的基本绘图元件的第一条起始扫描段线之,第一点与该点对应之第一点绘图像素的Z差距値(FPZ_ERROR),该基本绘图元件之起始扫描边缘线与该基本绘图元件中两相邻段线之截点,在X轴方向上投影点之Z値差(DZ_ERROR),和该绘图系统的基本绘图元件与该绘图系统扫描线座标轴,相交截之段线中两相邻像素之水平增量(DZH);累加计算出该绘图系统之基本绘图元件的,每一扫描绘图段线之第一点绘图像素,所需修正之Z値误差量(ERROR_Z),并且将该Z値误差量输出;其中,第一条起始扫描段线之第一点绘图像素的Z値误差量为FPZ_ERROR,而该基本绘图元件的其它复数条段线之第一点绘图像素的Z値误差量,系以此Z値误差量初値累加DZ_ERROR计算得到;以及一个Z-座标修正单元,其接收:前述之Z-误差计算单元输出値(ERROR_Z),前述之两相邻像素之水平增量(DZH),前述之基本绘图元件的起始扫描边缘线之Z增量値(DZL),及前述之基本绘图元件的第一条起始扫描段线之第一个点之Z座标値(FPZ);累加计算并修正所有扫描段线的绘图像素之Z座标値后,将Z座标値输出;其中,第一条起始扫描段线之第一点绘图像素的Z座标値修正为FPZ+ERROR_Z,该基本绘图元件的其它复数条段线之第一点绘图像素的Z座标値,系修正为FPZ+DZL+ERROR_Z,而同一条段线之第一点绘图像素的Z座标,则以该同一条段线之第一点的Z座标値累加DZH计算得到。10.如申请专利范围第9项所述的三维电脑绘图系统中Z値误差修正之装置,其中之该Z-误差计算单元系为包含下列单元者:一个累加计算单元,用来累加计算前述之第一点绘图像素之累积Z値误差量(EZ),其接收输入値:前述之两相邻段线之截点在X轴方向上投影点之Z値差(DZ_ERROR),前述之两相邻像素之水平增量(DZH),和该条段线之前所累积之所有Z値误差量(_EZ);其中,若_EZ>DZH,则EZ=_EZ+DZ_ERROR-DZH,否则EZ=_EZ+DZ_ERROR;以及一个多工运算单元,其接收输入値:该与第一条段线之第一点对应之绘图像素的Z差距値(FPZ_ERROR),及前述之累加计算单元的输出値,该累积Z値误差量(EZ);该多工运算单元将该与第一条段线的第一个点对应之第一点绘图像素之Z差距値(FPZ_ERROR),回馈给前述之累加计算单元,若非前述之第一条段线上之第一点绘图像素,则将该累积Z値误差量(EZ),回馈给前述之累加计算单元,上述之回馈値即为前述之该条段线之前所累积之所有Z座标误差量(_EZ),同时亦为输出之该所需修正之Z値误差量(ERROR_Z)。11.如申请专利范围第9或10项所述的三维电脑绘图系统中Z値误差修正之装置,其中的该Z-座标修正单元系为包含下述单元者:一个累加计算单元,其接收:前述之Z-误差计算单元输出値ERROR_Z,前述之两相邻像素之水平增量(DZH),前述之基本绘图元件之起始扫描边缘线的Z增量値(DZL),及自一个多工运算单元输入之Z値(PFZ);其中,若为前述之第一条段线上之第一点绘图像素,则输出値为ERROR_Z+PFZ,若为该绘图系统之基本绘图元件的其余段线上之第一点绘图像素,则输出値为ERROR_Z+PFZ+DZL;而若为每一扫描绘图段线之其余绘图像素,则输出値为PFZ+DZH;以及一个多工运算单元,其接收:输入自前述累加器单元之输出値,前述之起始扫描第一条段线的前述之第一个点之Z座标値(FPZ);若为前述之每一条段线上之第一点绘图像素,则该多工运算单元输出FPZ,同时亦回馈(即PFZ)给前述累加计算单元,而若为前述之每一条段线上之其余绘图像素,该多工运算单元则选择将输入自前述累加计算单元之输出値回馈(即PFZ)给前述累加计算单元,同时亦将此値输出。图式简单说明:第一图是以传统扫描转换方法(一)绘成的三角形(10),绘制图形会失真。第二图是以传统扫描转换方法(二)绘成的三角形(20),绘制图形较第一图为正确。第三图为用传统扫描转换方法(一)绘成的两相接邻三角形(30),相互接缝边有严重之锯齿状。第四图为用传统扫描转换方法(二)所绘制的两相接邻三角形(40),相接邻边不会重复画点的例子,没有严重之锯齿状。第五图为以传统扫描转换方法(二)绘制之两相接邻三角形(50),因一三角形面朝前,另一三角形面朝后,相接邻边仍会产生重复画之像素点的例子。第六图是用本发明之Z値误差修正演算法绘制之两相接邻三角形(60),解决了因一三角形面朝前,另一三角形面朝后,相接邻边仍有重复画之点的缺点,而获得正确图形。第七图为运用本发明之Z-缓冲器演算法,作扫描转换的流程图(100)。第八图为本发明之Z値误差修正演算法的硬体(200)示意图。第十图为本发明的Z値误差修正演算法之硬体实施例,其中之Z-误差计算单元(210)之示意图。第十一图为本发明的Z値误差修正演算法之硬体实施例,其中之Z座标修正单元(220)之示意图。
地址 新竹县竹东镇中兴路四段一九五号