HLSL 的程式設計指南
資料會輸入圖形管線做為基本類型資料流程,並由著色器階段處理。 實際的著色器階段取決於 Direct3D 的版本,但當然包括頂點、圖元和幾何階段。 其他階段包括鑲嵌的殼層和網域著色器,以及計算著色器。 這些階段使用高階網底語言 (HLSL) 完全可程式化。
您可以在作者時間或執行時間編譯 HLSL 著色器,並在執行時間設定為適當的管線階段。 Direct3D 9 著色 器可以使用著色器模型 1、 著色器模型 2 和 著色器模型 3來設計;Direct3D 10 著色器只能在 著色器模型 4上設計。 Direct3D 11 著色器可以在 著色器模型 5上設計。 Direct3D 11.3 和 Direct3D 12 可以在 著色器模型 5.1上設計,而 Direct3D 12 也可以在 著色器模型 6上設計。
本節內容
主題 | 描述 |
---|---|
使用著色器連結 | 我們會示範如何建立先行編譯的 HLSL 函式、將它們封裝到程式庫,並在執行時間將它們連結至完整的著色器。 |
在 Direct3D 9 撰寫 HLSL 著色器 | |
在 Direct3D 9 中使用著色器 | |
在 Direct3D 10 中使用著色器 | |
優化 HLSL 著色器 | |
在 Visual Studio 中偵錯著色器 | 偵錯著色器的最新工具現在隨附為 Microsoft Visual Studio 中的功能,稱為 Visual Studio 圖形偵錯工具。 |
編譯著色器 | 現在讓我們看看編譯著色器程式碼的各種方式,以及著色器程式碼副檔名的慣例。 |
指定編譯器目標 | 在這裡,我們會列出 D3DCompile* 函式和 HLSL 編譯器支援的各種設定檔目標。 |
In-Place影像編輯的解壓縮和封裝DXGI_FORMAT | |
使用 HLSL 最小有效位數 | 從Windows 8開始,圖形驅動程式可以使用大於或等於其指定位精確度的任何有效位數,實作最小有效位數HLSL 純量資料類型。 |
HLSL 著色器模型 5 | |
HLSL 著色器模型 5.1 | 本節說明著色器模型 5.1 的功能,因為它們實際上適用于 D3D12 和 D3D11.3。 所有 DirectX 12 硬體都支援著色器模型 5.1。 |
HLSL 著色器模型 6.0 | 描述新增至 HLSL 著色器模型 6.0 的波浪作業內建函式。 |
HLSL 著色器模型 6.4 | 描述新增至 HLSL 著色器模型 6.4 的機器學習內建函式。 |