D3DX 中的線條繪圖支援 (Direct3D 9)
D3DX 是一個提供輔助功能的工具庫。 它是 Direct3D 元件上方的圖層。
D3DX 支援單像素寬的反鋸齒線。 不再支援線條模式。
線條繪圖庫會使用紋理三角形模擬線條,並假設下列事項:
- 硬體可透過 Direct3D 9 介面取得。
- 至少有一個紋理階段可供使用。
- 使用 64x64 紋理。
- 下列模式可供使用:
- 雙線性篩選
- 固定位址模式
- 環繞位址模式
- Alpha op 調變
- Alpha 混合(SRCBLEND = SRC_ALPHA,DESTBLEND = INV_SRC_ALPHA)
- 若無法進行 Alpha 混合,則進行 Alpha 測試,結果品質較低。
針對多重取樣的渲染目標中的反鋸齒線轉譯,請使用 ID3DXLine 來產生紋理多邊形。 由反鋸齒線條點陣化所產生的像素涵蓋範圍值,會調整圖元著色器所計算的圖元 Alpha 值。 若要繪製反鋸齒線,應用程式必須啟用 Alpha 混合,然後必須將 D3DRS_ANTIALIASEDLINEENABLE 轉譯狀態設定為 TRUE。
功能描述
函式庫支援使用下列線條特徵繪製彩色線條帶,每一個線條特徵是彼此獨立的。
- 線條寬度
- 重複性線條圖案(線條圖樣計數器在每次呼叫 ID3DXLine::Draw 或 ID3DXLine::DrawTransform 時會重設。它在每個線段區段中不會重設。)
- 反鋸齒
- OpenGL 樣式線條
注意
不支援拼接切割。
函式庫僅在下列情況下使用裝置中的原生硬體線條繪圖支援(如果可用的話)
- 線條寬度為 1。
- 未啟用線條模式。
某些硬體支援單像素寬的抗鋸齒線,因此如果可以,該庫會使用此技術。 D3DCAPS9 結構的LineCaps成員會列舉線條繪製基本類型的硬體功能。
使用軟體線條繪圖時,每一行都會展開成矩形,並將四個頂點向下傳送至驅動程式。
每一條線段都會使用兩個三角形繪製。 原始圖形的寬度為指定的寬度加上 1.0,這可能會導致額外的像素列或行。 當線條變寬時,紋理中的反鋸齒漸層會變得更粗,中間會複製更多完全不透明的像素。 漸層是以紋理的 v 方向編碼,通常會沿著 u 方向重覆呈現。 v 的紋理尋址模式為夾緊。
清單中的每一行區段都可以視為從上一個終點開始的個別行。
沿著與原始線條長度平行的邊緣,反鋸齒品質會隨著線條變寬而下降。 預計當線條寬度超過 32.0 時,這些邊緣會開始出現偽影。
相關主題