[英]How to draw line and font without D3DX9 in DirectX 9?
我看到Microsoft不推薦D3DX9,Windows SDK也不附帶D3DX9。 我想采用。
我缺少線條畫工具。
如何在“新” DirectX9中替換ID3DXLine和ID3DXFont?
通常,線條和字體是精靈。 ID3DXLine
和ID3DXFont
在ID3DXFont
使用ID3DXSprite
接口。 (當然,還有其他選擇,但最常用的是精靈方法)
因此,首先,您將需要第三者或您自己的精靈渲染器。 通常,“卧室”精靈引擎的開發包括以下階段:
您可以選擇停止的階段。 稍后,您可以返回並繼續。
然后,對於直線,您只需繪制一個細的矩形精靈即可。 用戶將輸入諸如線條的開始,結束和粗細之類的值,並且您將需要做一些簡單的數學運算來計算此子畫面的位置和旋轉。 Sprite可以僅是彩色的,也可以具有紋理的:對於虛線,帶狀線,帶有粉紅色蓬松小貓的線等。然后,您可以將曲線實現為一組直線。 您可以選擇將精靈添加到行尾,例如箭頭。
對於文本,事情可能會非常復雜(我將僅在此介紹精靈字體):
要將字符從字體文件(例如.ttf
轉換為位圖(圖像),可以使用庫。 我知道FreeType是最好的開源。 您自己解析字體可能會很復雜。
然后,您可以將所有內容混合在一起,並用文本紋理繪制線條。 或繪制線條框包圍的文本。 或在其上方帶有文字的精靈。 或GUI。 所有這些東西將是精靈。
如果您仍在使用DirectX 9,是否真的需要打擾Windows SDK,刪除D3DX內容? 如果適合您,也許您可以繼續使用Direct SDK和D3DX進行開發? 請注意,如果由於某種原因決定遷移到DX11,則可以使用DirectXTK ,它可以部分替代D3DX11。 不過,您自己的解決方案或第三方解決方案可能會更靈活並且更適合您。 精靈在3D圖形中還有許多其他應用,例如廣告牌,GUI,粒子等。而且一如既往,重新發明輪子是一種非常有趣和積極的體驗;)
希望能幫助到你。 編碼愉快!
為什么不嘗試使用DirectX 11?
幾乎所有平台都支持Oterhwise OpenGL。
我建議嘗試使用SDL,它具有您可以想象的大多數2D東西的輔助方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.