導航:首頁 > 源碼編譯 > z緩沖區消隱演算法

z緩沖區消隱演算法

發布時間:2024-08-08 22:15:36

1. 數控技術

1數控編程及其發展

數控編程是目前CAD/CAPP/CAM系統中最能明顯發揮效益的環節之一,其在實現設計加工自動化、提高加工精度和加工質量、縮短產品研製周期等方面發揮著重要作用。在諸如航空工業、汽車工業等領域有著大量的應用。由於生產實際的強烈需求,國內外都對數控編程技術進行了廣泛的研究,並取得了豐碩成果。下面就對數控編程及其發展作一些介紹。

1.1數控編程的基本概念

數控編程是從零件圖紙到獲得數控加工程序的全過程。它的主要任務是計算加工走刀中的刀位點(cutterlocationpoint簡稱CL點)。刀位點一般取為刀具軸線與刀具表面的交點,多軸加工中還要給出刀軸矢量。

1.2數控編程技術的發展概況

為了解決數控加工中的程序編制問題,50年代,MIT設計了一種專門用於機械零件數控加工程序編制的語言,稱為APT(AutomaticallyProgrammedTool)。其後,APT幾經發展,形成了諸如APTII、APTIII(立體切削用)、APT(演算法改進,增加多坐標曲面加工編程功能)、APTAC(Advancedcontouring)(增加切削資料庫管理系統)和APT/SS(SculpturedSurface)(增加雕塑曲面加工編程功能)等先進版。
採用APT語言編制數控程序具有程序簡煉,走刀控制靈活等優點,使數控加工編程從面向機床指令的「匯編語言」級,上升到面向幾何元素.APT仍有許多不便之處:採用語言定義零件幾何形狀,難以描述復雜的幾何形狀,缺乏幾何直觀性;缺少對零件形狀、刀具運動軌跡的直觀圖形顯示和刀具軌跡的驗證手段;難以和CAD資料庫和CAPP系統有效連接;不容易作到高度的自動化,集成化。
針對APT語言的缺點,1978年,法國達索飛機公司開始開發集三維設計、分析、NC加工一體化的系統,稱為為CATIA。隨後很快出現了象EUCLID,UGII,INTERGRAPH,Pro/Engineering,MasterCAM及NPU/GNCP等系統,這些系統都有效的解決了幾何造型、零件幾何形狀的顯示,交互設計、修改及刀具軌跡生成,走刀過程的模擬顯示、驗證等問題,推動了CAD和CAM向一體化方向發展。到了80年代,在CAD/CAM一體化概念的基礎上,逐步形成了計算機集成製造系統(CIMS)及並行工程(CE)的概念。目前,為了適應CIMS及CE發展的需要,數控編程系統正向集成化和智能化夫發展。
在集成化方面,以開發符合STEP()標準的參數化特徵造型系統為主,目前已進行了大量卓有成效的工作,是國內外開發的熱點;在智能化方面,工作剛剛開始,還有待我們去努力。

2 NC刀具軌跡生成方法研究發展現狀

數控編程的核心工作是生成刀具軌跡,然後將其離散成刀位點,經後置處理產生數控加工程序。下面就刀具軌跡產生方法作一些介紹。

2.1基於點、線、面和體的NC刀軌生成方法

CAD技術從二維繪圖起步,經歷了三維線框、曲面和實體造型發展階段,一直到現在的參數化特徵造型。在二維繪圖與三維線框階段,數控加工主要以點、線為驅動對象,如孔加工,輪廓加工,平面區域加工等。這種加工要求操作人員的水平較高,交互復雜。在曲面和實體造型發展階段,出現了基於實體的加工。實體加工的加工對象是一個實體(一般為CSG和BREP混合表示的),它由一些基本體素經集合運算(並、交、差運算)而得。實體加工不僅可用於零件的粗加工和半精加工,大面積切削掉餘量,提高加工效率,而且可用於基於特徵的數控編程系統的研究與開發,是特徵加工的基礎。
實體加工一般有實體輪廓加工和實體區域加工兩種。實體加工的實現方法為層切法(SLICE),即用一組水平面去切被加工實體,然後對得到的交線產生等距線作為走刀軌跡。本文從系統需要角度出發,在ACIS幾何造型平台上實現了這種基於點、線、面和實體的數控加工。

2.2基於特徵的NC刀軌生成方法

參數化特徵造型已有了一定的發展時期,但基於特徵的刀具軌跡生成方法的研究才剛剛開始。特徵加工使數控編程人員不在對那些低層次的幾何信息(如:點、線、面、實體)進行操作,而轉變為直接對符合工程技術人員習慣的特徵進行數控編程,大大提高了編程效率。
W.R.Mail和A.J.Mcleod在他們的研究中給出了一個基於特徵的NC代碼生成子系統,這個系統的工作原理是:零件的每個加工過程都可以看成對組成該零件的形狀特徵組進行加工的總和。那麼對整個形狀特徵或形狀特徵組分別加工後即完成了零件的加工。而每一形狀特徵或形狀特徵組的NC代碼可自動生成。目前開發的系統只適用於2.5D零件的加工。
LeeandChang開發了一種用虛擬邊界的方法自動產生凸自由曲面特徵刀具軌跡的系統。這個系統的工作原理是:在凸自由曲面內嵌入一個最小的長方塊,這樣凸自由曲面特徵就被轉換成一個凹特徵。最小的長方塊與最終產品模型的合並就構成了被稱為虛擬模型的一種間接產品模型。刀具軌跡的生成方法分成三步完成:(1)、切削多面體特徵;(2)、切削自由曲面特徵;(3)、切削相交特徵。
JongYunJung研究了基於特徵的非切削刀具軌跡生成問題。文章把基於特徵的加工軌跡分成輪廓加工和內區域加工兩類,並定義了這兩類加工的切削方向,通過減少切削刀具軌跡達到整體優化刀具軌跡的目的。文章主要針對幾種基本特徵(孔、內凹、台階、槽),討論了這些基本特徵的典型走刀路徑、刀具選擇和加工順序等,並通過IP(InterProgramming)技術避免重復走刀,以優化非切削刀具軌跡。另外,JongYunJong還在他1991年的博士論文中研究了製造特徵提取和基於特徵的刀具及刀具路徑。
特徵加工的基礎是實體加工,當然也可認為是更高級的實體加工。但特徵加工不同於實體加工,實體加工有它自身的局限性。特徵加工與實體加工主要有以下幾點不同:
從概念上講,特徵是組成零件的功能要素,符合工程技術人員的操作習慣,為工程技術人員所熟知;實體是低層的幾何對象,是經過一系列布爾運算而得到的一個幾何體,不帶有任何功能語義信息;實體加工往往是對整個零件(實體)的一次性加工。但實際上一個零件不太可能僅用一把刀一次加工完,往往要經過粗加工、半精加工、精加工等一系列工步,零件不同的部位一般要用不同的刀具進行加工;有時一個零件既要用到車削,也要用到銑削。因此實體加工主要用於零件的粗加工及半精加工。而特徵加工則從本質上解決了上述問題;特徵加工具有更多的智能。對於特定的特徵可規定某幾種固定的加工方法,特別是那些已在STEP標准規定的特徵更是如此。如果我們對所有的標准特徵都制定了特定的加工方法,那麼對那些由標准特徵夠成的零件的加工其方便性就可想而知了。倘若CAPP系統能提供相應的工藝特徵,那麼NCP系統就可以大大減少交互輸入,具有更多的智能。而這些實體加工是無法實現的;
特徵加工有利於實現從CAD、CAPP、NCP及CNC系統的全面集成,實現信息的雙向流動,為CIMS乃至並行工程(CE)奠定良好的基礎;而實體加工對這些是無能為力的。

2.3現役幾個主要CAD/CAM系統中的NC刀軌生成方法分析

現役CAM的構成及主要功能

目前比較成熟的CAM系統主要以兩種形式實現CAD/CAM系統集成:一體化的CAD/CAM系統(如:UGII、Euclid、Pro/ENGINEER等)和相對獨立的CAM系統(如:Mastercam、Surfcam等)。前者以內部統一的數據格式直接從CAD系統獲取產品幾何模型,而後者主要通過中性文件從其它CAD系統獲取產品幾何模型。然而,無論是哪種形式的CAM系統,都由五個模塊組成,即交互工藝參數輸入模塊、刀具軌跡生成模塊、刀具軌跡編輯模塊、三維加工動態模擬模塊和後置處理模塊。下面僅就一些著名的CAD/CAM系統的NC加工方法進行討論。

UGII加工方法分析
一般認為UGII是業界中最好,最具代表性的數控軟體。其最具特點的是其功能強大的刀具軌跡生成方法。包括車削、銑削、線切割等完善的加工方法。其中銑削主要有以下功能:
、PointtoPoint:完成各種孔加工;
、PanarMill:平面銑削。包括單向行切,雙向行切,環切以及輪廓加工等;
、FixedContour:固定多軸投影加工。用投影方法控制刀具在單張曲面上或多張曲面上的移動,控制刀具移動的可以是已生成的刀具軌跡,一系列點或一組曲線;
、VariableContour:可變軸投影加工;
、Parameterline:等參數線加工。可對單張曲面或多張曲面連續加工;
、ZigZagSurface:裁剪面加工;
、RoughtoDepth:粗加工。將毛坯粗加工到指定深度;
、CavityMill:多級深度型腔加工。特別適用於凸模和凹模的粗加工;
、SequentialSurface:曲面交加工。按照零件面、導動面和檢查面的思路對刀具的移動提供最大程度的控制。
EDSUnigraphics還包括大量的其它方面的功能,這里就不一一列舉了。

STRATA加工方法分析
STRATA是一個數控編程系統開發環境,它是建立在ACIS幾何建模平台上的。
它為用戶提供兩種編程開發環境,即NC命令語言介面和NC操作C++類庫。它可支持三軸銑削,車削和線切割NC加工,並可支持線框、曲面和實體幾何建模。其NC刀具軌跡生成方法是基於實體模型。STRATA基於實體的NC刀具軌跡生成類庫提供的加工方法包括:
ProfileToolpath:輪廓加工;
AreaClearToolpath:平面區域加工;
SolidProfileToolpath:實體輪廓加工;
SolidAreaClearToolpath:實體平面區域加工;
SolidFaceToolPath:實體表面加工;
SolidSliceToolPath:實體截平面加工;
LanguagebasedToolpath:基於語言的刀具軌跡生成。
其它的CAD/CAM軟體,如Euclid,Cimitron,CV,CATIA等的NC功能各有千秋,但其基本內容大同小異,沒有本質區別。

