klayge遊戲引擎
在winxp下,即使gpu支援d3d10+,也只能用d3d9的api。但實際上各個廠商都對d3d9做了一些擴充套件,把部分d3d10+的特性暴 露給了d3d9 api。以下是一些特殊的紋理格式,通過fourcc的方式來使用。通過checkdeviceformat可以檢測是否支援該格式,在 createtexture的時候傳入即可。下表的源頭是各廠商的gpu文件,經過unity的aras整理而來:
usage列:ds=depthstencil,rt=rendertarget;resource列:tex=texture,surf=su***ce。越綠表示越多硬體支援。
formatusageresourcedescriptionnvidia geforceati radeonintel
d3dfmt_d16
dstex
sample depth buffer directly as shadow map.
3+hd 2***+
965+
d3dfmt_d24x8
dstex
3+hd 2***+
965+
depth buffer as texture
df16
dstex
read depth buffer as texture.
9500+
g45+
df24
dstex
x1300+
intz
dstex
8+hd 4***+
g45+
rawz
dstex
6 & 7
anti-aliasing related
resz
rtsurf
resolve msaa』d depth stencil su***ce into non-msaa』d depth texture.
hd 4***+
g45+
atoc
0surf
transparency anti-aliasing.
7+ssaa
0surf
7+all ati sm2.0+ hardware
9500+
n/acoverage sampled anti-aliasing
8+texturing
ati1
0tex
ati1n & ati2n texture compression formats.
8+x1300+
g45+
ati2
0tex
6+9500+
g45+
df24
dstex
fetch 4: when sampling 1 channel texture, return four touched texel values. check for df24 support.
x1300+
misc
null
rtsurf
dummy render target su***ce that does not consume video memory.
6+hd 4***+
nvdb
0surf
depth bounds test.
6+r2vb
0surf
render into vertex buffer.
6 & 7
9500+
inst
0surf
geometry instancing on pre-sm3.0 hardware.
9500+
完整的gpu擴充套件功能,請看:
Direct3D9 建立裝置
在d3d9中,建立裝置前要先呼叫direct3dcreate9建立d3d9物件,再呼叫idirect3d9 createdevice建立裝置物件。應用程式可以對硬體查詢來檢測硬體支援的d3d裝置型別。本節講述了列舉顯示介面卡和選擇direct3d裝置等內容。應用程式必須執行一系列任務來選擇適當的d3...
Direct3D 9學習筆記 3 基本頂點繪製
如下頂點資料結構 struct vertex vertex float x,float y,float z float x,y,z static const dword fvf 然後建立乙個頂點快取 device createvertexbuffer 3 sizeof vertex size in ...
Direct3D渲染到紋理 (部分轉)
遊戲中應用的例子 遊戲中開啟觀察人物的介面,ui上顯示的人物就是通過這種方式繪製出來的。熟悉dx的兄弟們都知道什麼叫紋理了,這裡簡單介紹一下,先看看現實生活中的例子吧,其實紋理的例子比比皆是,比如地板,牆面都是紋理。在圖形學中,紋理主要是為了增強場景的真實感,比如你想繪製乙個地面,簡單一點可以直接使...