一、OpenGL中的坐標(biāo)系
1. 2D笛卡爾坐標(biāo)系(X軸,Y軸)岩馍,平面圖形,視口(顯示窗口區(qū)域系數(shù))
2. 3D笛卡爾坐標(biāo)系(X軸抖韩,Y軸蛀恩,Z軸),立體圖形
3. OpenGL的投影方式有:
透視投影:用來渲染立體圖形茂浮,有遠(yuǎn)小近大的效果双谆。具有更加逼真的效果
正投影:只能用來設(shè)置平面圖形
4.坐標(biāo)系的分類:
① 慣性坐標(biāo)系:沒有什么參考價(jià)值,只要用來平移到世界坐標(biāo)系
② 世界坐標(biāo)系:大環(huán)境中的位置席揽,系統(tǒng)的絕對(duì)坐標(biāo)
③ 物體空間坐標(biāo)系(局部空間):局部空間中的位置
④ 攝像機(jī)坐標(biāo)系:觀察空間(觀察者)
5.坐標(biāo)系之間的變換
① 物體坐標(biāo)系顽馋,模型變換
② 轉(zhuǎn)換到世界坐標(biāo)系,視變換
③ 轉(zhuǎn)換到觀察者坐標(biāo)系/攝像機(jī)坐標(biāo)系幌羞,投影變換
④ 轉(zhuǎn)換到裁剪坐標(biāo)系寸谜,透視除法
⑤ 轉(zhuǎn)換到規(guī)范化設(shè)備坐標(biāo),視口變換
⑥ 轉(zhuǎn)換到屏幕坐標(biāo)
注:① - ④ 是可以由開發(fā)者自定義完成的属桦,⑤ - ⑥是有系統(tǒng)OpenGL來完成的
二熊痴、著色器的渲染流程
1.頂點(diǎn)數(shù)據(jù)
2.頂點(diǎn)著色器:接收頂點(diǎn)數(shù)據(jù),單獨(dú)處理每個(gè)頂點(diǎn)
3.細(xì)分著色器:
? ① 可選:描述物體形狀聂宾,在管線中生成新的餓幾何平面模型果善,生成最終形態(tài)
? ② 組分控制著色器/細(xì)分計(jì)算著色器:對(duì)所有的圖形進(jìn)行修改幾何圖元類型或者放棄所有圖像
4.幾何著色器
5.圖元設(shè)置
6.剪切:剪切窗口之外的繪制
7.光柵化:輸入圖元的數(shù)學(xué)描述,轉(zhuǎn)化為與屏幕對(duì)應(yīng)位置像素片元系谐,簡(jiǎn)稱光柵化
8.片元著色器:片元著色器以及深度值巾陕,然后傳遞到片元測(cè)試和混合模塊
9.效果
三、補(bǔ)充幾個(gè)知識(shí)點(diǎn)
1.圖片的渲染流程:
? ① GPU解碼圖片
? ② GPU紋理混合纪他、頂點(diǎn)計(jì)算鄙煤、像素點(diǎn)填充計(jì)算、渲染到幀緩沖區(qū)
? ③ 時(shí)鐘信號(hào):垂直同步止喷、水平同步
? ④ iOS設(shè)備雙緩沖機(jī)制:顯示系統(tǒng)通常會(huì)引入兩個(gè)幀緩沖區(qū)馆类,雙緩沖機(jī)制
2.MVP矩陣:
? ① model:物體的一些變化
? ② view:觀察
? ③ projection:3D矩陣
3.強(qiáng)制解壓縮:對(duì)圖片進(jìn)行重新繪制,得到一張新的壓縮后的位圖弹谁,其中用到的最核心的函數(shù)是:GCBitmapContextCreate