2.4現役CAM系統刀軌生成方法的主要問題

按照傳統的CAD/CAM系統和CNC系統的工作方式,CAM系統以直接或間接(通過中性文件)的方式從CAD系統獲取產品的幾何數據模型。CAM系統以三維幾何模型中的點、線、面、或實體為驅動對象,生成加工刀具軌跡,並以刀具定位文件的形式經後置處理,以NC代碼的形式提供給CNC機床,在整個CAD/CAM及CNC系統的運行過程中存在以下幾方面的問題:
CAM系統只能從CAD系統獲取產品的低層幾何信息,無法自動捕捉產品的幾何形狀信息和產品高層的功能和語義信息。因此,整個CAM過程必須在經驗豐富的製造工程師的參與下,通過圖形交互來完成。如:製造工程師必須選擇加工對象(點、線、面或實體)、約束條件(裝夾、干涉和碰撞等)、刀具、加工參數(切削方向、切深、進給量、進給速度等)。整個系統的自動化程度較低。
在CAM系統生成的刀具軌跡中,同樣也只包含低層的幾何信息(直線和圓弧的幾何定位信息),以及少量的過程式控制制信息(如進給率、主軸轉速、換刀等)。因此,下游的CNC系統既無法獲取更高層的設計要求(如公差、表面光潔度等),也無法得到與生成刀具軌跡有關的加工工藝參數。
CAM系統各個模塊之間的產品數據不統一,各模塊相對獨立。例如刀具定位文件只記錄刀具軌跡而不記錄相應的加工工藝參數,三維動態模擬只記錄刀具軌跡的干涉與碰撞,而不記錄與其發生干涉和碰撞的加工對象及相關的加工工藝參數。
CAM系統是一個獨立的系統。CAD系統與CAM系統之間沒有統一的產品數據模型,即使是在一體化的集成CAD/CAM系統中,信息的共享也只是單向的和單一的。CAM系統不能充分理解和利用CAD系統有關產品的全部信息,尤其是與加工有關的特徵信息,同樣CAD系統也無法獲取CAM系統產生的加工數據信息。這就給並行工程的實施帶來了困難 。

3數控模擬技術

3.1計算機模擬的概念及應用

從工程的角度來看,模擬就是通過對系統模型的實驗去研究一個已有的或設計中的系統。分析復雜的動態對象,模擬是一種有效的方法,可以減少風險,縮短設計和製造的周期,並節約投資。計算機模擬就是藉助計算機,利用系統模型對實際系統進行實驗研究的過程。它隨著計算機技術的發展而迅速地發展,在模擬中佔有越來越重要的地位。計算機模擬的過程可通過圖1所示的要素間的三個基本活動來描述:
建模活動是通過對實際系統的觀測或檢測,在忽略次要因素及不可檢測變數的基礎上,用物理或數學的方法進行描述,從而獲得實際系統的簡化近似模型。這里的模型同實際系統的功能與參數之間應具有相似性和對應性。
模擬模型是對系統的數學模型(簡化模型)進行一定的演算法處理,使其成為合適的形式(如將數值積分變為迭代運算模型)之後,成為能被計算機接受的「可計算模型」。模擬模型對實際系統來講是一個二次簡化的模型。
模擬實驗是指將系統的模擬模型在計算機上運行的過程。模擬是通過實驗來研究實際系統的一種技術,通過模擬技術可以弄清系統內在結構變數和環境條件的影響。
計算機模擬技術的發展趨勢主要表現在兩個方面:應用領域的擴大和模擬計算機的智能化。計算機模擬技術不僅在傳統的工程技術領域(航空、航天、化工等方面)繼續發展,而且擴大到社會經濟、生物等許多非工程領域,此外,並行處理、人工智慧、知識庫和專家系統等技術的發展正影響著模擬計算機的發展。
數控加工模擬利用計算機來模擬實際的加工過程,是驗證數控加工程序的可靠性和預測切削過程的有力工具,以減少工件的試切,提高生產效率。

3.2數控模擬技術的研究現狀

數控機床加工零件是靠數控指令程序控制完成的。為確保數控程序的正確性,防止加工過程中干涉和碰撞的發生,在實際生產中,常採用試切的方法進行檢驗。但這種方法費工費料,代價昂貴,使生產成本上升,增加了產品加工時間和生產周期。後來又採用軌跡顯示法,即以劃針或筆代替刀具,以著色板或紙代替工件來模擬刀具運動軌跡的二維圖形(也可以顯示二維半的加工軌跡),有相當大的局限性。對於工件的三維和多維加工,也有用易切削的材料代替工件(如,石蠟、木料、改性樹脂和塑料等)來檢驗加工的切削軌跡。但是,試切要佔用數控機床和加工現場。為此,人們一直在研究能逐步代替試切的計算機模擬方法,並在試切環境的模型化、模擬計算和圖形顯示等方面取得了重要的進展,目前正向提高模型的精確度、模擬計算實時化和改善圖形顯示的真實感等方向發展。
從試切環境的模型特點來看,目前NC切削過程模擬分幾何模擬和力學模擬兩個方面。幾何模擬不考慮切削參數、切削力及其它物理因素的影響,只模擬刀具工件幾何體的運動,以驗證NC程序的正確性。它可以減少或消除因程序錯誤而導致的機床損傷、夾具破壞或刀具折斷、零件報廢等問題;同時可以減少從產品設計到製造的時間,降低生產成本。切削過程的力學模擬屬於物理模擬范疇,它通過模擬切削過程的動態力學特性來預測刀具破損、刀具振動、控制切削參數,從而達到優化切削過程的目的。
幾何模擬技術的發展是隨著幾何建模技術的發展而發展的,包括定性圖形顯示和定量干涉驗證兩方面。目前常用的方法有直接實體造型法,基於圖像空間的方法和離散矢量求交法。

3.3直接實體造型法

這種方法是指工件體與刀具運動所形成的包絡體進行實體布爾差運算,工件體的三維模型隨著切削過程被不斷更新。
Sungurtekin和Velcker開發了一個銑床的模擬系統。該系統採用CSG法來記錄毛坯的三維模型,利用一些基本圖元如長方體、圓柱體、圓錐體等,和集合運算,特別是並運算,將毛坯和一系列刀具掃描過的區域記錄下來,然後應用集合差運算從毛坯中順序除去掃描過的區域。所謂被掃過的區域是指切削刀具沿某一軌跡運動時所走過的區域。在掃描了每段NC代碼後顯示變化了的毛坯形狀。
Kawashima等的接合樹法將毛坯和切削區域用接合樹(graftree)表示,即除了空和滿兩種結點,邊界結點也作為八叉樹(octtree)的葉結點。邊界結點包含半空間,結點物體利用在這些半空間上的CSG操作來表示。接合樹細分的層次由邊界結點允許的半空間個數決定。逐步的切削模擬利用毛坯和切削區域的差運算來實現。毛坯的顯示採用了深度緩沖區演算法,將毛坯劃分為多邊形實現毛坯的可視化。

用基於實體造型的方法實現連續更新的毛坯的實時可視化,耗時太長,於是一些基於觀察的方法被提出來。

3.4基於圖像空間的方法

這種方法用圖像空間的消隱演算法來實現實體布爾運算。VanHook採用圖象空間離散法實現了加工過程的動態圖形模擬。他使用類似圖形消隱的zbuffer思想,沿視線方向將毛坯和刀具離散,在每個屏幕象素上毛坯和刀具表示為沿z軸的一個長方體,稱為Dexel結構。刀具切削毛坯的過程簡化為沿視線方向上的一維布爾運算,見圖3,切削過程就變成兩者Dexel結構的比較:
CASE1:只有毛坯,顯示毛坯,break;
CASE2:毛坯完全在刀具之後,顯示刀具,break;
CASE3:刀具切削毛坯前部,更新毛坯的dexel結構,顯示刀具,break;
CASE4:刀具切削毛坯內部,刪除毛坯的dexel結構,顯示刀具,break;
CASE5:刀具切削毛坯內部,創建新的毛坯dexel結構,顯示毛坯,break;
CASE6:刀具切削毛坯後部,更新毛坯的dexel結構,顯示毛坯,break;
CASE7:刀具完全在毛坯之後,顯示毛坯,break;
CASE8:只有刀具,顯示刀具,break。
這種方法將實體布爾運算和圖形顯示過程合為一體,使模擬圖形顯示有很好的實時性。
Hsu和Yang提出了一種有效的三軸銑削的實時模擬方法。他們使用zmap作為基本數據結構,記錄一個二維網格的每個方塊處的毛坯高度,即z向值。這種數據結構只適用於刀軸z向的三軸銑削模擬。對每個銑削操作通過改變刀具運動每一點的深度值,很容易更新zmap值,並更新工件的圖形顯示。

3.5離散矢量求交法

由於現有的實體造型技術未涉及公差和曲面的偏置表示,而像素空間布爾運算並不精確,使模擬驗證有很大的局限性。為此Chappel提出了一種基於曲面技術的「點矢量」(pointvector)法。這種方法將曲面按一定精度離散,用這些離散點來表示該曲面。以每個離散點的法矢為該點的矢量方向,延長與工件的外表面相交。通過模擬刀具的切削過程,計算各個離散點沿法矢到刀具的距離s。
設sg和sm分別為曲面加工的內、外偏差,如果sg< S < SM說明加工處在誤差范圍內,S < SG則過切,S>sm則漏切。該方法分為被切削曲面的離散(discretization)、檢測點的定位(location)和離散點矢量與工件實體的求交(intersection)三個過程。採用圖像映射的方法顯示加工誤差圖形;零件表面的加工誤差可以精確地描寫出來。
總體來說,基於實體造型的方法中幾何模型的表達與實際加工過程相一致,使得模擬的最終結果與設計產品間的精確比較成為可能;但實體造型的技術要求高,計算量大,在目前的計算機實用環境下較難應用於實時檢測和動態模擬。基於圖像空間的方法速度快得多,能夠實現實時模擬,但由於原始數據都已轉化為像素值,不易進行精確的檢測。離散矢量求交法基於零件的表面處理,能精確描述零件面的加工誤差,主要用於曲面加工的誤差檢測。

2. 現在國外數控編程主要是哪種

1數控編程及其發展

數控編程是目前CAD/CAPP/CAM系統中最能明顯發揮效益的環節之一,其在實現設計加工自動化、提高加工精度和加工質量、縮短產品研製周期等方面發揮著重要作用。在諸如航空工業、汽車工業等領域有著大量的應用。由於生產實際的強烈需求,國內外都對數控編程技術進行了廣泛的研究,並取得了豐碩成果。下面就對數控編程及其發展作一些介紹。

1.1數控編程的基本概念

數控編程是從零件圖紙到獲得數控加工程序的全過程。它的主要任務是計算加工走刀中的刀位點(cutterlocationpoint簡稱CL點)。刀位點一般取為刀具軸線與刀具表面的交點,多軸加工中還要給出刀軸矢量。

1.2數控編程技術的發展概況

為了解決數控加工中的程序編制問題,50年代,MIT設計了一種專門用於機械零件數控加工程序編制的語言,稱為APT(AutomaticallyProgrammedTool)。其後,APT幾經發展,形成了諸如APTII、APTIII(立體切削用)、APT(演算法改進,增加多坐標曲面加工編程功能)、APTAC(Advancedcontouring)(增加切削資料庫管理系統)和APT/SS(SculpturedSurface)(增加雕塑曲面加工編程功能)等先進版。
採用APT語言編制數控程序具有程序簡煉,走刀控制靈活等優點,使數控加工編程從面向機床指令的「匯編語言」級,上升到面向幾何元素.APT仍有許多不便之處:採用語言定義零件幾何形狀,難以描述復雜的幾何形狀,缺乏幾何直觀性;缺少對零件形狀、刀具運動軌跡的直觀圖形顯示和刀具軌跡的驗證手段;難以和CAD資料庫和CAPP系統有效連接;不容易作到高度的自動化,集成化。
針對APT語言的缺點,1978年,法國達索飛機公司開始開發集三維設計、分析、NC加工一體化的系統,稱為為CATIA。隨後很快出現了象EUCLID,UGII,INTERGRAPH,Pro/Engineering,MasterCAM及NPU/GNCP等系統,這些系統都有效的解決了幾何造型、零件幾何形狀的顯示,交互設計、修改及刀具軌跡生成,走刀過程的模擬顯示、驗證等問題,推動了CAD和CAM向一體化方向發展。到了80年代,在CAD/CAM一體化概念的基礎上,逐步形成了計算機集成製造系統(CIMS)及並行工程(CE)的概念。目前,為了適應CIMS及CE發展的需要,數控編程系統正向集成化和智能化夫發展。
在集成化方面,以開發符合STEP()標準的參數化特徵造型系統為主,目前已進行了大量卓有成效的工作,是國內外開發的熱點;在智能化方面,工作剛剛開始,還有待我們去努力。

2 NC刀具軌跡生成方法研究發展現狀

數控編程的核心工作是生成刀具軌跡,然後將其離散成刀位點,經後置處理產生數控加工程序。下面就刀具軌跡產生方法作一些介紹。

2.1基於點、線、面和體的NC刀軌生成方法

CAD技術從二維繪圖起步,經歷了三維線框、曲面和實體造型發展階段,一直到現在的參數化特徵造型。在二維繪圖與三維線框階段,數控加工主要以點、線為驅動對象,如孔加工,輪廓加工,平面區域加工等。這種加工要求操作人員的水平較高,交互復雜。在曲面和實體造型發展階段,出現了基於實體的加工。實體加工的加工對象是一個實體(一般為CSG和BREP混合表示的),它由一些基本體素經集合運算(並、交、差運算)而得。實體加工不僅可用於零件的粗加工和半精加工,大面積切削掉餘量,提高加工效率,而且可用於基於特徵的數控編程系統的研究與開發,是特徵加工的基礎。
實體加工一般有實體輪廓加工和實體區域加工兩種。實體加工的實現方法為層切法(SLICE),即用一組水平面去切被加工實體,然後對得到的交線產生等距線作為走刀軌跡。本文從系統需要角度出發,在ACIS幾何造型平台上實現了這種基於點、線、面和實體的數控加工。

2.2基於特徵的NC刀軌生成方法

參數化特徵造型已有了一定的發展時期,但基於特徵的刀具軌跡生成方法的研究才剛剛開始。特徵加工使數控編程人員不在對那些低層次的幾何信息(如:點、線、面、實體)進行操作,而轉變為直接對符合工程技術人員習慣的特徵進行數控編程,大大提高了編程效率。
W.R.Mail和A.J.Mcleod在他們的研究中給出了一個基於特徵的NC代碼生成子系統,這個系統的工作原理是:零件的每個加工過程都可以看成對組成該零件的形狀特徵組進行加工的總和。那麼對整個形狀特徵或形狀特徵組分別加工後即完成了零件的加工。而每一形狀特徵或形狀特徵組的NC代碼可自動生成。目前開發的系統只適用於2.5D零件的加工。
LeeandChang開發了一種用虛擬邊界的方法自動產生凸自由曲面特徵刀具軌跡的系統。這個系統的工作原理是:在凸自由曲面內嵌入一個最小的長方塊,這樣凸自由曲面特徵就被轉換成一個凹特徵。最小的長方塊與最終產品模型的合並就構成了被稱為虛擬模型的一種間接產品模型。刀具軌跡的生成方法分成三步完成:(1)、切削多面體特徵;(2)、切削自由曲面特徵;(3)、切削相交特徵。
JongYunJung研究了基於特徵的非切削刀具軌跡生成問題。文章把基於特徵的加工軌跡分成輪廓加工和內區域加工兩類,並定義了這兩類加工的切削方向,通過減少切削刀具軌跡達到整體優化刀具軌跡的目的。文章主要針對幾種基本特徵(孔、內凹、台階、槽),討論了這些基本特徵的典型走刀路徑、刀具選擇和加工順序等,並通過IP(InterProgramming)技術避免重復走刀,以優化非切削刀具軌跡。另外,JongYunJong還在他1991年的博士論文中研究了製造特徵提取和基於特徵的刀具及刀具路徑。
特徵加工的基礎是實體加工,當然也可認為是更高級的實體加工。但特徵加工不同於實體加工,實體加工有它自身的局限性。特徵加工與實體加工主要有以下幾點不同:
從概念上講,特徵是組成零件的功能要素,符合工程技術人員的操作習慣,為工程技術人員所熟知;實體是低層的幾何對象,是經過一系列布爾運算而得到的一個幾何體,不帶有任何功能語義信息;實體加工往往是對整個零件(實體)的一次性加工。但實際上一個零件不太可能僅用一把刀一次加工完,往往要經過粗加工、半精加工、精加工等一系列工步,零件不同的部位一般要用不同的刀具進行加工;有時一個零件既要用到車削,也要用到銑削。因此實體加工主要用於零件的粗加工及半精加工。而特徵加工則從本質上解決了上述問題;特徵加工具有更多的智能。對於特定的特徵可規定某幾種固定的加工方法,特別是那些已在STEP標准規定的特徵更是如此。如果我們對所有的標准特徵都制定了特定的加工方法,那麼對那些由標准特徵夠成的零件的加工其方便性就可想而知了。倘若CAPP系統能提供相應的工藝特徵,那麼NCP系統就可以大大減少交互輸入,具有更多的智能。而這些實體加工是無法實現的;
特徵加工有利於實現從CAD、CAPP、NCP及CNC系統的全面集成,實現信息的雙向流動,為CIMS乃至並行工程(CE)奠定良好的基礎;而實體加工對這些是無能為力的。

2.3現役幾個主要CAD/CAM系統中的NC刀軌生成方法分析

現役CAM的構成及主要功能

目前比較成熟的CAM系統主要以兩種形式實現CAD/CAM系統集成:一體化的CAD/CAM系統(如:UGII、Euclid、Pro/ENGINEER等)和相對獨立的CAM系統(如:Mastercam、Surfcam等)。前者以內部統一的數據格式直接從CAD系統獲取產品幾何模型,而後者主要通過中性文件從其它CAD系統獲取產品幾何模型。然而,無論是哪種形式的CAM系統,都由五個模塊組成,即交互工藝參數輸入模塊、刀具軌跡生成模塊、刀具軌跡編輯模塊、三維加工動態模擬模塊和後置處理模塊。下面僅就一些著名的CAD/CAM系統的NC加工方法進行討論。

UGII加工方法分析
一般認為UGII是業界中最好,最具代表性的數控軟體。其最具特點的是其功能強大的刀具軌跡生成方法。包括車削、銑削、線切割等完善的加工方法。其中銑削主要有以下功能:
、PointtoPoint:完成各種孔加工;
、PanarMill:平面銑削。包括單向行切,雙向行切,環切以及輪廓加工等;
、FixedContour:固定多軸投影加工。用投影方法控制刀具在單張曲面上或多張曲面上的移動,控制刀具移動的可以是已生成的刀具軌跡,一系列點或一組曲線;
、VariableContour:可變軸投影加工;
、Parameterline:等參數線加工。可對單張曲面或多張曲面連續加工;
、ZigZagSurface:裁剪面加工;
、RoughtoDepth:粗加工。將毛坯粗加工到指定深度;
、CavityMill:多級深度型腔加工。特別適用於凸模和凹模的粗加工;
、SequentialSurface:曲面交加工。按照零件面、導動面和檢查面的思路對刀具的移動提供最大程度的控制。
EDSUnigraphics還包括大量的其它方面的功能,這里就不一一列舉了。

STRATA加工方法分析
STRATA是一個數控編程系統開發環境,它是建立在ACIS幾何建模平台上的。
它為用戶提供兩種編程開發環境,即NC命令語言介面和NC操作C++類庫。它可支持三軸銑削,車削和線切割NC加工,並可支持線框、曲面和實體幾何建模。其NC刀具軌跡生成方法是基於實體模型。STRATA基於實體的NC刀具軌跡生成類庫提供的加工方法包括:
ProfileToolpath:輪廓加工;
AreaClearToolpath:平面區域加工;
SolidProfileToolpath:實體輪廓加工;
SolidAreaClearToolpath:實體平面區域加工;
SolidFaceToolPath:實體表面加工;
SolidSliceToolPath:實體截平面加工;
LanguagebasedToolpath:基於語言的刀具軌跡生成。
其它的CAD/CAM軟體,如Euclid,Cimitron,CV,CATIA等的NC功能各有千秋,但其基本內容大同小異,沒有本質區別。

2.4現役CAM系統刀軌生成方法的主要問題

按照傳統的CAD/CAM系統和CNC系統的工作方式,CAM系統以直接或間接(通過中性文件)的方式從CAD系統獲取產品的幾何數據模型。CAM系統以三維幾何模型中的點、線、面、或實體為驅動對象,生成加工刀具軌跡,並以刀具定位文件的形式經後置處理,以NC代碼的形式提供給CNC機床,在整個CAD/CAM及CNC系統的運行過程中存在以下幾方面的問題:
CAM系統只能從CAD系統獲取產品的低層幾何信息,無法自動捕捉產品的幾何形狀信息和產品高層的功能和語義信息。因此,整個CAM過程必須在經驗豐富的製造工程師的參與下,通過圖形交互來完成。如:製造工程師必須選擇加工對象(點、線、面或實體)、約束條件(裝夾、干涉和碰撞等)、刀具、加工參數(切削方向、切深、進給量、進給速度等)。整個系統的自動化程度較低。
在CAM系統生成的刀具軌跡中,同樣也只包含低層的幾何信息(直線和圓弧的幾何定位信息),以及少量的過程式控制制信息(如進給率、主軸轉速、換刀等)。因此,下游的CNC系統既無法獲取更高層的設計要求(如公差、表面光潔度等),也無法得到與生成刀具軌跡有關的加工工藝參數。
CAM系統各個模塊之間的產品數據不統一,各模塊相對獨立。例如刀具定位文件只記錄刀具軌跡而不記錄相應的加工工藝參數,三維動態模擬只記錄刀具軌跡的干涉與碰撞,而不記錄與其發生干涉和碰撞的加工對象及相關的加工工藝參數。
CAM系統是一個獨立的系統。CAD系統與CAM系統之間沒有統一的產品數據模型,即使是在一體化的集成CAD/CAM系統中,信息的共享也只是單向的和單一的。CAM系統不能充分理解和利用CAD系統有關產品的全部信息,尤其是與加工有關的特徵信息,同樣CAD系統也無法獲取CAM系統產生的加工數據信息。這就給並行工程的實施帶來了困難 。

3數控模擬技術

3.1計算機模擬的概念及應用

從工程的角度來看,模擬就是通過對系統模型的實驗去研究一個已有的或設計中的系統。分析復雜的動態對象,模擬是一種有效的方法,可以減少風險,縮短設計和製造的周期,並節約投資。計算機模擬就是藉助計算機,利用系統模型對實際系統進行實驗研究的過程。它隨著計算機技術的發展而迅速地發展,在模擬中佔有越來越重要的地位。計算機模擬的過程可通過圖1所示的要素間的三個基本活動來描述:
建模活動是通過對實際系統的觀測或檢測,在忽略次要因素及不可檢測變數的基礎上,用物理或數學的方法進行描述,從而獲得實際系統的簡化近似模型。這里的模型同實際系統的功能與參數之間應具有相似性和對應性。
模擬模型是對系統的數學模型(簡化模型)進行一定的演算法處理,使其成為合適的形式(如將數值積分變為迭代運算模型)之後,成為能被計算機接受的「可計算模型」。模擬模型對實際系統來講是一個二次簡化的模型。
模擬實驗是指將系統的模擬模型在計算機上運行的過程。模擬是通過實驗來研究實際系統的一種技術,通過模擬技術可以弄清系統內在結構變數和環境條件的影響。
計算機模擬技術的發展趨勢主要表現在兩個方面:應用領域的擴大和模擬計算機的智能化。計算機模擬技術不僅在傳統的工程技術領域(航空、航天、化工等方面)繼續發展,而且擴大到社會經濟、生物等許多非工程領域,此外,並行處理、人工智慧、知識庫和專家系統等技術的發展正影響著模擬計算機的發展。
數控加工模擬利用計算機來模擬實際的加工過程,是驗證數控加工程序的可靠性和預測切削過程的有力工具,以減少工件的試切,提高生產效率。

3.2數控模擬技術的研究現狀

數控機床加工零件是靠數控指令程序控制完成的。為確保數控程序的正確性,防止加工過程中干涉和碰撞的發生,在實際生產中,常採用試切的方法進行檢驗。但這種方法費工費料,代價昂貴,使生產成本上升,增加了產品加工時間和生產周期。後來又採用軌跡顯示法,即以劃針或筆代替刀具,以著色板或紙代替工件來模擬刀具運動軌跡的二維圖形(也可以顯示二維半的加工軌跡),有相當大的局限性。對於工件的三維和多維加工,也有用易切削的材料代替工件(如,石蠟、木料、改性樹脂和塑料等)來檢驗加工的切削軌跡。但是,試切要佔用數控機床和加工現場。為此,人們一直在研究能逐步代替試切的計算機模擬方法,並在試切環境的模型化、模擬計算和圖形顯示等方面取得了重要的進展,目前正向提高模型的精確度、模擬計算實時化和改善圖形顯示的真實感等方向發展。
從試切環境的模型特點來看,目前NC切削過程模擬分幾何模擬和力學模擬兩個方面。幾何模擬不考慮切削參數、切削力及其它物理因素的影響,只模擬刀具工件幾何體的運動,以驗證NC程序的正確性。它可以減少或消除因程序錯誤而導致的機床損傷、夾具破壞或刀具折斷、零件報廢等問題;同時可以減少從產品設計到製造的時間,降低生產成本。切削過程的力學模擬屬於物理模擬范疇,它通過模擬切削過程的動態力學特性來預測刀具破損、刀具振動、控制切削參數,從而達到優化切削過程的目的。
幾何模擬技術的發展是隨著幾何建模技術的發展而發展的,包括定性圖形顯示和定量干涉驗證兩方面。目前常用的方法有直接實體造型法,基於圖像空間的方法和離散矢量求交法。

3.3直接實體造型法

這種方法是指工件體與刀具運動所形成的包絡體進行實體布爾差運算,工件體的三維模型隨著切削過程被不斷更新。
Sungurtekin和Velcker開發了一個銑床的模擬系統。該系統採用CSG法來記錄毛坯的三維模型,利用一些基本圖元如長方體、圓柱體、圓錐體等,和集合運算,特別是並運算,將毛坯和一系列刀具掃描過的區域記錄下來,然後應用集合差運算從毛坯中順序除去掃描過的區域。所謂被掃過的區域是指切削刀具沿某一軌跡運動時所走過的區域。在掃描了每段NC代碼後顯示變化了的毛坯形狀。
Kawashima等的接合樹法將毛坯和切削區域用接合樹(graftree)表示,即除了空和滿兩種結點,邊界結點也作為八叉樹(octtree)的葉結點。邊界結點包含半空間,結點物體利用在這些半空間上的CSG操作來表示。接合樹細分的層次由邊界結點允許的半空間個數決定。逐步的切削模擬利用毛坯和切削區域的差運算來實現。毛坯的顯示採用了深度緩沖區演算法,將毛坯劃分為多邊形實現毛坯的可視化。

用基於實體造型的方法實現連續更新的毛坯的實時可視化,耗時太長,於是一些基於觀察的方法被提出來。

3.4基於圖像空間的方法

這種方法用圖像空間的消隱演算法來實現實體布爾運算。VanHook採用圖象空間離散法實現了加工過程的動態圖形模擬。他使用類似圖形消隱的zbuffer思想,沿視線方向將毛坯和刀具離散,在每個屏幕象素上毛坯和刀具表示為沿z軸的一個長方體,稱為Dexel結構。刀具切削毛坯的過程簡化為沿視線方向上的一維布爾運算,見圖3,切削過程就變成兩者Dexel結構的比較:
CASE1:只有毛坯,顯示毛坯,break;
CASE2:毛坯完全在刀具之後,顯示刀具,break;
CASE3:刀具切削毛坯前部,更新毛坯的dexel結構,顯示刀具,break;
CASE4:刀具切削毛坯內部,刪除毛坯的dexel結構,顯示刀具,break;
CASE5:刀具切削毛坯內部,創建新的毛坯dexel結構,顯示毛坯,break;
CASE6:刀具切削毛坯後部,更新毛坯的dexel結構,顯示毛坯,break;
CASE7:刀具完全在毛坯之後,顯示毛坯,break;
CASE8:只有刀具,顯示刀具,break。
這種方法將實體布爾運算和圖形顯示過程合為一體,使模擬圖形顯示有很好的實時性。
Hsu和Yang提出了一種有效的三軸銑削的實時模擬方法。他們使用zmap作為基本數據結構,記錄一個二維網格的每個方塊處的毛坯高度,即z向值。這種數據結構只適用於刀軸z向的三軸銑削模擬。對每個銑削操作通過改變刀具運動每一點的深度值,很容易更新zmap值,並更新工件的圖形顯示。

3.5離散矢量求交法

由於現有的實體造型技術未涉及公差和曲面的偏置表示,而像素空間布爾運算並不精確,使模擬驗證有很大的局限性。為此Chappel提出了一種基於曲面技術的「點矢量」(pointvector)法。這種方法將曲面按一定精度離散,用這些離散點來表示該曲面。以每個離散點的法矢為該點的矢量方向,延長與工件的外表面相交。通過模擬刀具的切削過程,計算各個離散點沿法矢到刀具的距離s。
設sg和sm分別為曲面加工的內、外偏差,如果sg< S < SM說明加工處在誤差范圍內,S < SG則過切,S>sm則漏切。該方法分為被切削曲面的離散(discretization)、檢測點的定位(location)和離散點矢量與工件實體的求交(intersection)三個過程。採用圖像映射的方法顯示加工誤差圖形;零件表面的加工誤差可以精確地描寫出來。
總體來說,基於實體造型的方法中幾何模型的表達與實際加工過程相一致,使得模擬的最終結果與設計產品間的精確比較成為可能;但實體造型的技術要求高,計算量大,在目前的計算機實用環境下較難應用於實時檢測和動態模擬。基於圖像空間的方法速度快得多,能夠實現實時模擬,但由於原始數據都已轉化為像素值,不易進行精確的檢測。離散矢量求交法基於零件的表面處理,能精確描述零件面的加工誤差,主要用於曲面加工的誤差檢測。

