|  
                
        隨著電腦硬體的進步,CPU與顯示卡的速度也都獲得了相當大的提升,如一般的PC使用者,現在可以利用3D 
        Studio或是AutoCAD等套裝軟體輕鬆做到以往工作站級的3D繪圖及動畫,更早在多年以前,立體繪圖就已經被利用來拍攝電影,像『魔鬼終結者』、『星際大戰』、『玩具總動員』等,此外遊戲界也隨著巫毒卡的出現而不斷向3D市場堆進,就算你不知道VR快打、UnReal、古墓奇兵、MotorRacer,也總該聽過DOOM吧!這個一腳踢開 
        第一人稱射擊大門的經典之作,當時不知道使多少玩家變成血腥暴力的屠殺狂呀!而研究領域中,立體視覺也是極力開發的對象,像是WWW上的VRML以及虛擬實境,都在為立體環境的真實性與即時性做改良。說了那麼多,到底如何在電腦上建立一個3D模型,而那些動畫又是如何產生的呢?這就牽涉到討厭的數學了,我們的目標其實很簡單,就是要把一個建立好的3D模型想辦法在2D的螢幕上表示出來,首先,假設三度空間的世界用X,Y,Z的座標表示,如圖(一),那片矩形就代表了我們的螢幕,假設眼睛是直視原點0,θ表示對X軸的旋轉角度,ψ表示對Z軸的旋轉角度,Rho為眼睛到原點的距離,p(θ,ψ,Rho)為極座標表示法,現在利用矩陣做座標變換, 
          
        <圖一>  
        將圖(一)的座標變成圖(二)的座標,以Z為軸轉-(90-θ)度,再以X為軸轉(180-ψ)度,然後將X反向,因此若點A在圖(一)中為(X0,Y0,Z0),則到圖(二)後就變成了: 
        [-1  0  0] [1 
                 0 
                      0 
              ][cos(θ-90) sin(θ-90)   0][X0] 
        [ 0  1  0] [0  cos(180-ψ) sin(180-ψ) ][-sin(θ-90) -cos(θ-90) 0][Y0] 
        [ 0  0  1] [0  -sin(180-ψ) cos(180-ψ)][     0 
                      0 
                1][Z0]  
         
           [      -sinθ 
                  cosθ 
                0 ] [X0] 
        =  [-cosθcosψ   -sinθcosψ  sinψ] [Y0] 
            [-cosθsinψ    -sinθcosψ -cosψ] [Z0] 
          
        <圖二> 
              
        最後,把眼睛作為原點,如圖(三),再做一次座標變換,並令成新的座標(Xe,Ye,Ze): 
        [Xe]    [    -sinθ 
                   cosθ 
                 0  ][X0]    [  0 
        ] 
        [Ye] =[-cosθcosψ  -sinθcosψ   sinψ][Y0]+  [  0 ] 
        [Ze]    [-cosθsinψ   -sinθcosψ  -cosψ][Z0] 
            [Rho] 
         
          
        <圖三> 
        用等比例算出真正的螢幕顯示點,並調整座標以符合螢幕座標: 
          
          
             
        好啦!這樣子就大功告成啦,日後只要只要把3D座標輸入為(X0,Y0,Z0),經過我們推導的公式就可以產生2D的座標(SX,SY)了。聰明的你到這裡一定會想到:要是改變θ或ψ的值會發生什麼事情呢?沒錯,這樣就可以使我們用不同的角度去觀察物體,在我們不動的情形下,感覺就像物體自己在旋轉一樣,θ便控制了左右旋轉,ψ則控制上下翻轉,同理,Rho與d控制物體的遠近,(cx,cy)做上下左右的平移。利用這些轉換,我們可以在製作3D模型(如:動物、建築)之後,做全範圍的檢視,圖(四)就是一個例子,把(X0,Y0,Z0)的輸入用函數取代,這樣就可以輕鬆的做出立體的函數圖形,並且還可以旋轉、平移及拉近拉遠唷! 
          
        <圖四> 
         
        [下一則 
        | 上一則 | 回系刊首頁 | 回系會首頁] 
           |