IDirect3DDevice9::CreateIndexBuffer

電子書《精通DirectX.3D圖形與動畫程序設計.王德才.pdf》p53

HRESULT CreateVertexBuffer(
  UINT Length,
  DWORD Usage,
  DWORD FVF,
  D3DPOOL Pool,
  IDirect3DVertexBuffer9** ppVertexBuffer,
  HANDLE* pSharedHandle
);

Length:
    指定緩衝區的大小,以字節爲單位。

Usage:
    指定頂點緩衝區的屬性,可以設置成0:
    D3DUSAGE_DONOTCLIP 禁用裁剪,表示頂點緩衝區的頂點不進行裁剪,當設置改屬性時,渲染狀態D3DRS_CLIPPING必須設置爲FALSE
    D3DUSAGE_DYNMIC    頂點緩衝區使用動態內存(AGP memory)
    D3DUSAGE_NPATCHES 使用頂點緩衝區繪製N-patches曲線
    D3DUSAGE_POINTS    使用頂點緩衝區繪製點
    D3DUSAGE_RTPATCHES 使用頂點緩衝區繪製曲線
    D3DUSAGE_SOFTWAREPROCESSING    當設置該屬性時,表示使用軟件進行頂點計算,否則使用硬件進行頂點計算
    D3DUSAGE_WRITEONLY    只寫屬性,不能進行讀操作,設置該屬性可以提高系統性能
    
FVF:
    頂點緩衝區的頂點可以包含頂點座標、顏色、法線方向、紋理座標等,可以使用靈活頂點格式FVF(Flexible Vertex Format)進行描述
    D3DFVF_DIFFUSE    頂點數據中包含漫反射顏色值
    D3DFVF_NORMAL    頂點數據中包含法線向量,不能和D3DFVF_XYZRHW同時使用、
    D3DFVF_PSIZE    頂點信息執行繪製點的大小
    D3DFVF_SPECULAR    頂點數據中包含鏡面反射顏色值
    D3DFVF_XYZ        頂點數據中包含未經座標變換的頂點座標,不能和D3DFVF_XYZRHW同時使用
    D3DFVF_XYZRHW    頂點數據中包含經過座標變換的頂點座標,不能和D3DFVF_NORMAL或D3DFVF_XYZ同時使用
    D3DFVF_XYZB1...
    D3DFVF_XYZB5    頂點數據中包含用於骨骼動畫的頂點和頂點對骨骼的權重信息
    D3DFVF_XYZW        頂點數據中包含經過座標變換的裁剪的頂點座標,只可用於可編程頂點流水線
    D3DFVF_TEX0...
    D3DFVF_TEX1        頂點數據中包含0~8個紋理座標,用於紋理繪製

Pool:
    指定頂點緩衝區的內存類型。我們採用的是D3DPOOL_DEFAULT,意思是頂點緩衝區儘可能存在顯存中。其他參數詳細請參見SDK文檔。
    D3DPOOL_DEFAULT 頂點緩衝區儘可能存在於顯存中
    D3DPOOL_MANAGED    由Direct3D系統自動調度頂點緩衝區內存類型(位於顯存或計算機系統內存中)
    D3DPOOL_SYSTEMMEM    位於計算機系統內存中
    D3DPOOL_SCRATCH    位於計算機臨時內存中,這種類型的頂點緩衝區不能直接用於渲染操作,只能進行內存加鎖、複製操作
    
ppVertexBuffer:
    自己定義的IDirect3DVertexBuffer9的指針
    
pSharedHandle:
    它是一個保留的參數可以設置爲NULL
發佈了231 篇原創文章 · 獲贊 5 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章