2017-07-04 61 views
4

我正在寫一個老派低分辨率圖形的遊戲。我使用SDL2_TTF來呈現單色文字,但似乎沒有正確暗示。我用TTF_SetFontHinting(font, TTF_HINTING_MONO)設置提示,並使用所有三種渲染函數(TTF_RenderText_Solid,TTF_RenderText_ShadedTTF_RenderText_Blended)渲染文本,但我對結果不滿意。這是我從TTF_RenderText_Solid得到的輸出。其他函數輸出反鋸齒文本。如何使用SDL2_TTF渲染高質量的單色文本?

Actual output

這裏就是我想要的輸出。這是Andale Mono 12pt(與上述相同),由Mac Terminal模擬器渲染並放大4倍。

Expected output

輸出的質量確實重要,因爲當顯示給玩家的文字被放大4倍。他們爲什麼不同?我認爲FreeType是事實上的字體渲染庫,所以SDL2_TTF和終端都會使用它。

我只是簡單地使用SDL2_TTF庫嗎?

+0

其他暗示模式是什麼樣的? – genpfault

+0

更改提示模式似乎對輸出沒有影響 – Kerndog73

+0

您的FreeType是如何構建的?有/沒有(最近未獲得)專利的Truetype字節碼解釋器? – genpfault

回答

1

我不想與SDL2_TTF庫混淆,以達到我期待的效果,所以我決定找到看起來更好的不同字體。我發現如果我選擇font that looks pixelated並將其呈現在正確的點大小,一切看起來都很好。

The effect I was looking for

+1

當你想渲染像素化文本時,總是使用真正的「像素字體」。這些字體被設計爲以特定點大小呈現以完全適合屏幕的本地像素。你只能渲染這些1x 2x 3x等,否則他們看起來不對。如果您特別需要使用SDL的像素字體,從位圖字體渲染矩形幾乎更容易。順便說一句,你可以在矮人堡壘網站上找到一些很好的免費的:http://dwarffortresswiki.org/Tileset_repository。 – null