在direct3d 中,霧化是通過將景物顏色與霧的顏色,以隨物體到觀察點距離增加而衰減的混合因子混合而實現的。
兩種霧化方法:頂點霧化和畫素霧化。
三種霧化公式:線性霧化,指數霧化,指數平方霧化。
兩種霧化處理:基於深度的霧化處理和基於範圍的霧化處理。基於深度是指兩個點之間的深度(z)差值,基於範圍則是兩點間的直線距離。direct3d預設的是基於深度的霧化。可設定基於範圍的霧化,但要先檢測裝置是否支援:
g_pd3ddevice->getdevicecaps(&staps);
if ( stcaps.rastercaps &d3dpastercaps_fogrange )
return true;
direct3d預設禁用霧化效果,可以啟用霧化:g_pd3ddevice->setrendstate( d3drs_fogenable, true );
設定霧的顏色 g_pd3ddevice->setrendstate( d3drs_fogcolor, 0xffffffff); //白色
根據按鍵訊息進行多種霧化效果的切換
if (ginputsystem->keydown(dik_v))
if (ginputsystem->keydown(dik_m))
if (ginputsystem->keydown(dik_n))
其中設定霧化混合因子計算公式時,setrenderstate的第乙個引數可以是:
d3drs_fogtablemode(畫素霧化)或 d3drs_fogvertexmode(頂點霧化)
direct 3d 渲染紅藍立體效果
自從阿凡達賺了大錢以後,遍地都開始追捧3d電影了。其實阿凡達上映前半年我就已經給過網龍在遊戲中實現3d視覺的建議,只不過沒有引起重視。雖然紅藍立體在視覺效果上是有一定的缺憾的,但是在目前的硬體裝置條件下,這在遊戲中實現3d視覺的各種方案中,紅藍分光成本是最低廉的。前兩天整理舊硬碟上的檔案,偶然發現當...
Direct3D入門 一 配置Direct3D環境
b url 先鋒隊 北京貝武易科技公司 b 我們要編寫directx direct3d 程式,需要先安裝兩個檔案 directx sdk directx開發包 這個開發包大,大概500兆 url 執行環境 這個檔案小,大概30 40兆 url 很多初學者會混淆了這個兩個directx有什麼區別。乙個...
Direct3D 多重取樣抗鋸齒
多重取樣抗鋸齒 multisampling atialiasing 針對光柵化顯示器抗鋸齒的方法有多種,在d3d中採用的多重取樣方法。即在每個畫素點內部,設定多個取樣點,繪製多邊形邊緣時,針對每個取樣點判斷是否被多邊形覆蓋,最終的顏色值從取樣點中取均值,以對多邊形的邊緣進行 模糊化 從而減輕鋸齒效果...