本發(fā)明屬于文字光暈技術(shù)領(lǐng)域,尤其是涉及一種用于U3D中UI Text光暈方法及系統(tǒng)。
背景技術(shù):
目前,為了使Text文本文字美觀、醒目,人們往往將原始文字通過U3D內(nèi)置的Outline對(duì)文字外輪廓進(jìn)行光暈效果處理,如圖1所示為處理前的原始文字,如圖2所示為U3D內(nèi)置的Outline的光暈處理文字效果,但是這種處理結(jié)果有很明顯地缺陷,處理后的文字光暈效果生硬,且容易出現(xiàn)很多瑕疵(如圖2中用圓形圈起來的位置),這就不能夠滿足對(duì)文字光暈效果的完美需求。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明旨在提出一種用于U3D中UI Text光暈方法及系統(tǒng),以解決上述問題的不足之處,使文字外輪廓的光暈光滑生動(dòng)。
為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
一種用于U3D中UI Text光暈方法,包括以下步驟:
A.利用“UIVertex”結(jié)構(gòu)的tangent參數(shù)獲取每個(gè)字符的UI邊界;
B.對(duì)每個(gè)字符的邊界進(jìn)行外擴(kuò)計(jì)算;
C.對(duì)字體進(jìn)行多次采樣;
D.對(duì)多次采樣的字體添加Offset偏移;
E.對(duì)添加Offset偏移后的字體進(jìn)行疊加處理。
相對(duì)于現(xiàn)有技術(shù),本發(fā)明所述的用于U3D中UI Text光暈方法及系統(tǒng)具有以下優(yōu)勢(shì):
本發(fā)明所述的用于U3D中UI Text光暈方法及系統(tǒng)避免了利用U3D內(nèi)置的Outline進(jìn)行光暈處理文字時(shí)產(chǎn)生的缺陷問題,文字光暈有漸變,光滑生動(dòng),效果更好,特別適用于文字的高亮、突顯效果。
附圖說明
構(gòu)成本發(fā)明的一部分的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
圖1為本發(fā)明實(shí)施例所述的用于U3D中UI Text光暈方法流程圖;
圖2為處理前的原始文字示意圖;
圖3為U3D內(nèi)置的Outline的光暈處理文字效果示意圖;
圖4為本發(fā)明實(shí)施例進(jìn)行光暈處理后的文字效果示意圖;
圖5為偏移一個(gè)UV后周邊字符全部偏移的示意圖。
具體實(shí)施方式
需要說明的是,在不沖突的情況下,本發(fā)明中的實(shí)施例及實(shí)施例中的特征可以相互組合。
下面將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明。
如圖1所示,一種用于U3D中UI Text光暈方法,包括以下步驟:
A.利用“UIVertex”結(jié)構(gòu)的tangent參數(shù)獲取每個(gè)字符的UI邊界;
B.對(duì)每個(gè)字符的邊界進(jìn)行外擴(kuò)計(jì)算;
C.對(duì)字體進(jìn)行多次采樣;
D.對(duì)多次采樣的字體添加Offset偏移;
E.對(duì)添加Offset偏移后的字體進(jìn)行疊加處理,最終形成光暈。
如圖3所示,為利用本發(fā)明所述的一種用于U3D中UI Text光暈方法及系統(tǒng)進(jìn)行文字光暈后的效果圖。
在所述方法的實(shí)施例中獲取字符邊界的設(shè)計(jì)原理如下:
U3D把一個(gè)字體的所有的文字都放在一個(gè)集成的地圖集貼圖里面,所以在獲取字符邊界時(shí),通過常用的UV不能滿足要求,因?yàn)樽址沁B續(xù)的,偏移一個(gè)UV可能造成周邊的字符全部偏移,如圖5所示。
而又必須要提供給Shader每個(gè)字符的UV邊界,此時(shí)U3D提供了一個(gè)IMeshModifier組件,可以通過回調(diào)修改Mesh數(shù)據(jù)的方法來實(shí)現(xiàn)。
U3D默認(rèn)UI Shader的“UIVertex”結(jié)構(gòu)如下:
此處選擇tangent參數(shù),提供傳遞UI邊界的方式。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。