Share via


轉譯效果 (Direct3D 10)

效果可用來儲存資訊,或使用狀態群組來轉譯。 每個技術都會指定頂點著色器、幾何著色器、圖元著色器、著色器狀態、取樣器和紋理狀態和其他管線狀態。 因此,一旦將狀態組織成效果,您就可以藉由建立和轉譯效果來封裝該狀態所產生的轉譯效果。

準備轉譯效果有幾個步驟。 第一個是編譯,它會檢查 HLSL,例如程式代碼與 HLSL 語言語法和效果架構規則。 您可以使用 API 呼叫從應用程式編譯效果,或使用效果編譯程式公用程式脫機編譯效果。 成功編譯效果之後,請呼叫不同的 API 集合來建立它。

建立效果之後,還有兩個步驟可供使用。 首先,您必須使用一些方法來設定狀態,初始化效果狀態值(效果變數的值)。 對於某些變數,這可以在建立效果時完成一次;每次應用程式呼叫轉譯迴圈時,都必須更新其他人。 設定效果變數之後,您可以套用技術,告知運行時間轉譯效果。 以下會進一步詳細討論這些主題。

自然會有 使用效果的效能考慮 。 如果您未使用效果,這些考慮大致相同。 例如,將狀態變更量降至最低,或組織需要依頻率更新的變數。 這些策略可用來將需要從CPU傳送到 GPU 的數據量降到最低,因而將潛在的同步處理問題降到最低。

效果 (Direct3D 10)