Direct3D 多重取樣抗鋸齒

2021-08-21 22:32:10 字數 1087 閱讀 8220

多重取樣抗鋸齒(multisampling atialiasing)

針對光柵化顯示器抗鋸齒的方法有多種,在d3d中採用的多重取樣方法。即在每個畫素點內部,設定多個取樣點,繪製多邊形邊緣時,針對每個取樣點判斷是否被多邊形覆蓋,最終的顏色值從取樣點中取均值,以對多邊形的邊緣進行「模糊化",從而減輕鋸齒效果。如下圖所示,這是乙個4重取樣的例子,該畫素最終的顏色值是多邊形本身顏色值的3/4:

支援d3d11的硬體全部支援4重取樣,因此我們在後面的程式中將普遍使用4個取樣點。在d3d11中通過結構dxgi_sample_desc來設定多重取樣,其定義如下:

typedef struct dxgi_sample_desc  dxgi_sample_desc, *lpdxgi_sample_desc;
count為我們設定的取樣的個數,quality為機器支援的不同的等級,初始化過程中我們會使用     id3d11device::checkmultisamplequalitylevels 對quality進行檢測。

/**id3d11device::checkmultisamplequalitylevels

* 獲取多重取樣中可用質量等級

* @param format 貼圖的格式

* @param samplecount 多重取樣的樣本數(比如用四重取樣,則該引數填4)

* @param pnumqualitylevels 介面卡支援的質量等級

*/hresult checkmultisamplequalitylevels(

dxgi_format format,

uint samplecount,

uint *pnumqualitylevels

);

因為支援d3d11的硬體全部支援4重取樣,所以返回的多重取樣質量等級一定大於

Direct3D入門 一 配置Direct3D環境

b url 先鋒隊 北京貝武易科技公司 b 我們要編寫directx direct3d 程式,需要先安裝兩個檔案 directx sdk directx開發包 這個開發包大,大概500兆 url 執行環境 這個檔案小,大概30 40兆 url 很多初學者會混淆了這個兩個directx有什麼區別。乙個...

u3d抗鋸齒配置

1 用顯示卡的硬體抗鋸齒功能 有些整合顯示卡不支援 edit project settings quality anti aliasing 選擇x4或者x8 2 用unity自帶的抗鋸齒軟演算法 assets import package effects 選擇需要新增抗鋸齒的camera,add c...

Direct3D中的霧化效果

在direct3d 中,霧化是通過將景物顏色與霧的顏色,以隨物體到觀察點距離增加而衰減的混合因子混合而實現的。兩種霧化方法 頂點霧化和畫素霧化。三種霧化公式 線性霧化,指數霧化,指數平方霧化。兩種霧化處理 基於深度的霧化處理和基於範圍的霧化處理。基於深度是指兩個點之間的深度 z 差值,基於範圍則是兩...