中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • 【Visual C++】游戲開發五十五 淺墨DirectX教程二十二 水乳交融的美學:alpha混合技術

【Visual C++】游戲開發五十五 淺墨DirectX教程二十二 水乳交融的美學:alpha混合技術

發布時間:2020-06-27 17:34:03 來源:網絡 閱讀:465 作者:poem淺墨 欄目:開發技術



本系列文章由zhmxy555(毛星云)編寫,轉載請注明出處。

作者:毛星云(淺墨)    郵箱: happylifemxy@163.com


在這篇文章里面,我們一起非常詳細地探討了Direct3D中Alpha混合相關的內容。首先是認識了Alpha通道與混合技術,然后結識了融合因子,了解了融合運算方式和融合因子的取法,以及Alpha的三處來源,接著是大家喜聞樂見的極易上手的使用三部曲,最后依舊是詳細注釋的程序源碼的欣賞,程序截圖和每文一語欄目。


放截圖吧,不過為了不毀三觀,我們還是先放原版帶紋理的截圖:

【Visual C++】游戲開發五十五 淺墨DirectX教程二十二 水乳交融的美學:alpha混合技術


對比圖,我們今天為了演示做出來的alpha效果圖:

【Visual C++】游戲開發五十五 淺墨DirectX教程二十二 水乳交融的美學:alpha混合技術


說實話,這樣的人物模型用來做Alpha混合的演示有些兇殘,但是為了更好的掌握游戲編程,我們豁出去了。:)





然后依舊是先和大家聊聊天,

昨天晚上去看了周杰倫摩天輪演唱會南京站,表示現場真是太震撼了。當杰倫唱起那些老歌比如《回到過去》,《晴天》的時候,讓淺墨想起了初中時代的那些無憂無慮的日子,發現時間真的是一去不復返了。

另外就是南京最近天氣忽然轉冷,淺墨一不小心中招感冒了,希望大家一定要注意防寒哈。

然后今天就是雙十一搶購日了,希望大家都能搶到自己心儀的寶貝。

好了,廢話不多說,我們進入正題吧。


一、初識Alpha通道與混合技術

大家應該都知道, Alpha通道是計算機中存儲一張圖片的透明和半透明度信息的通道。它是一個8位的灰度通道,用256級灰度來記錄圖像中的透明度信息,定義透明、不透明和半透明區域,其中黑表示全透明,白表示不透明,灰表示半透明。

而混合,為Blending的英譯,是計算機圖形學中常用的一種技術,即混合像素。我們通常用已經光柵化的像素光柵化同一位置的像素,或者說是在某圖元上混合圖元。這樣說不好理解的話,我們來舉個例子。說白了就是在一張圖元的地盤上又來了另一張圖元,然后他們按照我們指定的某種方式來像“揉面團”一樣揉在一起,進行加工了再在原地顯示出來。

 alpha混合技術對熟悉游戲的朋友們來說應該不會陌生,這種技術在如今的游戲特效里已經被用爛了。且不說3D游戲中它的頻繁登場,就算是2D的游戲中,這種技術也是滿眼皆是。

  alpha混合聽上去很神秘,實際非常簡單,其作用就是要實現一種半透明效果。假設一種不透明東西的顏色是A,另一種透明的東西的顏色是B,那么透過B去看A,看上去的顏色C就是B和A的混合顏色,可以用這個式子來近似,設B物體的透明度為alpha(取值為0-1,0為完全透明,1為完全不透明)

R(C)=alpha*R(B)+(1-alpha)*R(A)

G(C)=alpha*G(B)+(1-alpha)*G(A)

B(C)=alpha*B(B)+(1-alpha)*B(A)

  其中R(x)、G(x)、B(x)分別指顏色x的RGB分量(這里自變量x取的是顏色C)。看起來這個東西這么簡單,可是用它實現的效果確實非常的華麗,應用alpha混合技術,可以實現出最眩目的火光、煙霧、陰影、動態光源等等一切我們可以想象的出來的半透明效果。



二、Direct3D中的融合套路——融合因子


上面我們講到的是一般意義上的混合技術,而在Direct3D中,我們應該按如下的思路來進一步理解。

首先,Direct3D中依然是用Alpha通道來實現多個像素顏色值的融合。每個像素都包含四個分量:Alpha分量、紅色分量、綠色分量和藍色分量(即ARGB四分量)。其中,Alpha分量用于指定像素的透明度,在0~255之間取值,0表示完全透明,255表示完全不透明。另外,根據使用的不同的顏色宏的區別,還可能是在0.0~1.0之間取值。

在Direct3D中,融合這一領域有一個權威,那便是Alpha融合公式。Alpha融合公式如下:

【Visual C++】游戲開發五十五 淺墨DirectX教程二十二 水乳交融的美學:alpha混合技術

其中RGB_src 和RGB_dst分別表示源像素和目標像素的顏色值,為包含四個顏色分量的顏色值。

K_src K_dst分別表示源融合因子和目標融合因子。他們指定了源像素和目標像素的顏色值在融合過程中所占的比例,在[0,1]之間取值。通過原融合因子和目標融合因子,我們能夠以多種方式來修改源像素和目標像素的顏色值,從而獲得我們滿意的最終的融合后的顏色值。稍后會講解融合因子的具體取法,這里我們先把這個融合公式解析完。

在融合公式中,OP表示源和目標的融合運算方式,由D3DBLENDOP枚舉體來指定,需要注意的是它的默認值是源計算結果和目標計算結果相加。而運算符“

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沁源县| 敦煌市| 诸暨市| 皮山县| 潜江市| 琼中| 鹰潭市| 始兴县| 武胜县| 探索| 南宁市| 当阳市| 金门县| 石家庄市| 本溪| 营山县| 黄石市| 湖州市| 通道| 涿州市| 青川县| 满洲里市| 莲花县| 颍上县| 新余市| 勃利县| 隆子县| 本溪市| 奉节县| 富平县| 涟源市| 灵璧县| 翁牛特旗| 台山市| 锡林郭勒盟| 砚山县| 云南省| 噶尔县| 扶风县| 齐齐哈尔市| 红桥区|