DragonBones導(dǎo)入Cocos Creator黑邊問題

問題描述:
龍骨(DragonBones)動畫導(dǎo)入Cocos Creator以后,發(fā)現(xiàn)了素材有黑邊,并且在龍骨導(dǎo)出的png圖集紋理圖中也可以直觀發(fā)現(xiàn)圖片有黑色邊緣。
? ? ? ? ? ? ?


解決方案:
? ?方案一
在資源管理器中選中圖集數(shù)據(jù),在屬性檢查器中勾選Premultiply Alpha 選項(xiàng)? ? ? ? ? ? ?
? ? ? ? ??

? 2.在層級管理器中選中骨骼數(shù)據(jù),在屬性檢查器中Materials內(nèi)勾選Premultiplied Alpha

? ? ? ? ? ? ?
? ? ? ? ? ?
方案二
在資源管理器中選中圖集紋理,在屬性檢查器中Filter Mode選擇Point
? ? ? ? ? ?

? ? ? ? ? ?
方案三
技術(shù)后臺設(shè)置
注意:
方案1中設(shè)置完成后有一定概率出現(xiàn)實(shí)時(shí)預(yù)覽中具有不透明度的素材會全白,具有alpha通道的素材會有白邊,cocos預(yù)覽播放時(shí)正常的。?? ? ? ? ?
擴(kuò)展:
DragonBones 骨骼動畫資源:
.json/.dbbin 骨骼數(shù)據(jù)
.json 圖集數(shù)據(jù)
.png 圖集紋理
? ? ? ? ? ?

?cocos官方對圖片素材的黑邊問題解決方案
圖片黑邊問題
當(dāng)圖片資源導(dǎo)入到編輯器中時(shí),默認(rèn)使用的過濾方式(Filter Mode)為線性插值(Bilinear)。而對于 Sprite 組件,默認(rèn)的 SrcBlendFactor 為 SRC_ALPHA。在這種條件下,對于有半透明像素的 PNG 圖片,在編輯器及預(yù)覽時(shí)半透明邊緣通常會有黑邊問題。原因是因?yàn)榈头直媛实膱D片在顯示到更高分辨率的顯示設(shè)備上時(shí),會進(jìn)行上采樣(upsampling),也就是圖像插值(interpolating)。在做像素插值時(shí),半透明邊緣與透明像素(0,0,0,0)插值之后會產(chǎn)生低透明度的黑色像素。避免圖片的黑邊問題通常有如下幾種方式:
過濾方式(Filter Mode)使用 Point 模式。(推薦使用, 需要能夠接受該模式帶來的鋸齒問題)
當(dāng)圖片在 PS 等工具中制作時(shí),增加背景圖層,圖層顏色設(shè)置成與半透明邊緣相同的顏色,然后設(shè)置背景圖層的透明度為很低的值,如?1/100。(推薦使用)
在圖片導(dǎo)出時(shí),設(shè)置為較高的分辨率,避免顯示到設(shè)備時(shí)進(jìn)行圖像插值放大。(不推薦使用)
引擎的自動圖集提供了擴(kuò)邊選項(xiàng),勾選該選項(xiàng)時(shí),編輯器會自動對半透明圖片邊緣進(jìn)行擴(kuò)邊處理,以此來避免黑邊問題。需要注意的是,自動圖集只有構(gòu)建之后才會生效,在編輯器及預(yù)覽時(shí)不會生效。其他圖集打包工具一般也會有類似的處理選項(xiàng)(推薦使用)
設(shè)置 Sprite 的 SrcBlendFactor 為 ONE,對圖片進(jìn)行預(yù)乘處理,但是可能會影響到圖片的批次合并,需要開發(fā)者視使用場景決定。(需要同步勾選圖片的 Premultiply Alpha 選項(xiàng))