簡體   English   中英

如何使用DirectX 9渲染2D疊加層

[英]How to use render a 2D overlay with DirectX 9

因此,我有一個正在使用DirectX 9在C ++中進行開發的游戲。它是3D的,但是我想要一個2D的疊加層。 我聽說我可以使用D3DXMatrixOrthoLH,但是我對如何使用它感到非常困惑。 我對OpenGL更熟悉,可以在其中通過啟動視圖在3D和2D之間切換。 一個使用DirectX 9做到這一點的例子將是很棒的!

非常感謝!

您可以使用D3DX9庫中的ID3DXSprite類為HUD繪制2D紋理。

您可以使用身份變換並使用深度測試未完成的歸一化坐標(-1,-1至1,1,1)進行繪制,但是大多數人發現放置元素不太直觀。 取而代之的是,他們創建了一個簡單的正交投影變換,將歸一化的坐標映射到更自然的東西,例如像素(從0,0到width,height)。 您可以使用D3DXMatrixOrthoOffCenterLH如果您使用左手視圖坐標或D3DXMatrixOrthoOffCenterRH如果您正在使用右手視圖坐標(不用於2D繪圖重要,但它是減少混亂,使之與你的3D繪圖一致)。

為什么要使用已經使用了十年的傳統DirectX 9? 如果使用的是Direct3D 11,則可以使用DirectX工具包SpriteBatch類繪制HUD。 不推薦使用DirectX SDK,不推薦使用D3DX庫,不推薦使用D3DXMath,並且Windows 8或更高版本不支持DirectX 9的調試。 參見MSDN

感謝所有幫助人員。 我決定從頭開始Dir​​ectX,然后回到我更熟悉的舊OpenGL。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM