紋理檢視 (Direct3D 10)
在 Direct3D 10 中,紋理資源會以檢視存取,這是記憶體中資源硬體解譯的機制。 檢視可讓特定管線階段在應用程式所需的表示法中,只存取 所需的 子資源。
檢視支援無類型資源的概念。 無類型資源是使用特定大小建立但不是特定數據類型的資源。 數據系結至管線時會動態解譯。
下圖顯示藉由為其建立著色器資源檢視,以6個紋理系結2D紋理陣組作為著色器資源的範例。 然後,資源會以紋理陣列的形式尋址。 (注意:子資源無法同時系結為管線的輸入和輸出。
使用 2D 紋理陣列做為轉譯目標時,資源可以視為具有 mipmap 層級的 2D 紋理陣列(在此範例中為 6)。
藉由呼叫 CreateRenderTargetView,為轉譯目標建立檢視物件。 然後呼叫 OMSetRenderTargets,將轉譯目標檢視設定為管線。 藉由呼叫 Draw 並使用 RenderTargetArrayIndex 將索引編製到陣列中適當的紋理,以轉譯成轉譯目標。 您可以使用子資源(mipmap 層級、陣列索引組合)系結至任何子資源數位。 因此,您可以系結至第二個Mipmap層級,並只視需要更新這個特定的Mipmap層級,如下圖所示。
Direct3D 9 與 Direct3D 10 之間的差異:
- 在 Direct3D 10 中,您不再將資源直接系結至管線、建立資源的檢視,然後將檢視設定為管線。 這可讓運行時間和驅動程式中的驗證和對應在檢視建立時發生,將系結時間的類型檢查降至最低。
相關主題