osg::blendfunc介紹
混合是什麼呢?混合就是把兩種顏色混在一起。具體一點,就是把某一畫素位置原來的顏色和將要畫上去的顏色,通過某種方式混在一起,從而實現特殊的效果。
假設我們需要繪製這樣乙個場景:透過紅色的玻璃去看綠色的物體,那麼可以先繪製綠色的物體,再繪製紅色玻璃。在繪製紅色玻璃的時候,利用「混合」功能,把將要繪製上去的紅色和原來的綠色進行混合,於是得到一種新的顏色,看上去就好像玻璃是半透明的。
源因子和目標因子
下面用數學公式來表達一下這個運算方式。假設源顏色的四個分量(指紅色,綠色,藍色,alpha值)是(rs, gs, bs, as),目標顏色的四個分量是(rd, gd, bd, ad),又設源因子為(sr, sg, sb, sa),目標因子為(dr, dg, db, da)。則混合產生的新顏色可以表示為:
(rs*sr+rd*dr, gs*sg+gd*dg, bs*sb+bd*db, as*sa+ad*da)
dst_alpha
表示使用目標顏色的alpha值來作為因子。
dst_color
把目標顏色的四個分量分別作為因子的四個分量
one表示使用1.0作為因子,實際上相當於完全的使用了這種顏色參與混合運算
one_minus_dst_alpha
表示用1.0減去目標顏色的alpha值來作為因子。
one_minus_dst_color
表示用1.0減去目標顏色的顏色值來作為因子。
one_minus_src_alpha
表示用1.0減去源顏色的alpha值來作為因子。
one_minus_src_color
表示用rgb(1,1,1,1)減去源顏色的值來作為因子。
src_alpha
表示使用源顏色的alpha值來作為因子。
src_alpha_saturate
(f,f,f,1); f=min(as,1-ad)
src_color
把源顏色的四個分量分別作為因子的四個分量
constant_color
自定義的顏色作為因子
one_minus_constant_color
表示用rgb(1,1,1,1)減去自定義的顏色作為因子
constant_alpha
自定義的alpha作為因子
one_minus_constant_alpha
表示用1.0減去自定義顏色的alpha值來作為因子。
zero
表示使用0.0作為因子,實際上相當於不使用這種顏色參與混合運算。
更靈活的還有
osg::blendequation
常用的混合方程:
s,d表示因子(見osg::blendfunc),cs和cd表示源顏色和目標顏色
rgba_min
min(css,cdd)
rgba_max
max(css,cdd)
alpha_min
alpha_max
logic_op
func_add
css+cdd
func_subtract
css-cdd
func_reverse_subtract
cdd -css
**至
用ioclt 來設定路由
include include include include include include include int main char args memset route,0,sizeof route addr struct sockaddr in route.rt gateway addr s...
使用 em 來設定字型大小
如果要避免在 internet explorer 中無法調整文字的問題,許多開發者使用 em 單位代替 pixels。w3c 推薦使用 em 尺寸單位。1em 等於當前的字型尺寸。如果乙個元素的 font size 為 16 畫素,那麼對於該元素,1em 就等於 16 畫素。在設定字型大小時,em ...
通過Js來設定頁面樣式
我們可以在編輯html原始碼的時候將css樣式寫死到.css檔案或者html元素的style屬性中,但又時候可能會需要動態地來修改某個元素的樣式。我這裡介紹兩種方式 修改html元素的style屬性 動態載入link節點。在使用各種框架之前,必須要知道原生的js到底是怎麼寫的。這裡最直接的辦法就是 ...