簡體   English   中英

如何在DirectX 9中盡快使用D3DXSprite繪制D3DXFont?

[英]How to draw D3DXFont using D3DXSprite in DirectX 9 as fast as possible?

我有很多文字要畫。 如果我用第一個參數為NULL調用D3DXFont :: DrawText,則性能會很差。

我聽說將D3DXFont與D3DXSprites結合使用會使事情變得更快。

我的應用程序需要如何繪制字符串? 它使用偽陰影使每個字符串不正確。 這意味着我將每個字符串以黑色繪制4次:x + 1,y + 1 x-1,y + 1 x-1,y-1 x + 1,y-1和1次以實際顏色繪制。 它使始終可讀的字符串看起來非常漂亮。 我什至切換到像素字體以加快渲染速度。

現在用陰影(ShadowString)調用該字符串。

我每畫一幀都會在屏幕上繪制256個ShadowString(最壞的情況)。

我想知道如何使用子畫面(或任何其他技術)來盡可能快地繪制這些字符串)。 現在我的應用程序速度為30 FPS。 但我的目標是120分鍾。 而問題僅在於文本繪圖。

當然,您必須在進行任何優化之前就對應用程序進行概要分析,但是D3DXFont是, D3DXFont / D3DXSprites和“ fast”是互斥的概念。 如果它們不合適,那就不要使用它們。 使用第三方庫或制作自己的精靈/字體渲染器。

最近,我在這里回答了如何操作: 在DirectX 9中如何在沒有D3DX9的情況下繪制線條和字體? 此外,Google用於“精靈字體”,“精靈批處理”,“紋理圖集”,“ TTF渲染”。 如果您熟悉API(尤其是頂點緩沖區和紋理),這並不是很難,而且Web上有很多示例。 不要猶豫,尋找D3D11或OpenGL示例,原理是相同的。

暫無
暫無

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

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