opengl是乙個免費跨平台的圖形庫標準api,具體的實現由各個廠商實現,能實現複雜的2d、3d圖形,而opengl es是專門針對嵌入式終端而裁剪的一版opengl庫,其原理是opengl提供的api控制gpu,傳送操作指令,控制影象渲染管線進行繪製,最後在通過egl與本地窗**互,渲染輸出到螢幕;egl中間層作為opengl與本地視窗的橋梁,主要完成
opengl操作物件主要是gpu,gpu是顯示卡內部的核心元件,而gpu內部包含頂點渲染單元和畫素渲染單元,前者負責影象模型繪製,後者負責為影象上色,早期的管線是固定管線如opengl es1.0,現在opengl2.0支援可程式設計的渲染管線;這兩個渲染管線也對應後面會用到的頂點著色器和片著色器
opengl只支援三種基本影象的繪製:點、線、三角形,任何複雜的影象都可以由這三種影象構成
根據傳入的圖元座標,繪製圖元,opengl es是乙個右手座標系,螢幕中心是原點,x軸正方向向右,y軸正方向上,z軸穿過螢幕指向正面,當我們作畫時,我們向頂點著色器傳入影象座標,當涉及到空間變換、投影時,我們還可以往其傳入矩陣,投影矩陣、觀察矩陣等,對影象座標進行轉換;
根據傳入的顏色值對影象模型進行上色,如在紋理開發時,根據傳入的紋理座標點,取出對應的顏色,然後在對應的模型座標值下進行上色
片段著色器是opengl中用於計算片段(畫素)顏色的程式。片段著色器是逐畫素運算的程
序,也就是說每個畫素都會執行一次片段著色器,當然也是並行的。
所以opengl在影象繪製時,一般經歷如下幾個步驟:
光柵化圖元就是把圖元轉化為乙個個片元,片元在底層可以對映到畫素,用於片著色器對其上色
幀緩衝可以理解為輸出到螢幕最後一步中,快取螢幕上需要顯示的資料
以上只是一些基本的概念,在日常開發中我們還需要掌握以下幾個知識:
OpenGL ES學習系列教程
分享乙個opengl es學習系列教程,學opengl es時,這個系列文章不失是乙個好的入口 opengl es for iphone drawing a circle part1 circle part i.html part2 circle part ii.html part3 ircle p...
OpenGL ES學習教程 座標系統變換
經過前面幾節的學習,我們能畫乙個簡單的影象,並且也可以上一些顏色,但是如果我們需要在2維螢幕上畫乙個3維影象,這就需要對物體座標進行變換,3維是有xyz軸的,而螢幕上的座標只有xy軸 opengl的螢幕座標稱為歸一化座標,也有z軸只是螢幕上的物體z軸為0 那3維座標轉換為二維座標的過程是如何實現的呢...
opengles學習筆記
glsl語言裡面的attribute和uniform型別的變數,在程式中通過gles20.glgetattriblocation和gles20.glgetuniformlocation獲取,這裡獲取類似取到了他的位址一樣,就像是指標,然後在程式裡面可以通過指標改變這些變數的值,怎麼改變呢?1.通過g...