3. 計算機圖形學復習

第一章
1. 計算機圖形:用數學方法描述,通過計算機生成、處理、存儲和顯示的對象。
2. 圖形和圖像的主要區別是表示方法不同:圖形是用矢量表示;圖像是用點陣表示的。圖形和圖像也可以通過光柵顯示器(或經過識別處理)可相互轉化。
3. 於計算機圖形學緊密相關的學科主要包括 圖像處理、計算幾何和計算機視覺模式識別。它們的共同點是 以圖形/圖像在計算機中的表示方法為基礎。
4. 互動式計算機圖形系統的發展可概括為以下4個階段:字元、矢量、二維光柵圖形、三維圖形。
5. 圖形學研究的主要內容有:①幾何造型技術 ②圖形生成技術 ③圖形處理技術 ④圖形信息的存儲、檢索與交換技術 ⑤人機交互技術 ⑥動畫技術 ⑦圖形輸入輸出技術 ⑧圖形標准與圖形軟體包的研發。
6. 計算機輔助設計和計算機輔助製造 是計算機圖形學最廣泛最活躍的應用領域。
7. 計算機圖形學的基本任務:一是如何利用計算機硬體來實現圖形處理功能;二是如何利用好的圖形軟體;三是如何利用數學方法及演算法解決實際應用中的圖行處理問題。
8. 計算機圖形系統是由硬體系統和軟體系統組成的。
9. 計算機圖形系統包括處理、存儲、交互、輸入和輸出五種基本功能。
10. 鍵盤和滑鼠是最常用的圖形輸入設備。滑鼠根據測量位移部件的不同,分為光電式、光機式和機械式3種。
11. 數字化儀分為電子式、超聲波式、磁伸縮式、電磁感應式等。小型的數字化儀也稱為圖形輸入板。
12. 觸摸屏是一種 定位設備,它是一種對於觸摸能產生反應的屏幕。
13. 掃描儀由3部分組成:掃描頭、控制電路和移動掃描機構。掃描頭由光源發射和光鮮接收組成。按移動機構的不同,掃描儀可分為平板式和滾筒式2種。
14. 顯示器是計算機的標准輸出設備。彩色CRT的顯示技術有2種:電子穿透法和蔭罩法。
15. 隨機掃描是指電子束的定位及偏轉具有隨意性,電子束根據需要可以在熒光屏任意方向上連續掃描,沒有固定掃描線和掃描順序限制。它具有局部修改性和動態性能。
16. 光柵掃描顯示器是畫點設備。
17. 點距是指相鄰像素點間的距離,與分辨指標相關。
18. 等離子顯示器一般有三層玻璃板組成,通常稱為等離子顯示器的三層結構。
19. 用以輸出圖形的計算機外部設備稱為硬拷貝設備。
20. 列印機是廉價的硬拷貝設備,從機械動作上常為撞擊式和非撞擊式2種。
21. 常用的噴墨頭有:壓電式、氣泡式、靜電式、固體式。
22. 繪圖儀分為靜電繪圖儀和筆式繪圖儀。
23. 圖形軟體的分層。由下到上分別是:①圖形設備指令、命令集、計算機操作系統 ②零級圖形軟體 ③一級圖形軟體 ④二級圖形軟體 ⑤三級圖形軟體。
24. 零級圖形軟體是面向系統的、最底層的軟體,主要解決圖形設備與主機的通信與介面問題,又稱設備驅動程序。
25. 一級圖形軟體即面向系統又面向用戶,又稱基本子系統。
26. 圖形應用軟體是系統的核心部分。
27. 從物理學角度,顏色以主波長、色純度和輝度來描述;從視覺角度來看,顏色以色彩、飽和度和亮度來描述。
28. 用適當比列的3種顏色混合,可以獲得白色,而且這3種顏色中的任意2種的組合都不能生成第三種顏色,稱為三原色理論。
29. RGB模型的匹配表達式是:c=rR+gG+bB。
30. 常用顏色模型
顏色模型名稱 使用范圍
RGB 圖形顯示設備(彩色CRT和光柵顯示器)
CMY 圖形列印、繪制設備
HSV 對應畫家本色原理、直觀的顏色描述
HSL 基於顏色參數的模型
用基色青、品紅、黃定義的CMY顏色模型用來描述硬拷貝設備的輸出顏色。它從白光中濾去某種顏色,故稱為減色性原色系統。

第二章
31. 直線生成的3個常用演算法:數值微分法(DDA)、中點劃線法和Bresenham演算法。
32. DDA演算法的C語言實現:
DDA演算法生成直線,起點(x0,y0),終點(x1,y1).
Void CMy View ::OnDdaline()
{
CDC *pDC=GetDC(); //獲得設備指針
int x0=100,y0=100,x1=300,y1=200,c=RGB(250,0,0);//定義直線兩端點和直線顏色
int x,y,i;
float dx,dy,k;
dx=(float)(x1-x0);
dy=(float)(y1-y0);
k=dy/dx;
x=x0;
y=y0;
if(abs(k)<1)
{ for(;x<=x1;x++)
{pDC—>SetPixel(x,int(y+0.5),c);
y=y+k;}
}
if(abs(k)>=1)
{ for(;y<=y1;y++)
{pDC—>SetPixel(int(x+0.5),y,c);
x=x+1/k;}
}
ReleaseDC(pDC); //釋放設備指針
}
33. 任何影響圖元顯示方法的參數稱為屬性參數。圖元的基本表現是線段,其基本屬性包括線型、線寬和色彩。
34. 最常見的線型包括實線、虛線、細線和點劃線等,通常默認的線型是實線。
35. 線寬控制的實線方法:垂直線刷子、水平線刷子、方形線刷子。生成具有寬度的線條還可以採用區域填充演算法。
36. 用離散量表示連續量時引起的失真現象稱為走樣。為了提高圖形顯示質量,減少或消除走樣現象的技術稱為反走樣。
37. 反走樣技術有:提高解析度(硬體方法和軟體方法)、簡單區域取樣、加權區域取樣。
38. 區域連通情況分為四連通區域和八連通區域。四連通區域是指從區域上某一點出發,可通過上下左右4個方向移動,在不越出區域的前提下到達區域內的任意像素;八連通區域是指從區域內某一像素出發,可通過上下左右、左上左下、右上右下8個方向的移動,在不越出區域的前提下到達區域內的任意像素。
39. 字元的圖形表示可以分為點陣式和矢量式兩種形式。
40. 在圖形軟體中,除了要求能生成直線、圓等基本圖形元素外,還要求能生成其他曲線圖元、多邊形及符號等多種圖元。
41. 在掃描線填充演算法中,對水平邊忽略而不予處理的原因是實際處理時不計其交點。
42. 關於直線生成演算法的敘述中,正確的是:Bresenham演算法是對中點畫線演算法的改進。
43. 在中點畫圓演算法中敘述錯誤的是:為了減輕畫圓的工作量,中點畫圓利用了圓的四對稱性性質。
44. 多邊形填充時,下列論述錯誤的是:在判斷點是否在多邊形內時,一般通過在多變形外找一點,然後根據該線段與多邊形的交點數目為偶數即可認為在多邊形內部,若為奇數則在多邊形外部,且不考慮任何特殊情況。
第三章
1. Cohen-Sutherland演算法,也稱編碼裁剪法。其基本思想是:對於每條待裁剪的線段P1P2分三種情況處理:①若P1P2完全在窗口內,則顯示該線段,簡稱「取」之;②若P1P2完全在窗口外,則丟棄該線段,簡稱「舍」之;③若線段既不滿足「取」的條件也不滿足「舍」的條件,則求線段與窗口邊界的交點,在交點處把線段分為兩段,其中一段 完全在窗口外,可舍棄之,然後對另一段重復上述處理。
2. Sutherland-Hodgman演算法,又稱逐邊裁剪演算法。其基本思想是用窗口的四條邊所在的直線依次來裁剪多邊形。多邊形的每條邊與裁剪線的位置關系有4種情況(假設當前處理的多邊形的邊為SP):a>端點S在外側,P在內側,則從外到內輸出P和I;b>端點S和P都在內側,則從內到內輸出P;c>端點S在內側,而P在外側,則從內到外輸出I;d>端點S和P都在外側,無輸出。
3. 按裁剪精度的不同,字元裁剪可分為三種情況:字元串裁剪、字元裁剪和筆畫裁剪。
4. 在線段AB的編碼裁剪演算法中,如A、B兩點的碼邏輯或運算全為0,則該線段位於窗口內;如AB兩點的碼邏輯與運算結果不為0,則該線段在窗口外。
5. n邊多邊形關於矩形窗口進行裁剪,結果多邊形最多有2n個頂點,最少有n個頂點。
6. 對一條等長的直線段裁剪,編碼裁剪演算法的速度和中點分割演算法的裁剪速度哪一個快,無法確定。(√)
7. 多邊形裁剪可以看做是線段裁剪的組合。(X)
8. 對於線段來說,中點分割演算法要比其他線段裁剪演算法的裁剪速度快。(X)
9. 多邊形的Weiler-Atherton裁剪演算法可以實現對任意多邊形的裁剪。(√)
第四章
1. 幾何變換是指改變幾何形狀和位置,非幾何變換是指改變圖形的顏色、線型等屬性。變換方法有對象變換(坐標系不動)和坐標變換(坐標系變化)兩種。
2. 坐標系可以分為以下幾種:世界坐標系(是對計算機圖形場景中所有圖形對象的空間定位和定義,是其他坐標系的參照)、模型坐標系(用於設計物體的局部坐標系)、用戶坐標系(為了方便交互繪圖操作,可以變換角度、方向)、設備坐標系(是繪制或輸出圖形的設備所用的坐標系,採用左手系統)。
3. 將用戶坐標系中需要進行觀察和處理的一個坐標區域稱為窗口,將窗口映射到顯示設備上的坐標區域稱為視區。從窗口到視區的變換,稱為規格化變換。(eg.4-1)
4. 所謂體素,是指可以用有限個尺寸參數定位和定形的體,如長方體、圓錐體。
5. 所謂齊次坐標表示,就是用n+1維向量表示n維的向量。
6. 二維點(x,y)的齊次坐標可以表示為:(hx hy h),其中h≠0。當h=1時稱為規范化的齊次坐標,它能保證點集表示的唯一性。
7. 旋轉變換公式的推導、對稱變換

