1.一種文字渲染方法,其特征在于,包括:
創(chuàng)建只有alpha通道的紋理;
依次獲取待渲染的字體圖像進(jìn)行預(yù)處理,使得預(yù)處理后的字體圖像只包含alpha通道的數(shù)據(jù);
將預(yù)處理后的字體圖像更新到所述紋理中,并記錄每張字體圖像在所述紋理中的紋理坐標(biāo);
遍歷渲染樹,將所述渲染樹中的文字渲染節(jié)點(diǎn)的坐標(biāo)轉(zhuǎn)換為世界坐標(biāo)系中的坐標(biāo);
根據(jù)每張字體圖像在所述紋理中的紋理坐標(biāo)以及所述文字渲染節(jié)點(diǎn)在所述世界坐標(biāo)系中的坐標(biāo),將各預(yù)處理后的文字圖像渲染到相應(yīng)地文字渲染節(jié)點(diǎn)中。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述依次獲取待渲染的字體圖像進(jìn)行預(yù)處理,使得預(yù)處理后的字體圖像只包含alpha通道的數(shù)據(jù),包括:
若獲取的待渲染的字體圖像中包含兩個(gè)以上字體,則將包含兩個(gè)以上字體的字體圖像拆分了包含單個(gè)字體的字體圖像;
分別對拆分后得到的字體圖像進(jìn)行預(yù)處理。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)每張字體圖像在所述紋理中的紋理坐標(biāo)以及所述文字渲染節(jié)點(diǎn)在所述世界坐標(biāo)系中的坐標(biāo),將各預(yù)處理后的文字圖像渲染到相應(yīng)地文字渲染節(jié)點(diǎn)中,具體為:
根據(jù)每張字體圖像在所述紋理中的紋理坐標(biāo)以及所述文字渲染節(jié)點(diǎn)在所述世界坐標(biāo)系中的坐標(biāo),將各預(yù)處理后的文字圖像批處理渲染到相應(yīng)地文字渲染節(jié)點(diǎn)中。
4.根據(jù)權(quán)利要求1至3任一項(xiàng)所述的方法,其特征在于,所述根據(jù)每張字體圖像在所述紋理中的紋理坐標(biāo)以及所述文字渲染節(jié)點(diǎn)在所述世界坐標(biāo)系中 的坐標(biāo),將各預(yù)處理后的文字圖像渲染到相應(yīng)地文字渲染節(jié)點(diǎn)中,具體為:
根據(jù)每張字體圖像在所述紋理中的紋理坐標(biāo)以及所述文字渲染節(jié)點(diǎn)在所述世界坐標(biāo)系中的坐標(biāo),調(diào)用glDrawElements函數(shù)將各預(yù)處理后的文字圖像渲染到相應(yīng)地文字渲染節(jié)點(diǎn)中。
5.根據(jù)權(quán)利要求1至3任一項(xiàng)所述的方法,其特征在于,所述記錄每張字體圖像在所述紋理中的紋理坐標(biāo),包括:
在字體緩沖表中將每張字體圖像在所述紋理中的紋理坐標(biāo)與相應(yīng)字體圖像的哈希值進(jìn)行關(guān)聯(lián),其中,所述字體緩沖表包含字體、字體圖像以及哈希值這三者的映射關(guān)系信息,所述哈希值基于如下字體屬性中的一項(xiàng)或兩項(xiàng)以上計(jì)算得到:字體的統(tǒng)一碼、字體的顏色、字體的字號、字體的字形。
6.一種文字渲染裝置,其特征在于,包括:
創(chuàng)建單元,用于創(chuàng)建只有alpha通道的紋理;
預(yù)處理單元,用于依次獲取待渲染的字體圖像進(jìn)行預(yù)處理,使得預(yù)處理后的字體圖像只包含alpha通道的數(shù)據(jù);
更新單元,用于將所述預(yù)處理單元預(yù)處理后的字體圖像更新到所述紋理中;
記錄單元,用于記錄每張字體圖像在所述紋理中的紋理坐標(biāo);
遍歷轉(zhuǎn)換單元,用于遍歷渲染樹,將所述渲染樹中的文字渲染節(jié)點(diǎn)的坐標(biāo)轉(zhuǎn)換為世界坐標(biāo)系中的坐標(biāo);
渲染單元,用于根據(jù)每張字體圖像在所述紋理中的紋理坐標(biāo)以及所述文字渲染節(jié)點(diǎn)在所述世界坐標(biāo)系中的坐標(biāo),將各預(yù)處理后的文字圖像渲染到相應(yīng)地文字渲染節(jié)點(diǎn)中。
7.根據(jù)權(quán)利要求6所述的文字渲染裝置,其特征在于,所述預(yù)處理單元還用于:若獲取的待渲染的字體圖像中包含兩個(gè)以上字體,則將包含兩個(gè)以上字 體的字體圖像拆分了包含單個(gè)字體的字體圖像;分別對拆分后得到的字體圖像進(jìn)行預(yù)處理。
8.根據(jù)權(quán)利要求7所述的文字渲染裝置,其特征在于,所述渲染單元具體用于:根據(jù)每張字體圖像在所述紋理中的紋理坐標(biāo)以及所述文字渲染節(jié)點(diǎn)在所述世界坐標(biāo)系中的坐標(biāo),將各預(yù)處理后的文字圖像批處理渲染到相應(yīng)地文字渲染節(jié)點(diǎn)中。
9.根據(jù)權(quán)利要求6至8任一項(xiàng)所述的文字渲染裝置,其特征在于,所述渲染單元具體用于:根據(jù)每張字體圖像在所述紋理中的紋理坐標(biāo)以及所述文字渲染節(jié)點(diǎn)在所述世界坐標(biāo)系中的坐標(biāo),調(diào)用glDrawElements函數(shù)將各預(yù)處理后的文字圖像渲染到相應(yīng)地文字渲染節(jié)點(diǎn)中。
10.根據(jù)權(quán)利要求6至8任一項(xiàng)所述的文字渲染裝置,其特征在于,所述記錄單元具體用于:在字體緩沖表中將每張字體圖像在所述紋理中的紋理坐標(biāo)與相應(yīng)字體圖像的哈希值進(jìn)行關(guān)聯(lián),其中,所述字體緩沖表包含字體、字體圖像以及哈希值這三者的映射關(guān)系信息,所述哈希值基于如下字體屬性中的一項(xiàng)或兩項(xiàng)以上計(jì)算得到:字體的統(tǒng)一碼、字體的顏色、字體的字號、字體的字形。