關於將遊戲移植到 通用 Windows 平台 (UWP) 的常見問題解答。
Direct3D 11 是 Direct3D 9 的重大升級。 有數個範例轉變,包括虛擬化圖形配接器的個別 API 及其內容,以及裝置資源的新多型層。 您的遊戲仍然可以以基本上相同的方式使用圖形硬體,但您必須瞭解新的 Direct3D 11 API 架構,並更新圖形程式代碼的每個部分,以使用正確的 API 元件。 請參閱 移植概念和考慮。
Direct3D 裝置現在可用來在視訊記憶體中建立資源,而裝置內容則用來設定管線狀態併產生轉譯命令。 如需詳細資訊,請參閱: Direct3D 9 以來最重要的變更為何?
QueryPerformanceCounter 以及 QueryPerformanceFrequency 仍然是實作 UWP app 遊戲定時器的最佳方式。
您應該瞭解定時器和 UWP 應用程式生命週期的細微差別。 暫停/繼續與玩家重新啟動桌面遊戲不同,因為您的遊戲會從上次播放遊戲的時間開始繼續快照集。 如果經過大量時間,例如,幾周后,某些遊戲定時器實作可能無法正常運作。 您可以使用應用程式生命週期事件,在遊戲繼續時重設定時器。
仍在使用 RDTSC 指示的遊戲需要升級。 請參閱 遊戲計時和多核心處理器。
DirectX Tool Kit (DirectXTK) 社群專案提供協助程序類別,以搭配 Direct3D 11 使用。
Chuck Walbourn 標題為 遊戲的雙重使用編碼技術 的文章系列提供在桌面與Microsoft市集程式代碼路徑之間共用程式代碼的指引。
載入映像有兩個 API 路徑:
- 內容管線會將影像轉換成作為 Direct3D 紋理資源的 DDS 檔案。 請參閱 在您的遊戲或應用程式中使用 3D 資產。
- Windows 映射元件可用來載入各種格式的影像,並可用於 Direct2D 位陣陣圖以及 Direct3D 紋理資源。
您也可以從 DirectXTK 或 DirectXTex 使用 DDSTextureLoader 和 WICTextureLoader。
DirectX SDK 包含在 Windows SDK 中。 與 Windows SDK 分開的最新 DirectX SDK 是在 2010 年 6 月。 Direct3D 範例位於程式代碼庫中,以及其餘的 Windows 應用程式範例。
Windows SDK 中絕大多數元件都已包含在支援的操作系統版本中,或沒有 DLL 元件(例如 DirectXMath)。 UWP app 可以使用的所有 Direct3D API 元件都已可供您的遊戲使用;您不需要轉散發它們。
Win32 傳統型應用程式仍然使用 DirectSetup,因此如果您也正在升級遊戲桌面版本,請參閱 適用於遊戲開發人員的 Direct3D 11 部署。
請參閱 Direct3D 11 更新的效果。 效果 11 有助於移除舊版 DirectX SDK 標頭的相依性;其用途是作為移植輔助功能,且只能與傳統型應用程式搭配使用。
是的:
- 讀取 轉換為 Direct3D 9。
- 請確定您的遊戲沒有固定管線的剩餘部分 - 請參閱 已淘汰的功能。
- 然後採用 DirectX 9 移植路徑: 從 D3D 9 移植到 UWP。
DirectX 10.x 和 11 桌面遊戲很容易移植到 UWP。 請參閱 移轉至 Direct3D 11。
用戶選取顯示您 app 的監視。 讓 Windows 藉由呼叫 D3D11CreateDevice,並將第一個參數設定為 nullptr 來提供正確的配接器。 然後取得裝置的IDXGIDevice介面、呼叫 GetAdapter 並使用 DXGI 配接器來建立交換鏈結。
當您建立 Direct3D 裝置時,會啟用反鋸齒功能(多重取樣)。 呼叫 CheckMultisampleQualityLevels 來列舉多重取樣支援,然後在呼叫 CreateSurface 時,在 DXGI_SAMPLE_DESC 結構中設定多重取樣選項。
請流覽 Direct3D 11 中的多線程簡介以開始使用。 如需主要差異的清單,請參閱 Direct3D 版本之間的線程差異。 請注意,延後轉譯會使用裝置 延後的內容 , 而不是立即的內容。
請瀏覽下列主題:
雖然我們沒有 .x 檔案格式的官方取代專案,但許多範例都會使用 SDKMesh 格式。 Visual Studio 也有內容管線,可將數種熱門格式編譯成 CMO 檔案,以從 Visual Studio 3D 入門套件載入程式碼,或使用 DirectXTK 載入。
Microsoft Visual Studio 包含 DirectX 圖形的診斷工具。 請參閱 偵錯 DirectX 圖形。