第五章
1. 交互繪圖技術是一種處理用戶輸入圖形數據的技術,是設計交互繪圖系統的基礎。常見的交互繪圖技術有:定位技術、橡皮筋技術、拖曳技術、定值技術、拾取技術、網格與吸附技術。
2. 常用的橡皮筋技術有:橡皮筋直線、橡皮筋矩形、橡皮筋圓。
3. 拖曳技術是將形體在空間移動的過程動態地、連續地表示出來,直到用戶滿意。
4. 定值技術有2種:一種是鍵入數值,另一種是改變電位計阻值產生要求的數量,可以用模擬的方式實現電位計功能。
5. 拾取一個基本的對象可以通過:指定名稱法、特徵點發、外界矩陣法、分類法、直接法。

第六章
1. 點、線、面是形成三維圖形的基礎,三維變換是從點開始。
2. 三維圖形變換分類:三維圖形變換包括三維幾何變換和平面幾何變換,三維幾何變換包括基本幾何變換和復合變換;平面幾何變換包括平行投影和透視投影,平行投影包括正投影和軸測投影,透視投影包括一點透視、二點透視、三點透視。
3. 投影中心與投影面之間的距離是無限的投影叫做平行投影,它包括正投影和軸測投影。
4. 正投影形成的視圖包括:主視圖、俯視圖和左視圖。軸測投影形成的視圖為軸測圖。
5. 透視投影也稱為中心投影,其投影中心與投影面之間的距離是有限的。其特點是產生近大遠小的視覺效果
6. 對於透視投影,不平行於投影面的平行線的投影會匯聚到一個點,這個點稱為滅點。透視投影的滅點有無限多個,與坐標軸平行的平行線在投影面上形成的滅點稱為主滅點。主滅點最多有3個,其對應的透視投影分別稱為一點透視、二點透視、三點透視。

第七章
1. 型值點是曲面或曲線上的點,而控制點不一定在曲線曲面上,控制點的主要目的是用來控制曲線曲面的形狀。
2. 插值和逼近是曲線曲面設計中的兩種不同方法。插值—生成的曲線曲面經過每一個型值點,逼近—生成的曲線曲面靠近每一個控制點。
3. 曲線曲面的表示要求:唯一性、統一性、幾何不變性、幾何直觀、易於界定、易於光滑連接。
4. 曲線曲面有參數和非參數表示,但參數表示較好。非參數表示又分為顯式和隱式兩種。
5. 對於一個平面曲線,顯式表示的一般形式是:y=f(x)。一個x與一個y對應,因此顯式方程不能表示封閉或多值曲線。例不能用顯式方程表示一個圓。
6. 如果一個曲線方程表示為f(x,y)=0的形式,我們稱之為隱式表示。其優點是易於判斷函數f(x,y)是否大於、小於或等於零,即易於判斷是落在所表示曲線上還是在曲線的哪一側。
7. 參數連續與幾何連續的區別:參數連續性是傳統意義上的、嚴格的連續,而幾何連續性只需限定兩個曲線段在交點處的參數導數成比例,不必完全相等,是一種更直觀、易於交互控制的連續性。
8. 在曲線曲面造型中,一般只用到C1(1階參數連續)、C2(2階參數連續)、G1(1階幾何連續)、G2(2階幾何連續)。切矢量(一階導數)反映了曲線對參數t的變化速遞,曲率(二階導數)反映了曲線對參數t變化的加速度。
9. 通常C1連續必能保證G1的連續,但G1的連續並不能保證C1連續。
10. 對於三次Hermite曲線,用於描述曲線的可供選擇的條件有:端點坐標、切矢量和曲率。
11. 三次Hermite曲線特點:①可局部調整,因為每個曲線段僅依賴於端點約束;②基於Hermite樣條的變化形式有Cardinal樣條和Kochanek-Bartels樣條;③具有幾何不變性。
12. Bezier曲線的性質:①端點性質②端點切矢量③端點的曲率④對稱性⑤幾何不變性⑥凸包性⑦變差縮減性。
13. 一次Bezier曲線是連接起點P0和終點P1的直線段,二次Bezier曲線對應一條起點P0終點在P2處的拋物線。
14. B樣條曲線的性質:①局部性②連續性或可微性③幾何不變性④嚴格凸包性⑤近似性⑥變差縮減性。
15. NURRS曲線具有以下性質:①局部性②可微性③仿射不變性④嚴格保凸性⑤一般性⑥變差縮減性⑦端點性質。

第八章
1. 要把三維物體的信息顯示在二維顯示設備中,必須通過投影變換。由於投影變換失去了深度信息,往往會導致二義性,要消除二義性,就必須在繪制時消除實際不可見的線和面,稱作消除隱藏線和隱藏面,簡稱消隱。
2. 面消隱常用演算法有:深度緩沖區(Z-buffer)演算法和深度排序演算法(畫家演算法)。
3. 深度緩沖區演算法和深度排序演算法的區別:

4. GPU和CPU之間是如何協調數據處理的

因為設計的目標不同,當今的CPU和GPU功能上有本質的不同。作為通用處理器的CPU,顧名思義,它是設計用來處理通用任務的處理、加工、運算以及系統核心控制等等的。CPU中包含的最基本部件有算術邏輯單元和控制單元,CPU的微架構是為高效率處理數據相關性不大的計算類、復雜繁瑣的非計算類的等等百花八門的工作而優化的,在處理日常繁復的任務中應付自如。

計算機的「靈魂」——操作系統,以及幾乎100%的系統軟體都主要仰仗CPU來順利運行。CPU面對的算術、邏輯運算以及控制處理是非常繁瑣和復雜的,面對處理的數據和信息量不僅數量多而是種類多。CPU運算和控制多面手的這種設計,讓它在計算機中得心應手,位置不可動搖。

GPU設計的宗旨是實現圖形加速,現在最主要的是實現3D 圖形加速,因此它的設計基本上是為3D圖形加速的相關運算來優化的,如z-buffering 消隱,紋理映射(texture mapping),圖形的坐標位置變換與光照計算(transforming & lighting)等等。這類計算的對象都是針對大量平行數據的,運算的數據量大,但是運算的類型卻並不復雜,大多類似和雷同,計算性強但是邏輯性不強,如矩陣運算就是圖形運算的典型特性。

如今的游戲,單單從圖象的生成來說大概需要下面四個步驟:

1、Homogeneous coordinates(齊次坐標)
2、Shading models(陰影建模)
3、Z-Buffering(Z-緩沖)
4、Texture-Mapping(材質貼圖)
在這些步驟中,顯示部分(GPU)只負責完成第三、四步,而前兩個步驟主要是依靠 CPU 來完成。而且,這還僅僅只是3D圖象的生成,還沒有包括游戲中復雜的AI運算。場景切換運算等等……無疑,這些元素還需要CPU去完成,這就是為什麼在運行《魔獸世界》的時候,當場景切換時再強勁的顯卡都會出現停頓的現象。
對於需要CPU進行大量AI運算的游戲來說,在固定的顯示解析度下,CPU的架構越強、主頻越高的確有一定的優勢。著名的FPS第一人稱設計游戲——CSS,就是一個很好的例子。當你開啟了30個左右的機器人,在大混戰的時候就很容易體現出高端CPU與入門級CPU之間的區別了。
打造一套完整的游戲 PC 系統,CPU和顯卡的搭配應該相得益彰,高成低就或低成高就都是不平衡的組合方式。

