1. 程式人生 > >圖形學複習3——觀察和裁剪

圖形學複習3——觀察和裁剪

圖形學複習

CH5 二維觀察

5.1 視窗、視口和二維觀察流水線

視窗是指世界座標系中要顯式的區域稱,視窗定義了顯式的內容

視口是指視窗對映到顯示器的區域,視口定義了在什麼位置顯示

通常將世界座標系中一部分割槽域對映到裝置座標系的操作稱為觀察變換,二維觀察變換流水線如下:

模型區域性座標→ 世界座標 → 觀察座標 -(通過視窗視口描述)→ 規範化觀察座標 → 裝置座標

5.2 裁剪視窗到規範化視口的對映

通常所說的裁剪視窗就是視窗,即世界座標系中要顯示的區域,我們可以選擇裁剪視窗的不同形狀、大小以及方向來確定裁剪效果,也可以自己實現裁剪演算法和變換演算法獲取特殊形狀的裁剪視窗

大多數圖形系統將規範化和視窗-視口轉換合成一步,先讓視口座標在[0,1]範圍內(即讓視口位於單位座標系內),裁剪後將包含視口的單位正方形(規範化視口)對映到輸出裝置

設視窗內點(xw,yw)對映到視口內點(xv,yv)

![p2](./p2.png =480x)

為了保持視口和視窗中物件相對位置相同,必須滿足等比例條件,求解出視口座標為:

xv=sxxw+txyv=syyw+ty

其中係數為:

sx=xvmaxxvminxwmaxxwminsy=yvmaxyvminywmaxywmintx=xwmaxxvminxwminxvmaxxwmaxxwminty=y
wmaxyvminywminyvmax
ywmaxywmin

不難發現,規範化變換的複合變換矩陣為M=sx000sy0txty1

5.3 裁剪演算法

識別指定區域內或區域外圖形部分的過程稱為裁剪,裁剪策略包括:

  • 先裁剪後掃描轉換
  • 邊掃描轉換邊裁剪

二維裁剪就是判斷圖形的點P(x,y)是否滿足xwminxxwmaxxwmax,ywminyywmax

二維裁剪包括了以下幾個方面:

  • 線段裁剪
  • 多邊形填充區裁剪
  • 曲線裁剪
  • 文字裁剪

裁剪演算法有很多種(具體略),多數都是按照裁剪策略中的兩種策略:

  1. 按裁剪視窗的四條邊依次裁剪,裁剪四次後的到視窗內圖形
  2. 沿圖形邊界掃描(按一定方向),保留在裁剪視窗內的點

CH6 三維觀察

6.1 三維觀察流水線

三維觀察和二維類似,都需要裁剪並且流水線基本相同,但不同點在於:

  • 投影:視口/裝置螢幕總是二維的,總要把三維圖形投影到二維平面中顯示
  • 識別可見部分:三維圖形存在被遮擋部分,投影過程中被遮擋部分不被顯示
  • 光照:三維渲染效果

三維觀察流水線如下:

模型區域性座標 -[建模變換]→ 世界座標 -[觀察變換]→ 觀察座標 -[投影變換]→ 投影座標 -[規範化和視窗裁剪]→ 規範化觀察座標 -[視口變換]→ 裝置座標

定義觀察點P0(x0,y0,z0)為三維觀察的位置,也叫視點照相機位置,投影平面又叫觀察平面

選定觀察物體上一點Pref作為觀察參考點,那麼觀察平面法向量N=P0Pref

6.2 投影變換

投影變換就是將維數為n的點變換成維數小於n的點,常見的投影有:

  • 平行投影(包括正投影、斜投影):平行線投影
  • 透視投影:匯聚線投影

(1)正投影

正投影投影線垂直於投影平面(即觀察平面)的平行投影

正投影裁剪視窗限制了觀察座標系中的x和y的限制,再定義兩個近-遠裁剪平面構成一個封閉的裁剪體,叫做正投影觀察體

注意,投影過程中保留座標的Z分量,用於可見性檢查

