剛看完nvida最新的Fermi架構(gòu)白皮書 除了可編程渲染管線 新的改進貌似主要在并行運算上
re: 翻譯 D3DPOOL FancyBit 2009-08-14 00:54
俺翻譯的d3dUsage 和這個關(guān)聯(lián)滿多的
re: 翻譯 D3DPOOL FancyBit 2009-08-14 00:53
資源的使用的方式
D3DUSAGE_RENDERTARGET 此紋理或表面作為一個渲染目標被創(chuàng)建,只能分配在D3DPOOL_DEFAULT的顯卡內(nèi)存中
D3DUSAGE_AUTOGENMIPMAP 資源會自動生成多精度(多層次細節(jié))紋理(mipmap)(Direct3D 9). 不支持volume textures 和深度表面/深度紋理(凹凸貼圖). 這個usage 不支持系統(tǒng)內(nèi)存中的資源(用D3DPOOL_SYSTEMMEM參數(shù)創(chuàng)建的資源).
D3DUSAGE_DEPTHSTENCIL 此資源將會是一個深度緩沖,只能用D3DPOOL_DEFAULT分配.
D3DUSAGE_DMAP The resource will be a displacement map. ???
D3DUSAGE_DONOTCLIP 頂點緩沖區(qū)內(nèi)容不需要裁減. 當被渲染的緩沖區(qū)設(shè)置此位時,D3DRS_CLIPPING 渲染器狀態(tài)必須設(shè)置為false.
D3DUSAGE_DYNAMIC 設(shè)置此位表示頂點緩沖需要動態(tài)的內(nèi)存使用。這對驅(qū)動程序很有用因為它使得驅(qū)動程序可以決定把緩沖區(qū)放在哪里。一般的,靜態(tài)頂端緩沖放置在顯存兒動態(tài)緩沖防止在AGP內(nèi)存中。注意如果你沒有指定該標志位,那么頂點緩沖默認就是靜態(tài)的。
D3DUSAGE_DYNAMIC會被強制設(shè)置,當D3DLOCK_DISCARD 和 D3DLOCK_NOOVERWRITE 鎖標志一起使用. 因此, D3DLOCK_DISCARD and D3DLOCK_NOOVERWRITE 只對使用 D3DUSAGE_DYNAMIC創(chuàng)建的頂點緩沖有用.更多參見Managing Resources (Direct3D 9).
更多關(guān)于動態(tài)頂點緩沖的信息,參見Performance Optimizations (Direct3D 9).
D3DUSAGE_DYNAMIC 和 D3DPOOL_MANAGED不兼容. See D3DPOOL.
紋理也可以使用D3DUSAGE_DYNAMIC.當然, 托管的紋理不能使用 D3DUSAGE_DYNAMIC. 關(guān)于動態(tài)紋理的信息,參見 Using Dynamic Textures.
D3DUSAGE_WRITEONLY
用于頂點緩沖和索引緩沖
通知系統(tǒng)程序只想頂點和索引緩沖中寫入數(shù)據(jù)。使用這個標記可以讓驅(qū)動程序選擇讓寫入和渲染操作效率最佳的內(nèi)存分配方式。啟用此特性后嘗試從內(nèi)存緩沖中讀取數(shù)據(jù)的操作會失敗。只對使用D3DPOOL_DEFAULT分配在顯存中的數(shù)據(jù)有效。
D3DUSAGE_RTPATCHES Set to indicate that the vertex buffer is to be used for drawing high-order primitives. ???
D3DUSAGE_NONSECURE 允許創(chuàng)建的表面被另一個程序用一個無安全性的共享句柄打開,只在D3D9EX使用
D3DUSAGE_TEXTAPI D3D9EX專用 略
用于:
IDirect3DDevice9::CreateCubeTexture
IDirect3DDevice9::CreateDepthStencilSurface
IDirect3DDevice9::CreateIndexBuffer
IDirect3DDevice9::CreateOffscreenPlainSurface
IDirect3DDevice9::CreateRenderTarget
IDirect3DDevice9::CreateTexture
IDirect3DDevice9::CreateVertexBuffer
IDirect3DDevice9::CreateVolumeTexture
D3DXCreatexxx texturing functions