計算機螢幕乙個畫素的顏色值由rgb(或rgba,a並不直接用於顏色顯示)三個分量組成;不同裝置單個畫素能顯示的顏色數不用,儲存顏色值的記憶體大小也不用,一般用bit來衡量,8-bit buffer能顯示256種顏色。rgb各分量的值可以無歧義地用浮點數表示,範圍是[0.0,1.0],1.0表示這個分量的顏色達到最強。
圖元顏色
opengl設定顏色的api是glcolor*,顏色設定以頂點為單位,圖元的顏色進過流水線的處理才能到達螢幕:
1)頂點的顏色還要經過光照處理;
2)此時以圖元頂點的顏色為基礎,按選定的著色模式(shading model)對圖元進行著色,得出圖元內部的顏色;
3)接下來就是光柵化(rasterize,也即將圖元轉化成二維影象),這一步決定影象視窗座標內的每個格仔顏色、深度(z)、紋理座標,這樣的格仔就是片段(fragment),紋理、霧、antialiasing這些效果也會被加諸片段之上;
5)最終片段的顏色和frame buffer中原有的畫素顏色進行混合操作(alpha blending,dithering,bitwise logical operation),形成新的畫素顏色。
rgb顏色儲存格式
顯示裝置一般為每個分量分配一定的bit數(不一定相等),分量值儲存為無符號整形;比如r有8 bit,那麼儲存的值為0,1...255,那麼分別對應於浮點值0.0,1/255...1.0。
dithering
一些現實裝置使用dithering技術來增加可以顯示的顏色數目,打個比方,rgb分別只有乙個bit寬度,那麼只可以顯示:black,white,red,blue,green,yellow,cyan,magenta這幾種顏色,為了顯示一塊pink區域,可以在該區域內間隔顯示red和white畫素,這樣看起來就感覺是pink了。
color-index模式
該模式使用一張顏色查詢表和顏色索引來表示顏色,畫素中儲存的是索引值。
shading mode
有兩種著色模式,flat和smooth,前者會使用某個頂點的顏色來個整個圖元著色,後者會考慮所有頂點的顏色對圖元內部的點進行著色(插值)。在flat模式下,選取那個頂點的顏色取決於圖元型別,請參考原書。
頂 0
第四章 程式設計
選擇語言的原則 最少的工作量原則 最少技巧性原則 最少錯誤原則 最少維護原則 減少記憶原則 總原則 先求正確後求快 先求清晰後求快 求快不忘保持程式正確性 保持程式整潔以求快 不要因效率而犧牲清晰 好程式標準 易於測試和除錯 易於維護 易於修改 設計簡單 高效率結構化程式設計主要包括兩方面 在編寫程...
程式設計珠璣第四章
正文裡面涉及到程式設計方法學的內容。不再細述 1 加及條件是0 l u n 1 2 這個函式可以寫成如下形式 int bs int a,int begin,int end,int v if e a end e v return e a return 1 再給一段測試 include include ...
MFC Windows 程式設計 第四章 選單
編譯一次後就不用再編譯了,而已加快程式編譯速度,一般將不更改的標頭檔案 c執行時標頭檔案和其他靜態型別標頭檔案包含在裡面。2 基於檢視的應用程式體系結構wm paint和使用者區滑鼠訊息 鍵盤訊息處理程式都必須在檢視中進行處理,所有在框架視窗使用onsetfocus 焦點傳遞給檢視 和過載oncmd...