SetRenderState 中的引數作用說明

2021-04-26 19:37:17 字數 2187 閱讀 8165

ddrs_zenable 用於控制深度快取的狀態。它的狀態是用乙個列舉型別來表示的:d3dzb_true、d3dzb_false和d3dzb_usew。在d3d中z-buffering 是對z軸上的資訊起作用,所以,如果你需要表示的是2d資訊的話,可以用pd3ddevice->setrenderstate( d3drs_zenable, d3dzb_false ); 關閉z-buffering。比如遊戲中的ui,需要用到一些控制面板之類的dd,這個時候就是需要關閉它的。這個渲染引數的預設值是跟 d3dpresent_parameters 中的enableautodepthstencil的值是相關聯的;如果這個值是true,那麼渲染狀態就是 d3dzb_true,反之為d3dzb_false。

d3drs_fillmode 從名字看的話,這個渲染模式是用來;控制填充模式的,它的值也是乙個列舉型別 d3dfill_point、d3dfill_wireframe和d3dfill_solid。預設值是d3dfill_solid,不過這個值的作用現在還沒有看出來。:p

d3drs_shademode 這個引數控制的是陰影模式,預設值是 d3dshade_gourand,翻譯過來一般是叫做 高絡德渲染。另外兩個 d3dshade_flat 和 d3dshade_phong。高絡德陰影模式是對乙個三角形的3個頂點的顏色進行線性叉值演算法得到的。平面陰影模式只利用三角形的第乙個頂點進行描述。很顯然用d3dshade_gourand渲染方式可以得到更加逼真的陰影效果。

d3drs_zwriteenable 預設值true表示可以寫深度快取,這個引數可以保護深度快取不被系統修改。深度比對規則是依照d3drs_zfunc引數的,如果值為false的話,假設深度快取被修改,但是這個值卻不能寫進快取。

d3drs_alphatestenable 這個引數將允許每個象素點都做alpha測試;如果測試通過的話,這個象素就會被幀快取處理,否則的話,它會被所有幀快取忽略掉。這個測試其實就是通過d3drs_alphafunc引數提供的對比函式,比較輸入的alpha值和參照值之間的差別,這個參照值是由d3drs_alpharef引數確定的,預設值是false。

d3drs_lastpixel 預設值是true,繪製一條線的最後乙個象素,如果是false,就是不畫。這個引數的主要作用是在繪製線框的時候體現出來的,假設我們要畫乙個矩形邊框,有時候,矩形的兩條線段的端點會出現重疊的現象,影響效果,這個時候,你可以把這個引數設為false;但是要注意的是,除非你有明確的目的,一般不要輕易修改這個引數的值,它可能導致線框的結合處出現斷開的現象。

d3drs_srcblend 和 d3drs_destblend 是用來設定支援的混合模式。

d3drs_cullmode 這個引數用來指定三角形背面的剔除方式。它的值是乙個d3dcull型別的列舉型別。d3dcull_none,不要剔除背面;d3dcull_cw,按照順時針的方向的頂點剔除背面;d3dcull_ccw,按照逆時針方向剔除背面。而最後乙個就是預設值,還沒弄清楚區別在什麼地方。

d3drs_zfunc 這個引數在前面有提到,與d3drs_zwrittenable有些關聯。它的值是 d3dcmpfunc 列舉型別的值;預設值是 d3dcmp_lessequal。它允許程式根據乙個象素距離攝像機的長度來接受或者拒絕它。這個象素的深度值會與depth-buffer的值進行比較,如果通過了這個測試,這個象素就會被寫。實際上,如果象素沒有通過測試的話,軟體光柵處理和很多硬體加速都會更加快一些,因為不要渲染象素的話,就不需要對紋理進行過濾和調節。

d3drs_alpharef 設定象素alpha測試的參考值,它的值是乙個dword型的低8位,區間是從0x00000000到0x000000ff。預設值是0。

d3drs_alphafunc 這個引數允許程式根據象素的alpha值來決定是否接受。類似d3drs_zfunc。

d3drs_ditherenable 使程式允許抖動,預設是false。

d3drs_alphablendenable 允許使用alpha混合,預設是false。而混合型別是由d3drs_srcblend 和 d3drs_destblend決定的。

d3drs_fogenable 允許煙霧混合,也就是常說的煙霧效果。預設false。

d3drs_specularenable 開啟鏡面反射效果,預設是false。

d3drs_fogcolor 設定煙霧顏色。

d3drs_fogtablemode 這個煙霧公式被用來計算象煙霧,設定煙霧模式,預設值是d3dfog_none,另外還有d3dfog_exp,d3dfog_exp2,d3dfog_linear。

linux中 中括號 中的判斷引數

源自 http www.diybl.com course 6 system linux linuxjs 20081117 151774.html b file 若檔案存在且是乙個塊特殊檔案,則為真 c file 若檔案存在且是乙個字元特殊檔案,則為真 d file 若檔案存在且是乙個目錄,則為真 e...

從HIVE中中查詢

從hive資料庫查詢文件 by ymd 拼接sql語句 string sql select from doc file where contains name wildcard 拼接名稱查詢語句 if stringutils.isnoneempty unstructuredbean.getname ...

Spring中classpath中萬用字元號的使用

說明 無萬用字元,必須完全匹配 classpath user base beans.xml 說明 匹配零個或多個字串 只針對名稱,不匹配目錄分隔符等 例如 user a base beans.xml user b base beans.xml 但是不匹配 user base beans.xml cl...