共用方式為


著色器模型與著色器配置檔

DirectX 的高階底紋語言會實作一系列的著色器模型。 使用 HLSL,您可以為 Direct3D 管線建立類似 C 的可程式化著色器。 每個著色器模型會以模型的功能為基礎,再實作更多限制的功能。

著色器模型 1 從 DirectX 8 開始,並包含元件層級和類似 C 的指示。 此模型有許多由早期可程式化著色器硬體所造成的限制。 著色器模型 2 和 3 大幅擴充指令數目,而且常數著色器可以使用。 它們比著色器模型 1 更強大,但仍具有第一個著色器模型的一些現有限制。

從 Windows Vista 開始,著色器模型 4 是完整的重新設計。 它允許無限制的指令和常數(在您的機器的硬體限制內),具有範本化物件,讓紋理取樣更簡潔且更有效率,而且任何著色器模型的限制最少。 不過,它確實需要 Windows 驅動程式模型,此模型僅適用於 Windows Vista(或更新版本)作系統。

著色器配置檔

著色器配置檔是編譯著色器的目標;下表列出每個著色器模型支援的著色器配置檔。

著色器模型 著色器配置檔
著色器模型 1 vs_1_1
著色器模型 2 ps_2_0、ps_2_x、vs_2_0、vs_2_x、ps_4_0_level_9_0、ps_4_0_level_9_1、ps_4_0_level_9_3、vs_4_0_level_9_0、vs_4_0_level_9_1、vs_4_0_level_9_3、lib_4_0_level_9_1、lib_4_0_level_9_3
著色器模型 3 ps_3_0,vs_3_0
著色器模型 4 cs_4_0、gs_4_0、ps_4_0、vs_4_0、cs_4_1、gs_4_1、ps_4_1、vs_4_1、lib_4_0、lib_4_1
著色器模型 5 cs_5_0、ds_5_0、gs_5_0、hs_5_0、ps_5_0、vs_5_0、lib_5_0(雖然gs_4_0、gs_4_1、ps_4_0、ps_4_1、vs_4_0和vs_4_1是在著色器模型 4.0 中引進的,著色器模型 5 為結構化緩衝區和位元組位址緩衝區新增了這些著色器配置檔的支援。
著色器模型 6 cs_6_0、ds_6_0、gs_6_0、hs_6_0、ps_6_0、vs_6_0、lib_6_0

Direct3D 9 與 Direct3D 10 之間的差異:

  • Direct3D 9 引進著色器模型 1、2 和 3。
  • Direct3D 10 引進著色器模型 4。
  • Direct3D 10.1 引進著色器模型 4.1。

效果配置檔

效果配置檔是編譯效果/著色器的目標;下表列出每個 Direct3D 版本所支援的效果配置檔。

Direct3D 9 與 Direct3D 10 之間的差異:

  • Direct3D 9 引進了效果架構配置檔,fx_1_0和fx_2_0。
  • Direct3D 10 引進了效果架構配置檔fx_4_0。
  • Direct3D 10.1 引進了 effect-framework 配置檔fx_4_1。
  • Direct3D 11 引進了效果架構配置檔fx_5_0。

注意

這些舊版效果配置檔已被取代。

HLSL 參考