第一代 GPU 首先,CPU將數據傳遞給GPU進行處理,數據先進入T&L單元中的Transform Engine,在這里,數據將以頂 點的形式接受視野范圍的判斷,當處理單元判斷某部分頂點處於觀察者的視線范圍以外時,Transform Engine將把這部分頂點「剪除」以使其不會 干擾後續的流水線操作, 具個簡單的例子:當你在某FPS游戲中突然打開狙擊槍的狙擊鏡,視野變成了一個圓形的空洞,而其他部分則為黑色,這時 Transform Engine將去除這個圓形視野范圍以外的所有頂點,不過,這里進行的只是視野范圍的判斷,Transform Engine去除在 你的視線范圍內但是被其它東西擋住了的物體,另外,每一個三角形可能被旋轉,放大/縮小,上升,下降,左偏,右移等。 這就是多邊形轉換轉換。 Transform Engine根據你的視角,改變了由程序提供的組成3D物體的頂點的坐標。經過Lighting Engine處理後的圖象經過判斷 處理後的數據將流入T&L單元中的Lighting Engine,根據光源的類型,距離,角度,數目,應用方式等不同參數,每一個多邊形都會有 不同的光影表現和光影關系,因而需要不同的光線函數予以表徵,在Lighting Engine中,處理單元將根據軟體提出的光源分布情況為每個頂點計算 出它所具有的光線矢量,以便後續進行的光線紋理貼圖,著色等操作
經過Lighting Engine處理的畫面
其實,經由T&L單元處理過的數據還只是抽象的數據,並不是具體的圖形,上面兩副圖僅僅是方便讀者進行想像的示意圖。
接下來數據將流入Setup Engine,在這里,運算單元將進行三角形的設置工作,這是整個繪圖過程中最重要的一個步驟,Setup Engine甚 至直接影響著一塊GPU的執行效能。三角形的設置過程是由一個一個的多邊形組成的,或者是用更好的三角形代替原來的三角形。在三維圖像中可能會有些三角形 被它前面的三角形擋住,但是在這個階段3D晶元還不知道哪些三角形會被擋住。所以三角形建立單元接收到的是一個個由三個頂點組成的完整三角形。三角形的每 個角(或頂點)都有對應的X軸、Y軸和Z軸坐標值,這些坐標值確定了它們在3D景物中的位置。同時,三角形的設置也確定了像素填充的范圍
經過Setup Engine處理的畫面
最終著色完畢的畫面
在三角形設置完畢後,T&L單元的全部運算就完成了。接下來數據將進入NV15獨有的NSR像素處理單元進行一定的像素處理,接著流入像素流水線 進行後續的紋理像素填充等操作,這部分操作在DriectX7.0中的變化並不明顯,基本的渲染填充過程與過去的顯卡幾無二異
T&L雖然再一定程度上緩解了CPU運算能力的不濟所帶來的瓶頸,使得系統在圖形方面的資源得到了再分配和增強,但同時,T&L也將新的矛盾轉到了GPU上
T&L是一組相對固定的簡單的圖形函數,所實現的特效受到了函數本身語句的限制,雖然這種固定的指令集設計可以帶來比較高的執行效率,但這種設置 使得DX7下所能實現的特效受到了指令集的約束,許多逼真的特效無法實現,程序員的思想也被限定在一個相對狹窄的范圍內。
2、我要看到你飄逸的秀發和迷人的微笑—可編程Shader以及第二代GPU
DriectX8.0在傳統T&L的基礎上加入了兩個新的概念—可編程的Vertex Shader和Piexl Shader,同樣的,第二代 GPU的標志就是硬體級別的可編程Shader運算,代表產品為NV2X(Geforce3/4Ti),R2XX(Radeon8500)等
可編程Shader的復雜程度遠非T&L可比,為了方便大家理解第二代GPU的特點,我們先來認識一下什麼是可編程Shader,以及可編程Shader運算單元
可編程Vertex Shader及頂點處理器:
可編程Vertex Shader讓程序員能夠對特定物體,甚至整個畫面的每一個頂點,指定特別的運算程序,卻不需要CPU介入。每一個頂點都攜帶相當多 的信息,比如坐標,重量,法線,顏色,紋理坐標,霧和點大小數據。頂點處理器能夠以簡短的程序來改變上述這些信息。 這些小程序直接由頂點著色引擎本身執 行,不必勞駕CPU。 典型的T&L引擎將程序員限制在3D運算的光影轉換之前, 在有了頂點處理器的支持之後,游戲設計師對游戲場景里的3D物 體能夠為所欲為的操縱變化,而且不需要用到中央處理器。
這導致了一場革新,程序可以改變頂點的坐標,這樣基本上改變物體的形狀,以達到更接近真實的移動、移動殘影、混色、內插(在兩種外型間轉換),以及變形, 比如改變角色臉部的骨骼和皮膚一個產生一個適時的微笑。也可改變頂點上的顏色數據和紋理坐標,物體表面的顏色達到設計師所想要的色彩效果、投影、凹凸貼圖 設置(如Blinn Bump mapping)或者其它投射的紋理。光源也可以為程序員隨心所欲的調整,不再像過去那樣需要對光源的效果進行笨拙的光線 紋理貼圖,而這些在以前是不可想像的。這一切都歸功於可編程Vertex Shader和頂點處理器的出現
Blinn Bump mapping
可編程Piexl Shader以及像素處理器
在NV15中,nVidia曾經嘗試加入一個叫NSR的像素處理單元,它可以在數據進入像素流水線之前對每個像素進行一系列運算操作,雖然同為每像素操 作,但NSR與Piexl Shader可不能同日而語, NSR對於像素的運算只有7種,同T&L一樣,它依然是固定模式的,程序員依然要依照 規定好的條條框框寫出程序,而Piexl Shader則不同,我們可以用許多不同方式去編程,以實現不同的特效,下面就是一般的像素處理器所具備的特 性:
· 陰影貼圖
· 快速紋理載入
· 影像乘法,對稱核心
· 支持4096x4096或512x512x512 紋理
· 立方體貼圖每邊可4096x4096x32-位
· 支持YUYV的紋理(自動轉換成RGB三原色)
· 支持全景貼圖
可以指向任何一個圖像,如背景緩沖區(back buffer),而可直接當作紋理使用
· 邊緣色彩及邊緣紋理
· 硬體同步化讀/寫
對同一張紋理的讀及寫允許全流水線操作。
可以對背景緩沖區著色,然後馬上能當作紋理使用
· Pass through colors
· 支持DX6規格的環境凹凸/亮度貼圖(就是環境凹凸貼圖)
· 簡單的紋理,S,T 在alpha/紅(AB)及藍/綠 (BG)
· 等向的雙方向性反射分布功能光源
· 內積產生色彩貼圖或Z坐標
· 真實反射凹凸貼圖
這看起來似乎有點抽象,簡單的說,可編程Piexl Shader實現了一個非常重要的特效—真實的毛發
古老街道上昏暗燈光中的狼人
在3D渲染中,渲染真實的毛發一直是一件非常困難的事情,大量的多邊形給多邊形生成帶來了嚴峻的考驗,而每一根毛發之間復雜多變的即時光影關系更不是幾個簡單固定的指令所能實現的。Piexl Shader的可編程性和運算能力很好的解決了這個問題
好啦,現在讓我們來看看第二代GPU是如何完整處理一個畫面的吧
首先,來自CPU的各種物理參數進入GPU,Vertex Shader將對頂點數據進行基本的判斷,如果沒有需要處理的Vertex效果,則頂點數據直 接進入Transform&Lighting Unit進行傳統的T&L操作以節約時間提高效率,如果需要處理各種Vertex效果,則 Vertex Shader將先對各種Vertex Programs的指令進行運算,一般的Vertex Programs中往往包含了過去轉換,剪 切,光照運算等所需要實現的效果,故經由Vertex Shader處理的效果一般不需要再進行Transform&Lighting操作;另 外,當遇到涉及到曲面鑲嵌(把曲面,比如弓形轉換成為多邊形或者三角形)的場合時,CPU可以直接將數據交給Vertex Shader進行處理
另外,在DX8.0的Transform過程中,Vertex Shader可以完成Z值的剔除,也就是Back Face Culling—陰面隱去,這就意味著除了視野以外的頂點外,視野內被前面頂點遮住的頂點也會被一並剪除,這大大減輕了需要進行操作的頂點數目
接下來,經由Vertex Shader處理完成的各種數據將流入Setup Engine,在這里一如既往的進行三角形的設置工作,到這里為止,Vertex Shader的工作就完成了
過去,設置好的三角形本來應該帶著各自所有的參數進入像素流水線內進行紋理填充和渲染,但現在則不同,在填充之前我們還需要進行Piexl Shader的操作
其實Piexl Shader並非獨立存在的,它位於紋理填充單元之後,數據流入像素流水線後先進入紋理填充單元進行紋理填充,然後便是 Piexl Shader單元,經由Piexl Shader單元進行各種處理運算之後再進入像素填充單元進行具體的著色,再經由霧化等操作後,一個完整 的畫面就算完成了
值得注意的是,第二代GPU中普遍引入了獨立的顯示數據管理機制,他們位於Vertex Shader,Setup Engine以及像素流水線之間,負 責數據的更有效率的傳輸、組合,各種無效值的剔除,數據的壓縮以及寄存器的管理等工作,這個單元的出現對整個GPU的工作效率的保證其到了至管重要的作 用。
HyperZ系列:HyperZ技術本身就是一種類似nVIDIA的「Z-封閉甄別」的技術,但是比nVIDIA還更進一步。它的主要功能簡單說來就是分 析在Z軸上的場景,被遮擋的就會被忽略掉,只渲染我們能看到的部分場景;然後對渲染過的Z軸場景進行壓縮處理,數據的壓縮可減少他所佔用的空間,從而在存 取Z-Buffer數據的時候可以保留更多的顯存帶寬。而且這是一種畫面質量沒有損害的壓縮演算法,並不影響畫面質量。最後一步就是把經過渲染的場景中的Z -Buffer信息立刻清除掉,這樣就更加大了顯存帶寬的利用率。
LMA(光速顯存架構)系列:光速顯存架構採用的第一個技術是「顯存交錯控制」技術, LMA中的顯存控制器劃分成了4個獨立的顯存控制單元,每個單元最 大可以進行32bit圖形相關數據的存取工作,並且這4個單元之間以及它們和圖形處理單元之間都保持密切的通訊聯系,並隨時協調平衡各個子單元之間的數據 流量,因此整體來看LMA的顯存控制單元還是可以進行128bit數據的存儲,但是保證了顯存帶寬的充分利用。光速顯存架構採用的第二個技術是「無損Z壓 縮演算法」。傳統的圖形晶元對於每個待渲染的圖形象素都要進行Z軸數據的讀寫工作,因此存儲這些數據的Z緩存一向是消耗顯存帶寬的大戶。LMA中集成了硬體 「無損Z壓縮」單元,採用「無損Z壓縮演算法」對Z-緩存數據進行4:1的完全無損壓縮。 光速顯存架構採用的第三個技術是「Z-封閉甄別」。排除了圖象中 被遮蓋住而不可見的部分,這樣GPU就不做隱面模型構建(節省處理器的多邊形運算資源),並且渲染管線也不對隱面進行渲染(無需從幀緩存中讀寫隱面資料數 據,節省渲染管線的象素和紋理生成資源並完全消滅了隱面資料對顯存帶寬的佔用)。最後,LMA還包括了4組高速Cache,對數據傳輸進行緩沖。
3、夢中的鏡花水月—可編程Shader2.0以及第三代GPU
當你第一次看到3Dmark03中的MotherNature時,你有沒有感覺到震撼?
更加寬泛的色彩范圍能夠使得圖形的逼真度上升,這就是Shader2.0的由來,Shader2.0的核心實際上就是以擴大指令數目以及FLOAT數據形 式的應用來提高色彩表達的精確度,而第三代GPU的Shader單元也由此而具備了高精度FLOAT色彩數據的運算能力。從一般角度來講,第三代GPU同 第二代GPU相比在基本的操作控制形式等方面並沒有本質的區別,但是由於Shader2.0更大的指令長度和指令個數,以及通用程序+子程序調用的程序形 式等使得第三代GPU在處理高精度的龐大指令時效率上有了明顯的提升,同時也使得第三代GPU的可編程性躍上了一個新的台階
讓我們來看看第三代GPU到底有哪些改進吧
Vexter Shader部分
第三代GPU的頂點處理器部分除了一般的操作功能外還具備流程式控制制能力,包括循環,跳躍以及子程序調用等,這些控制指令以及更多向量(或標量)寄存器的應 用使得頂點處理器能夠以更高的效率執行Vertex Programs,提高了Vertex的處理速度。同時,加大的指令長度和指令數量使得頂點處理器的 功能得到了進一步的強化。另外,在第三代GPU中,傳統的T&L數據將完全交由頂點處理器來執行,Transform& Lighting Unit將徹底被頂點處理器「吞並」,這也是第三代GPU的一個重要特點
Piexl Shader部分
第二代GPU的Piexl Shader只能實現INT數據的運算,這勢必會帶來最終運算結果的不精確,而數據的不精確導致了顏色表現的不準確,干擾了最 終畫面的質量以及效果的表現,第三代GPU的重點改進就是運算單元和寄存器所支持的運算格式,現在Piexl Shader可以進行更高精度的FLOAT 運算和輸出,從而使得圖形的色彩顯示更加精確
暴光正確的圖象
數據精度不當而無法實現的特種暴光
另外,第三代GPU的像素處理器每周期所能處理的材質以及指令也分別增加了數倍,這些新特性使得第三代GPU可以處理各種復雜程度的效果,營造一個更為真實的3D畫面,比如更加真實的水面效果
INT Piexl Shader所表現的水面效果
FLOAT Piexl Shader所表現的水面效果
傳統的INT無法表現寬泛的波浪效果,程序員害怕數據精度范圍狹窄引起的上溢或者下溢的發生而不得不在一個很小的物理參數范圍內控制漣漪水面所需的波長、 波浪的大小、移動速度以及反射和折射效果等,現在,由於數據精度的提升,像素處理器完全可以處理一個非常寬泛的數據精度范圍,避免數據的溢出,這就使得更 加真實的水面效果得以被表現。第三代GPU的代表是NV3X系列,R3XX系列等,其中R3XX系列的基本處理方式和順序與第二代GPU在本質上基本相 同,僅僅是Vertex Shader和Piexl Shader的具體操作細節和運算精度上有些許不同,而NV3X雖然在基本原理上也與之大略相同,但 從流水線的角度來看則與完全不同,應該算是個「異類」。產生過程,只分析一下NV3X
以NV35為例:
首先,他具有8個紋理帖圖單元,但8個紋理貼圖單元並不在固定分布於每一條Piexl流水線,而是集簇在一起,根據情況來搭配,可以是4*2、8*1。
其次,他具有12條Shader流水線,但沒有全盤採用浮點渲染流水線,而只是把12條Shader流水線中的8條做成具備浮點處理能力;不過全部12條Shader流水線都具備Fixed-Point Shader的執行能力。
另外,NV3X將流水線後部的各種渲染單元,如霧化,Alpha混合等大幅削減,使得流水線在一定程度上公用這些單元
NV30的構架組成形式基本上與之相當,只是數目上略有不同
由於這個構架並不是傳統意義上的4*2或者8*1的固定構架,我們不能象過去那樣說NV35「每個流水線具有2個紋理帖圖單元」或者「每條管線具有3個Shader流水線」……我們只能說「NV35單位周期可以完成8次左右的紋理貼圖或者12次Shader操作」
另外,由於NV3X對於Fixed-Point Shader的支持精度是FP16和FP32,同時NV3X的Shader流水線的單位Fixed- Point Shader處理精度是16位,所以當遇到32位Fixed-Point Shader數據時,能進行Fixed-Point Shader 數據處理的8條Shader流水線也會根據情況進行搭配來運算32位的Fixed-Point Shader數據
Pixel Programs往往是由多條指令構成的,不同的指令需要不同的執行時間來完成,每個像素必須在應用在它「身上」的Pixel Shader 操作完成後才能由像素流水線寫入到幀緩存里。故此,對於應用了Piexl Shader的像素實際上是需要多個以上的周期才能寫入到幀緩存里,如果採用8 條完整的渲染流水線的話, 流水線後面的霧化、色彩混合等單元很多時候都會處在等待階段,這部分單元需要佔用的晶體管數量不在少數,如果這樣浪費就怪可惜 的,砍掉後其中的霧化等單元後,對整體的性能雖然有一些影響,但是卻可以把節省下來的晶體管用於加強Pixel Shader的功能和性能上來,同時可以 保證比較高的多重紋理效率,利大於弊。
簡單的,這個有點詭異的體系節省晶體管的同時能確保相對較好的Pixel Shader效能,同時還有極高的多重貼圖效能
nVidia本指望4條Pixel管線+ 12條Shader流水線的設計能夠在現在以及未來較長的一段時間的游戲里提供超過4條甚至8條 Pixel Pipeline顯卡的效能。不過,實際情況卻與nVidia的初衷有些背道而馳,Shader的完美應用帶來的一個結果就是越來越好的非多 紋理光效果,傳統的多紋理貼圖才能表現的很好的光效果現在只需要進行一次貼圖或者直接使用Shader就可以達到,這使得NV3X的設計成為了空架子,實 用意義大大降低,而在單紋理處理過程中由於NV3X的後續效果單元被削減,它的渲染效能註定沒有傳統的完整流水線高,另外,由於DX9中的最終FP精度被 定義為FP24,這導致了NV3X的相對低下的FP效能。最終,本來「先進」的NV3X構架落的個整體效能低下的下場
從本質上來講,圖形數據在NV3X中的實際處理過程依然是沿著頂點處理器—Setup Engine—像素流水線的順序進行的,這與R3XX以及所有的第二代GPU是相同的
天堂的入口—可編程Shader3.0,DriectX Next以及未來的GPU
在微軟剛剛公布的Driect9.0C中,Vertex Shader和Piexl Shader已經具有了幾乎相同的能力,而在nVidia新發布的第 四代GPU—NV40中,我們發現Vertex Shader包含了4個紋理取樣器,可以使用texld指令進行查表操作, NV40可以在一個 shader pass里完成4個紋理的讀取,這個對於通用替換貼圖而言相當的重要,有了vertex texturing功能後, vertex shader就能讀取紋理信息直接映射到頂點上,以實現displacement mapping(位移映射)等等效果,用不同的紋理和較 少的頂點傳輸時間就能實現外形復雜、平滑的模型,這表明GPU中Vertex Shader的功能正在逐漸接近Piexl Shader。隨著GPU的發 展,未來GPU中的Vertex Shader和Piexl Shader最終將被合並成一個統一的處理單元—Intergrated Shader,兩 種處理單元將使用完全相同的語法以及指令集,Shader的統一將帶來完全不同與現在的數據執行處理方式,GPU的內部結構將發生本質的變化, Intergrated Shader帶來了更低晶體管數目的解決方案,以更少的晶體管數目來完成現在需要數億晶體管才能完成的功能,同時統一 Shader將引出類似全通用I/O介面的設計以利資源的更合理的傳輸和分配,同時,為了解決越來越龐大的數據量,虛擬顯存、無限資源訪問以及幀緩沖操作 等技術的引入也勢在必行。另外,我們在DirectX Next中還發現了整數指令集,處理器等特殊的定義,這些新穎的設計為我們勾勒出了未來GPU的輪 廓
整數指令集
在編程中不必在擔心指令限制是一個很大的進步,不過想使得GPU更為通用還需要更多的工作。一個需要提高的主要區域就是整數處理能力。目前基於在著色器中 處理的所有數據都是浮點,這對於大多數顯卡操作而言是沒有問題的,不過不適合動態分支預測、非內插式顯存搜索(如頂點緩沖的索引)等操作。在目前的GPU 中,唯一的內存定址就是紋理查找,使用的也是浮點值。這樣的情況對於紋理定位而言沒有什麼問題,不過對於通用內存定址而言就不合適了,這里的連續內存塊可 以完全彼此沒有關聯,採用內插式查找沒有任何意義。微軟對於這樣的情況,在4.0版的Shader模型中引入了全新的、完整的整數指令集。拓撲處理器實際 上,目前的顯卡可以在某些情況下新生成三角形,比如在用到直線以及點的時候。大多數的娛樂級顯卡只具備對三角形進行光柵化處理的能力,這也就意味著所有的 點、線就必須轉化為三角形。點和線在最後都將以2個三角形結束,這樣就需要用到2-6個頂點(根據索引方式的不同而變化)。從本質上來說,這樣的做法是有 益處的,通過可編程的管線,顯示先前應該遮蔽的場景也就無需通過CPU,而可以通過微軟的「拓撲處理器」直接完成。從邏輯上來說,這個拓撲處理器和鑲嵌單 元是相互獨立的,這個處理器在兩種操作集中均可以使用。由目前的趨勢來看,未來的GPU將向著高運算能力,高精度,高通用性的方向發展,GPU在工作方式 上將越來越接近CPU,由於高通用性等CPU特性的引入,GPU可能在一定程度上替代一部分CPU在非繪圖領域的工作,也許在未來我們會看到由全GPU組 成的圖形工作站。盡管未來GPU需要面對由於這些改進而帶來得的諸多問題,尤其是通用性導致的效率低下,比如Intergrated Shader的效率 低下,但隨著時間的推移,各種問題都將會得到妥善的解決。

閱讀全文

與z緩沖區消隱演算法相關的資料

熱點內容
javagmt轉換 瀏覽:824
linux查看snmp 瀏覽:22
ug80車床編程 瀏覽:514
怎麼加速python計算素數 瀏覽:238
腰椎第五節壓縮性骨折 瀏覽:89
程序員開會的句子 瀏覽:990
用哪個app寫編程 瀏覽:643
android通訊錄增刪改查 瀏覽:727
車貸解壓過戶可以同時進行嗎 瀏覽:917
java面向對象編程題目 瀏覽:876
二次元壓縮包 瀏覽:698
stc模擬器編程器 瀏覽:155
伺服器銷售怎麼做好 瀏覽:87
什麼是com編程 瀏覽:848
演算法工程師最新資訊 瀏覽:608
郵政銀行卡怎麼在app簽約綁定 瀏覽:49
壓縮卷一直轉 瀏覽:978
初一編程小程序怎麼做 瀏覽:828
bt軟體文件夾名稱 瀏覽:159
unix創建命令 瀏覽:624