Share via


適用於 DirectX 遊戲的 2D 圖形

我們討論如何使用 2D 點陣圖圖形和效果,以及如何在您的遊戲中使用這些圖形。

2D 圖形是 3D 圖形的子集,可處理 2D 基本類型或點陣圖。 更一般地說,它們不會像 3D 遊戲那樣使用 z 座標,因為遊戲通常僅限於 x-y 平面。 它們有時會使用 3D 圖形技術來建立其視覺元件,而且通常較容易開發。 如果您不熟悉遊戲,2D 遊戲是一個很好的起點,而 2D 圖形開發可以是您掌握 DirectX 的好地方。

您可以使用 Direct2D 或 Direct3D 或某些組合,在 DirectX 中開發 2D 遊戲圖形。 許多更實用的 2D 遊戲開發類別位於 Direct3D 中,例如 Sprite 類別。 Direct2D 是一組 API,主要以需要支援繪製基本類型的使用者介面和應用程式為目標 (例如圓形、線條和平面多邊形形狀)。 考慮到這一點,它仍然提供一組強大且高效能的類別和方法來建立遊戲圖形,特別是在建立遊戲重疊、介面和抬頭顯示器 (HUD) 時,或建立各種 2D 遊戲,從簡單到相當詳細。 不過,建立 2D 遊戲時最有效的方法是使用來自這兩個程式庫的元素,這就是我們將在本主題中處理 2D 圖形開發的方式。

概念簡介

在現代 3D 圖形和支援它的硬體出現之前,遊戲主要是 2D,而且許多圖形技術涉及移動周圍的記憶體區塊,通常是色彩資料的陣列,它們會以 1:1 的方式轉譯或轉換為螢幕上的像素。

在 DirectX 中,2D 圖形是 3D 管線的一部分。 有更多樣化的螢幕解析度和圖形硬體可用,您的 2D 圖形引擎必須能夠支援它們,而不會大幅改變逼真度。

以下是開始 2D 圖形開發時應該熟悉的一些基本概念。

  • 像素和點陣座標。 像素是點陣顯示器上的單一點,而且有自己的 (x,y) 座標組,表示其在顯示器上的位置。 (「像素」一詞通常可在組成顯示器的實體像素和用來保存像素色彩和 Alpha 值的可定址記憶體元素之間交替使用,然後再傳送至顯示器。點陣會由 API 視為像素元素的矩形格線,其通常會與顯示器的實體像素格線有 1:1 的對應。 點陣座標系統從左上角開始,格線左上角的像素位於 (0,0)。
  • 點陣圖圖形 (有時稱為點陣圖形) 是以像素值的矩形格線表示的圖形元素。 Sprites -- 與點陣無關的計算像素陣列 -- 是一種點陣圖圖形類型,通常用於遊戲中的使用中字元或與背景無關的動畫物件。 Sprite 的各種動畫畫面會以稱為「工作表」或「批次」的點圖集合來表示。背景是較大的點陣圖物件,其解析度或大於螢幕點陣解析度,而且通常可做為遊戲場的背景。
  • 向量圖形是使用幾何基本類型的圖形,例如點、線條、圓形和多邊形來定義 2D 物件。 它們不表示為像素陣列,而是表示為在 2D 空間中定義它們的數學方程式。 它們不一定具有與顯示器像素格線的 1:1 對應,而且必須從轉譯它們的座標系統轉換成顯示器的點陣座標系統。
  • 轉譯是當您取得點或頂點,並在相同的座標系統中計算其新位置時。
  • 調整是當您依指定的比例因素放大或縮小物件時。 使用向量影像時,您可以縮小並放大其元件頂點;使用點陣圖,您可以放大像素元素或縮小像素元素。 使用點陣圖影像時,您會在影像縮小時遺失像素資料,並在影像縮小時放大個別像素。 針對後者,您可以使用像素色彩插補作業,例如雙線性篩選,以平滑放大像素之間的嚴苛色彩界限。
  • 旋轉是當您繞著指定的座標軸或座標軸旋轉物件時。 使用向量影像時,幾何的頂點會與旋轉矩陣相乘,以取得旋轉的頂點;使用點陣圖影像時,可以採用不同的演算法,每個演算法在結果中具有較低或更高的精確度。 如同調整和轉譯,有特別適用於輪替作業的 API。
  • 轉換是在一個座標系統中取得一個點或頂點,並在另一個座標系統中計算其對應的點或頂點時。 這包括轉譯、調整和旋轉,以及其他座標計算作業。
  • 裁剪是當您移除不在顯示可檢視區域內的點陣圖或幾何部分時,或是由具有較高檢視優先順序的物件隱藏。
  • 框架緩衝區是記憶體中的區域,通常位於圖形硬體本身的記憶體中,其中包含您要繪製到螢幕的最終點陣地圖。 交換鏈結是緩衝區的集合,您可以在其中繪製後端緩衝區,並在影像就緒時,將它「交換」到前端並加以顯示。

設計考量

2D 圖形開發是習慣使用 Direct3D 進行開發的絕佳方式,可讓您將更多時間花在遊戲開發的其他重要層面:音訊、控制項和遊戲機制。

一律繪製到後端緩衝區。 直接繪製到框架緩衝區表示,即使繪圖作業尚未完成,也會在收到顯示器訊號時顯示您的影像 (通常是每 1/60 秒一次)!

設計您的圖形引擎以支援良好的解析度選擇,從 1024x600 到 1920x1080 (或更高版本)。 如果您支援液晶顯示器的原生解析度,尤其是 2D 圖形,您的觀眾將會感謝您。

就視覺效果而言,出色的藝術作品將是您最大的資產。 雖然您的點陣圖圖形可能缺乏使用最新著色器模型功能的 3D 逼真視覺效果,但出色的高解析度圖稿通常可以傳達同樣多或更多的風格和個性,而且性能損失要小得多。

參考