(Direct3D 9) FVF 頂點緩衝區
將 IDirect3DDevice9::CreateVertexBuffer 方法的 FVF 參數設定為非零值,這必須是有效的 FVF 程式碼,表示緩衝區內容是以 FVF 程式碼來描述。 使用 FVF 程式碼建立的頂點緩衝區稱為 FVF 頂點緩衝區。 某些方法或使用 IDirect3DDevice9 需要 FVF 頂點緩衝區,而其他則需要非 FVF 頂點緩衝區。 FVF 頂點緩衝區是 IDirect3DDevice9::P rocessVertices的目的地頂點緩衝區引數。
FVF 頂點緩衝區可以系結至任何資料流程編號的來源資料流。
FVF 頂點緩衝區上存在D3DFVF_XYZRHW元件表示該緩衝區中的頂點已經過處理。 IDirect3DDevice9::P rocessVertices 目的地頂點緩衝區的頂點緩衝區必須經過後續處理。 用於固定函式著色器輸入的頂點緩衝區可以預先處理或後處理。 如果頂點緩衝區經過後處理,則會有效地略過著色器,並將資料直接傳遞至基本裁剪和設定模組。
FVF 頂點緩衝區可以搭配頂點著色器使用。 此外,頂點資料流程可以代表非 FVF 頂點緩衝區所能使用的相同頂點格式。 它們不需要用來從不同的頂點緩衝區輸入資料。 新頂點資料流程的額外彈性可讓需要將其資料分開的應用程式更能運作,但並非必要專案。 如果應用程式可以事先維護交錯的資料,則這是效能提升。 如果應用程式只會在每次轉譯呼叫之前交錯資料,則應該讓 API 或硬體使用多個資料流程來執行此動作。
頂點效能最重要的事項是使用 32 位元組頂點,並維護良好的快取順序。
相關主題