多重取樣抗鋸齒(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 差值,基於範圍則是兩...