共用方式為


資源 (Direct3D 10)

資源是記憶體中可供 Direct3D 管線存取的區域。 為了讓管線有效率地存取記憶體,提供給管線的數據(例如輸入幾何、著色器資源、紋理等)必須儲存在資源中。 有兩種類型的資源,所有 Direct3D 資源都衍生自此類型:緩衝區或紋理。 每個管線階段最多可以有128個資源。

每個應用程式通常會建立許多資源。 資源的範例包括:頂點緩衝區、索引緩衝區、常數緩衝區、紋理和著色器資源。 有數個選項可決定如何使用資源。 您可以建立強型別或類型較少的資源;您可以控制資源是否同時具有讀取和寫入存取權;您可以只讓 CPU、GPU 或兩者存取資源。 當然,會有速度與功能取捨 - 您允許資源擁有的功能越多,您應該預期的效能就越少。

由於應用程式通常會使用許多紋理,Direct3D 也會介紹紋理陣列的概念,以簡化紋理管理。 紋理陣列包含一或多個紋理(所有相同的類型和維度),可從應用程式內或著色器編製索引。 紋理陣列可讓您使用具有多個索引的單一介面來存取許多紋理。 您可以建立盡可能多的紋理陣列,以視需要管理不同的紋理類型。

建立應用程式將使用的資源之後,您會將每個資源連線或系結至將使用它們的管線階段。 這是藉由呼叫系結 API 來完成,其會取得資源的指標。 由於多個管線階段可能需要存取相同的資源,因此 Direct3D 10 引進了資源檢視的概念。 檢視會識別可存取的資源部分。 您可以建立 m 檢視或資源,並將它們系結至 n 個管線階段,假設您遵循共用資源的系結規則(如果您未這麼做,運行時間會在編譯階段產生錯誤)。

資源檢視提供一般模型來存取資源(紋理、緩衝區等)。 因為您可以使用檢視來告訴運行時間要存取哪些數據,以及如何存取它,所以資源檢視可讓您建立類型較少的資源。 也就是說,您可以在編譯時期建立指定大小的資源,然後在資源系結至管線時宣告資源內的數據類型。 檢視會公開許多使用資源的新功能,例如能夠讀取著色器中的深度/樣板表面、在單一傳遞中產生動態 Cubemap,以及同時轉譯至磁碟區的多個配量。

若要深入瞭解基本資源類型、紋理數位列,以及如何建立和使用資源,請參閱下列其他主題:

Direct3D 10 程序設計指南