ogre字型生成 中文顯示

2021-05-21 18:37:36 字數 1141 閱讀 9487

好久沒寫部落格了,今天寫一下如何在ogre中使用自己的字型.

在ogre中主要有兩種方式生成字型:

一種是利用truetype字型生成字型紋理, 在材質中字型使用的資源往往以.ttf的形式存在

另一種是用自己畫的生成字型. 在材質中只要提供一張(紋理)即可.

下面分別介紹一下這兩種字型的實現方式.

1. 利用truetype字型生成字型紋理

這種方式比較輕鬆, 開啟 ogresdk(我的版本是1.6.4)的media/fonts資料夾 會看到乙個sample.fontdef檔案

和solo5.ttf檔案. 開啟sample.fontdef 看到如下定義:

starwars

上面就是ogresdk為我們定義了starwars這樣的字型

此外還有antialias_colour, code_points nn-nn [nn-nn] ..引數 可以參考官方資料

就這樣,乙個新的字型就定義完成了,在ogre中使用fontmanager::getsingleton().getbyname(「starwars」);

就能獲取這個字型了。

注意: 這樣設定的字型不能顯示中文。如果要顯示中文,首先要確定你的字型(.ttf)能支援中文. 然後在字型定義中加上

code_points 33-166 19968-40869。這個表示字元的編碼範圍

2. 利用現有的紋理生成字型

在正常情況下,很少自己去作一種能生成所有中文字的字型。因為要達到這樣的目的的話你的中必須包涵所有的中文字型。

以及在sample.fontdef要索引所有的文字對應的紋理的位置(下面會提到如何索引);為了簡單起見,這裡以只能生成0-9這

幾個字元的字型作為介紹.

假如現在有張0-9的number.tga,在紋理座標中0對應的紋理區間(u,v座標)是(0, 0), (0.1 1) 1對應的紋理區間(u,v座標)是       (0.1, 0), (0.2, 1)  2對應的紋理區間(u,v座標)是(0, 0.2), (0.3 1)....以此類推。

那麼要生成乙個新的字型 我們可以在sample.fontdef中如下定義:

numberfont

下面主要介紹引數的意義:

type   告訴ogre使用現有的紋理生成字型

source 要使用的紋理

Ogre字型code points生成工具

今天在做ogre中文顯示時,遇到了ogre字型code points生成問題,下面來看一下我使用的黑體定義。simhei 字型code points就是你要使用的unicode字元編碼,例如 當 這個字的編碼用16進製表示是5f53,轉換成10進製就是24403,在ogre字型定義中使用的是10進製...

ITEXT PDF彩色字型顯示 支援中文

利用itext自動生成pdf的過程中,一般情況下字型顏色都是黑色的,但是遇到一些小錯誤需要報出在pdf上,用彩色字型能達到效果。需匯入的jar包 itext pdfa 5.5.6.jar itext xtra 5.5.6.jar itext 5.5.6.jar itext asian.jar 用彩色...

Wine的中文顯示與字型設定

字型鏈結 regedit4 hkey local machine software microsoft windows nt currentversion fontlink systemlink lucida sans unicode wqy microhei.ttc microsoft sans ...