Direct3D中的霧化效果

2021-08-25 13:23:20 字數 767 閱讀 5795

在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中採用的多重取樣方法。即在每個畫素點內部,設定多個取樣點,繪製多邊形邊緣時,針對每個取樣點判斷是否被多邊形覆蓋,最終的顏色值從取樣點中取均值,以對多邊形的邊緣進行 模糊化 從而減輕鋸齒效果...