close

參考書籍-OpenGL 3D繪圖互動程式設計

 

將三維空間的點投影到二維空間,這中間要經過以下步驟,下面一一來介紹。

模型座標空間(Object space)

世界座標空間(World space)

鏡頭座標空間(Camera space)

正則座標空間(Canonical space)

螢幕座標空間(Screen space)

 


 

模型座標空間(Object space)

主要是用在物體的定位,假設有一個3D正方形,那他的中心點就是儲存在模型座標空間中,如果3D正方形發生形變(Deformation),就要另外花費資源去更新點的資訊。

 

圖片1

 


世界座標空間(World space)

在一個空間中建立一個基準點,給物體去參照才可以知道物體的所在之處,當物體移動時只要更新世界座標即可。

 

圖片6


鏡頭座標空間(Camera space)

世界座標空間中觀察物體,要看到物體需要把物體的世界座標空間轉換成鏡頭座標空間。

圖片9

鏡頭的設置需要3個值分別是前方,上方、位置。

 

圖片10圖片11


正則座標空間(Canonical space)

鏡頭設定後會產生一個三維的成像視錐區域(Canonical view volume)。

物體的鏡頭座標空間經過投影轉換(Projection transformation),轉換中,視錐區域的,x、y、z會被壓縮在-1~1之間,可以透過簡單的邏輯運算(查看中心點的位置)看物體是不是轉成二維之後還會不會顯示在螢幕上。

 

圖片12

圖片13

 


螢幕座標空間(Screen space)

平面空間的比例不一定與螢幕比例相符,還要再經過視角轉換(Viewport transformation),轉到空間與螢幕相符。

 

圖片1


總結:

圖片2

五個座標空間可以分為這兩大類:

視覽座標矩陣(Model-view matrixGL_MODELVIEW)-處理物體的縮放(Scaling)、位移(Translation)等運算

 

投影矩陣(Projection matrix, GL_PROJECTION)-鏡頭投影(Projection)轉換

 

物體直接用這兩個矩陣直接從三維變二維

arrow
arrow
    創作者介紹
    創作者 讀書小天地 的頭像
    讀書小天地

    書籍分享天地

    讀書小天地 發表在 痞客邦 留言(0) 人氣()