下面是從正投影觀察體[(xwmin,ywmin,znear)(xwmax,ywmax

相關推薦

圖形複習3——觀察裁剪

圖形學複習 CH5 二維觀察 5.1 視窗、視口和二維觀察流水線 視窗是指世界座標系中要顯式的區域稱,視窗定義了顯式的內容 視口是指視窗對映到顯示器的區域,視口定義了在什麼位置顯示 通常將世界座標系中一部分割槽域對映到裝置座標系的操作稱為觀

圖形複習2——幾何變換

圖形學複習 CH4 幾何變換 4.1 基本二維變換 平移、旋轉和縮放是常見的基本二維變換 (1)二維平移 將二維平面上點P=⎡⎣⎢⎢xy⎤⎦⎥⎥平移到P′=⎡⎣⎢⎢x′y′⎤⎦⎥⎥=⎡⎣⎢⎢⎢x+txy+ty⎤⎦⎥⎥⎥,則稱T=⎡⎣⎢⎢

圖形中座標點座標系的變換

關於這方面之前看了好2次,雖然內容很簡單,但是每次看了就忘了,只有大概的印象。等到下次做什麼東西的時候需要用到座標變換,又要把書重新看一遍。所以這次打算把看的東西記下來,以後找起來方便。 參考書 Computer Graphics OpenGL 版本,3rd Editio

圖形複習要點

這篇文章總結一下圖形學在遊戲開發工程師面試時常考(可能會考)的問題。雖然圖形學在面試中的比重比較小,但是還是要複習一下的。圖形學的考點分為三部分,一是渲染管線,二是數學尤其是線性代數和三維幾何。 一、渲染管線 1.1 有那幾個座標系(空間)?如何在空間之間轉換? 有五個座

圖形複習1——圖形圖形系統概述與物件表示

圖形學複習 CH1 圖形學概述 1.1 圖形學 計算機圖形學是研究圖形的輸入、模型的構造和表示、圖形資料庫管理、圖形的操作以及以圖形為媒介的人機互動的方法和應用的一門綜合性學科 其最主要的任務是:研究如何用資料模型生成數字影象,具體來說有以下

iOS整合VTK(三維計算機圖形、影象處理視覺化)

因為工作需要,特意集成了一下VTK到iOS平臺。經真機測試無誤後,整理過程如下,文件是我個人編寫,如有不全面之處,還望各位提出。 iOS平臺整合VTK說明文件 關於整合VTK到iOS平臺的過程詳細的拆解為以下三步,每一步都有詳細的解釋和方法,供大家參考: 第一步:VTK

MFC計算機圖形3

之前我們已經可以畫出直線和曲線了。但是演算法雖容易理解,但是複雜度高,今天就介紹比較流行的DDA畫線法,還有,對滑鼠進行事件有所響應,即,在畫板上,滑鼠左鍵單擊,移動至另外一個地方鬆開,此時在這兩個點之間畫一條線。 DDA畫線 演算法程式碼 void

計算機圖形(六)多邊形裁剪Sutherland-Hodgeman演算法講解與原始碼

因為最近CSDN上傳資源出現問題,無法上傳,等可以上傳之後再給出下載地址。 原始碼下載:點我下載 首先講一下演算法的原理: Sutherland-Hodgeman演算法: 基本思想是一次用視窗的一條邊裁剪多邊形。 考慮視窗的一條邊以及延長線構成的裁剪線,該線把平面分成兩

計算機圖形-實驗5-掌握Bezier樣條曲面生成思想、複習基本圖元繪製、互動操作幾何變換相關內容

實驗五:(2學時) 一、 實驗目的: 掌握Bezier樣條曲面生成思想、複習基本圖元繪製、互動操作和幾何變換相關內容 二、 實驗內容: 1、在視窗中畫三維座標,包括原點和三個座標軸; 2、畫一條Bezier樣條曲面,包含4*4個控制點; 3、利用滑鼠或鍵盤控制曲面在螢幕

開發人員Linux(3):CentOS7中安裝JDK8Tomcat8

java tomcat jdk service centos 題外話:直到今天開始寫本系列的第三篇時本人才想好為這個系列取一個名字,本系列不是為Linux運維人員準備的,而是主要為開發人員準備的,包括但不限於:希望了解Linux的開發人員;需要在Linux上部署一些組件的開發人員,如Mem

[圖形]Chapter 8.4 OpenGL 二維觀察函數——視口

子窗口 觀察 log hide lines logs window gles chap 這節有幾個顯示窗口的控制函數,可以調整視口,創建子窗口,最小化為圖標,設置圖標名稱,隱藏顯示等。 gluOrtho2D (xwmin, xwmax, ywmin, ywmax); //

Directx9.0 學習教程3 -圖形之創建點 線 三角形 等

d3d custom 發現 介紹 data- directx 組成 water 詳細 1、首先 介紹點的表示方法 struct CUSTOMVERTEX { float x,y,z; }; CUSTOMVERTEX Vertices[] = { {-5.0

[計算機圖形 with OpenGL] Chapter10 OpenGL三維觀察程序示例

chap 而不是 max argv func open position style windows   10.10節書中給出了一個程序示例,有一個填充正方形,從側面的角度觀察並畫到屏幕上。   圖0   這裏進一步畫出一個立方體,將相機放入立方體中心,旋轉相機,達到在

斯坦福兔子其它圖形模型數據下載

mod data- ng- col del pos 其它 ech lar 常見模型的下載地址:http://www.cc.gatech.edu/projects/large_models/ 斯坦福兔子的下載地址:http://www.cc.gatech.edu/p

通過遊戲python 3.6 第一季 第三章 實例項目 猜數字遊戲--核心代碼--猜測次數--隨機函數屏蔽錯誤代碼--優化代碼及註釋 可復制直接使用 娛樂 可封裝 函數

nbsp 退出 而不是 判斷 and 封裝 except 次數 img 1 #猜數字--核心代碼--猜測次數--隨機函數和屏蔽錯誤代碼---優化代碼及註釋 2 3 import random 4 number = random.randint(1,

通過遊戲python 3.6 第一季 第九章 實例項目 猜數字遊戲--核心代碼--猜測次數--隨機函數屏蔽錯誤代碼--優化代碼及註釋--簡單賬號密碼登陸--賬號的註冊查詢密碼的找回修改--鎖定賬號--鎖定次數--菜單功能'menufile

lock isp 無限循環 lis true 條件判斷 elif bre format 通過遊戲學python 3.6 第一季 第九章 實例項目 猜數字遊戲--核心代碼--猜測次數--隨機函數和屏蔽錯誤代碼--優化代碼及註釋--簡單賬號密碼登陸--賬號的註冊查詢和密碼的

[圖形][轉載]圓心角圓周角相關問題,補充相關解答

都是 解答 連接 最小 width 情況 details article csdn 轉自:http://blog.csdn.net/silangquan/article/details/18450199 題目:兩圓相交,只有2交點A、B,過A點做線段CAD,CA、AD為兩圓

CS184.1X 計算機圖形導論 第7講 V1-3 學習筆記

線上 物體 創建 strong 公式推導 導論 幾何 ng- 解決方法 L7V1:OPENGL 著色:學習動機 1.光照的重要性 1)能夠真正顯示出形狀感知的外觀; 2)準確的著色和光照對對傳達物體的形狀非常重要; 3)著色的方式也十分重要:平面著色(GL_FLAT)、平滑

CG-光柵圖形裁剪算法-學習筆記

復雜 顯示 圖形 因此 延長 比較 信息 spa 矩形區域 一、引入 1. 為什麽要裁剪?——使用計算機處理圖形信息時,計算機內部存儲的圖形往往比較大,而屏幕顯示的知識圖形的一部分。因此需要確定圖形哪些部分落在顯示區之內,哪些落在顯示區之外。這個過程就稱為裁剪。 2. 點的

計算機圖形3——Boundary-Fill Algorithm

圖形學實驗:邊界填充多邊形演算法 演算法原理如下: 種子畫素入棧,當棧非空時重複執行如下三步操作: (1)棧頂畫素出棧 (2)將出棧畫素置成要填充色 (3)按左、上、右、下順序檢查與棧畫素相鄰的四個畫素,若其中某個畫素不在邊界且未置成填充色,則把該畫素入棧 核心程式碼如下: