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