计算机立体图形显示的筛选方法及装置的制作方法

文档序号:6552886阅读:201来源:国知局
专利名称:计算机立体图形显示的筛选方法及装置的制作方法
技术领域
本发明涉及一种计算机立体图形显示筛选的测试方法与装置。具体而言,本发明涉及一种既快速又节省运算过程的计算机立体图形显示筛选测试方法和筛选测试的电路装置,其可应用于任何3D计算机绘图系统。
计算机立体图形显示筛选或背面删除法(back-face elimination)是一数学运算方法,用以比较完全多边形自观察点至一多边形平面中心点的方位,以移除视线不可及的多边形。一般而言,对一多面体表面的多个多边形而言,约有半数为背向,这些背向的多边形应自屏幕移除。至于判断是否为背向,可利用一简单的数学测试法。以下说明该测试法如

图1所示,可计算一多边形的向外法线向量N(outward normalvector),并计算该多边形中心至观察点的向量Np,根据此二向量定义该多边形的可视性(visibility,以下以Δ表示)如下Δ=Np·N>0如上可见,欲测试一多边形是否可见于屏幕的二维平面,可在该多边形上选择三个点V1、V2、V3,其中点V1为该多边形的中心,而点V2、V3为任意选定的点,但满足点V1、V2、V3不共线,且(V1,V2,V3)呈逆时针方向的关系。利用该计算机立体图形显示筛选测试,可得到以下结果Δ=[(V2-V1)×(V3-V1)]·(V1-V0)>0其中V0为观察点,令其座标为视觉空间的原点(0,0,0)。假设点V1,V2,和V3的座标依次为(x1,y1,z1),(x2,y2,z2)和(x3,y3,z3),则该计算机立体图形显示筛选程序即为Δ=x1y1z1x2y2z2x3y3z3>0]]>虽然此计算机立体图形显示筛选程序简单又直接,然而要完成一个三角形的计算机立体图形显示筛选测试,其整个运算过程需要用到12个乘法和5个加/减法运算,若要计算两个三角形,则需要做24个乘法与10个加/减法运算,不但费工,而且耗时。
鉴于上述缺陷,本发明的目的在于提供一种能简化运算过程并且省时的计算机立体图形显式筛选方法和装置。
本发明用于计算机绘图系统的一计算机立体图形显示筛选方法是同时对两个相邻但不共平面的三角形进行测试。若令第1个三角形的3个顶点为V1(x1,y1,z1),V2(x2,y2,z2),V3(x3,y3,z3),第2个三角形的3个顶点为V4(x4,y4,z4),V2(x2,y2,z2),V3(x3,y3,z3),其中V2与V3为两相邻三角形的共用顶点,由这些顶点的座标定义这二个三角形所具有的3个共同项(y2z3-z2y3),(z2x3-x2z3)和(x2y3-y2x3)。在计算时,根据本发明的一实施例先算出该3个共同项的值,然后再利用这些共同项分别计算x1(y2z3-z2y3)+y1(z2x3-x2z3)+z1(x2y3-y2x3)及x4(y2z3-z2y3)+y4(z2x3-x2z3)+z4(x2y3-y2x3),再通过此二式的正负符号而判断此二个三角形的可见性。
此外,本发明还提供一用于计算机绘图系统的计算机立体图形显示筛选的装置。该计算机立体图形显示筛选装置包括一个乘法器,其具有两个输入端,第一输入端接受来自外部的输入信号;第一多路复用器,具有两个输入端,第一输入端接受来自外部的输入信号,其输出信号接到乘法器的第二输入端;两个寄存器,用以寄存该乘法器的输出信号;第二多路复用器,具有两个输入端,其第一输入端接受乘法器输出的信号;第三多路复用器,具有两个输入端,分别接受两寄存器所输出的信号;一个加法/减法器,具有两个输入端,其第一输入端接受第三多路复用器的输出信号,第二输入端接受该第二多路复用器的输出信号,其输出信号回馈至该第一及第二多路复用器的第二输入端,并做为整个电路的输出信号。
此外,该计算机立体图形显示筛选装置通过一计算机指令程序控制,该指令程序存储于只读存储器(ROM,read-only-memory)中,可控制所有数据和信号的输出与输入。
本发明的上述和其他目的及优点,通过参照下列附图的说明可更加清楚
图1所示示意图为一立方体的计算机立体图形显示筛选测试;图2所示为本发明说明所依据的两个相邻三角形,其具有两共同点和一共同边;图3所示示意图系为本发明的两个相邻三角形的计算机立体图形显示筛选测试的运算;图4所示为本发明最佳实施例的一计算机立体图形显示筛选测试电路示意图。
表1所示为本发明最佳实施范例的一程序演绎表。
表2所示为表1程序演绎的运算过程。
表3所示为本发明的一实施例程序演绎表,该演绎表运用两个乘法器与一个加法/减法器以进行计算机立体图形显示筛选测试。
参照图2所示,两相邻的三角形共用两个顶点和一相邻边。本发明以两个相邻不共平面的三角形一同做计算机立体图形显示筛选测试,以减低运算成本。若两个相邻的三角形包含四点{V1,V2,V3,V4},则该Δ123和Δ234的运算可产生两个计算机立体图形显示筛选结果Δ123=x1y1z1x2y2z2x3y3z3=x1y2z2y3z3+y1z2x2z3x3+z1x2y2x3y3]]>Δ243=-Δ423=-x4y4z4x2y2z2x3y3z3=-x4y2z2y3z3-y4z2x2z3x3-z4x2y2x3y3]]>由上可知,Δ123和Δ234的共同项为 和 分别以S5,S7,和S9代替。因此,可事先计算此共同项,再求得两个相邻三角形的两个计算机立体图形显示筛选测试的结果。本发明的精神即以此方法替代现有方法,以节省计算机立体图形显示筛选测试的运算步骤与运算时间。
为对本发明有更清楚的了解,现对本发明的实施例详细说明。
如图2所示两个相邻的三角形共用的两顶点为V2(x2,y2,z2)与V3(x3,y3,z3),而V2、V3两点间为其共同边。本说明所述的实施例均依此图形座标做为运算基础。
参照图3所示本发明的实施例,其是以硬件设备来执行两个相邻不共平面的三角形的计算机立体图形显示筛选测试,可同时提供两个计算机立体图形显示筛选测试的结果。本发明实施例的构成分为5个阶段,共包括12个乘法器与7个加法/减法器。先计算两个相邻三角形的共同项,再进一步以求得两个计算机立体图形显示筛选的结果。
图3中,两个相邻的三角形第一阶段的运算,先由前述的共同项计算出y2*z3(P1)、y3*z2(P2)、z2*x3(P3)、x2*z3(P4)、x2*y3(P5)和y2*x3(P6),其同时进行时共需6个乘法器。
其次,由所求得的P1、P2、P3、P4、P5和P6,以3个减法器可同时计算出上述的共同项S5,S7,和S9值。
由上述所得Δ123=x1y2z2y3z3+y1z2x2z3x3+z1x2y2x3y3]]>∴Δ123=x1×S5+y1×S7+z1×S9Δ423=x4y2z2y3z3+y4z2x2z3x3+z4x2y2x3y3]]>∴Δ423=x4S5+y4S7+z4S9故若欲求得三角形Δ123与Δ423的值,如图3所示,再以6个乘法器先求得x1、x4与S5的乘积P8和P9,y1、y4与S7的乘积P10和P11,以及z1、z4与S9的乘积P12和P13后,最后的Δ123=P8+P10+P12,和Δ423=P9+P11+P13的计算,先利用两个加法/减法器求得S13=P8+P10和S14=P9+P11,再将S13与S14分别与P12和P13相加,即可求得二个计算机立体图形显示筛选测试的结果,Δ123与Δ423,如图3所示。
设加法/减法器与乘法器的流水线(pipeline)皆为3层,则图3所示的演算示意图分五个阶段,其可在15个计算周期内完成该计算机立体图形显示筛选的测试。
相对于图3的硬件设备,图4所示为一计算机立体图形显示筛选测试电路图。依照本发明的一实施例,结合计算机指令的运用,该测试电路的装置仅需两个输入端、一个乘法器、一个加法/减法器、两个寄存器、三个多路复用器和一个输出端。该电路依程序所定的顺序依序计算,可于20个计算周期内,完成计算机立体图形显示筛选的测试。
假设乘法器与加法/减法器两者的流水线均为3层,则表示在计算周期K起始的运算,其运算结果可于计算周期(K+3)取得。表1所示即为一用于该电路执行程序的演绎表,计算计算机立体图形显示筛选测试。举例而言,该表第二行于计算周期1中有一数学式“P1=y2*z3”。该数学式即表示于计算周期1开始,该乘法器有两个输入数据y2和z3。P1的运算,亦即y2和z3的乘积,即由计算周期1开始,其结果于计算周期4完成并存于寄存器中。与此同时,用以计算P2的数据于计算周期2开始输入,其运算结果可在计算周期5取得后存于多路复用器。至此,P1和P2值皆均已求得,故可于计算周期5开始S5的运算,其结果存于第二多路复用器,以此类推。参照图4和表1,得出表2,所示即为此一运算的全部演算过程。
综合上表与前述说明,令其一共同项为S5,而 其运算为(y2*z3)-(z2*y3),亦即P1-P2,其中P1为y2和z3乘积,即y2*z3;而P2为y3和z2乘积,亦即y3*z2。P1值于计算周期4求得后,被复制存于第一寄存器(R,Register);P2值则于计算周期5求得。此时,S5的计算是将存于第一寄存器(R)中的P1减去计算周期5时乘法器所输出的P2值而得到。
S5,S7和S9分别表示共同项 和 。因此,x1*S5,y1*S7和z1*S9的运算可分别在计算周期8、10、12开始,而其运算结果依序可在计算周期11、13和15取得。该三角形Δ123的计算机立体图形显示筛选测试即为此三者之和,其值可于计算周期19获得。另一三角形Δ234的计算机立体图形显示筛选测试则为P9,P11和P13之和,其数据输入和计算分别起始于计算周期9、11和13,而该三角形Δ234的计算机立体图形显示筛选测试运算则于计算周期20计算结束,取得结果。
为执行此运算过程,本发明包括有一计算机程序,用以控制数据的输入与存储。该指令程序包含输入数据、数据顺序、以及多路复用器内数据的选取。该指令程序可事先存储于只读存储器(ROM,Read OnlyMemory)中。
若以现行的计算机立体图形显示筛选测试每一立体物件的计算机图形,则各自测试两个平面所需的计算需要35个计算周期才能完成。依照本发明所述的方法,则可于20个计算周期内完成同样的运算,甚至若提供有更多的计算设备,如乘法器或加法/减法器,则可更加减少计算所需时间。举例而言,若同时使用两个乘法器和一个加法器/减法器,则可在18个计算周期内计算出两个计算机立体图形显示筛选测试的结果。详细演算,如表3所示。此举虽可节省计算机演算时间,然而硬件设备的增设,于空间上和经济效应上并无太大益处,故本说明书仅着重于以现有的设备做最佳的运用,而不详述其他情况的演算过程。
在较佳实施例的详细说明中所提出的具体的实施例及举例性附图和图表,仅为了易于说明本发明的技术内容,而并非将本发明狭义地限制于该实施例。凡依据本发明的精神及以下权利要求范围所做的种种变化均属本发明的范围。
表1本发明最佳实施范例的一程序演绎表
表2表1程序演绎的运算过程
表3本发明的一实施例程序演绎表,该演绎表运用两个乘法器与一个加法/减法器以进行计算机立体图形显示筛选测试
权利要求
1.一种用于计算机绘图系统的计算机立体图形显示的筛选方法,该方法同时对两个三角形进行测试,令第1个三角形的3个顶点为V1(x1,y1,z1),V2(x2,y2,z2),V3(x3,y3,z3),令第2个三角形的3个顶点为V4(x4,y4,z4),V2(x2,y2,z2),V3(x3,y3,z3),由这些顶点的座标定义该两个三角形具有以下3个共同项(y2z3-z2y3),(z2x3-x2z3)和(x2y3-y2x3),计算时先算出该3个共同项的值,然后再利用该共同项分别计算以下两式x1(y2z3-z2y3)+y1(z2x3-x2z3)+z1(x2y3-y2x3)及x4(y2z3-z2y3)+y4(z2x3-x2z3)+z4(x2y3-y2x3),再通过此二式的正负符号而判断该两三角形的可见性。
2.一种用于计算机绘图系统的计算机立体图形显示筛选的装置,该装置包括一个乘法器,具有两个输入端,第一输入端接受来自外部的输入信号;一第一多路复用器,具有两个输入端,第一输入端接受来自外部的输入信号,其输出信号接到该乘法器的第二输入端;一第一寄存器,用以寄存该乘法器的输出信号;一第二寄存器,用以寄存该乘法器的输出信号;一第二多路复用器,具有两个输入端,其第一输入端接受该乘法器的输出信号;一第三多路复用器,具有两个输入端,分别接受两个寄存器所输出的信号;一加法/减法器,具有两个输入端,其第一输入端接受该第三多路复用器的输出信号,第二输入端接受该第二多路复用器的输出信号,其输出信号回馈至该第一及第二多路复用器的第二输入端,并做为整个电路的输出信号。一只读存储器,其中存储有用以控制所有数据和信号的输出与输入的计算机指令程序。
3.如权利要求2所述的计算机立体图形显示筛选的装置,其中该乘法器与该加法器具有流水线结构。
全文摘要
一种计算机立体图形显示的筛选方法及装置。该方法同时对两三角形进行测试,第1三角形的3个顶点为V
文档编号G06T17/00GK1377012SQ0111200
公开日2002年10月30日 申请日期2001年3月26日 优先权日2001年3月26日
发明者吕忠晏 申请人:矽统科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1