像這樣的png格式的圖片,直接導(dǎo)入unity時(shí)unity會(huì)把沒有像素的部分用黑色填充,并根據(jù)填充部分自動(dòng)生成alpha通道。看起來alpha通道是不能手動(dòng)覆蓋的,即使在ps中手動(dòng)添加一個(gè)alpha通道,并添加覆蓋值。
導(dǎo)出后也會(huì)發(fā)現(xiàn)這沒有任何意義,在unity中查看alpha通道依舊和以前一致。
有一個(gè)簡單驗(yàn)證這個(gè)alpha生成原理的方法,只要在ps中添加一個(gè)圖層(無論最后是否合并圖層),并對(duì)添加的圖層填滿像素,隨后保持圖層打開的狀態(tài)導(dǎo)出這張圖片為png并導(dǎo)入unity,你會(huì)發(fā)現(xiàn)這張圖片的alpha通道不見了,這是大概是因?yàn)閡nity檢測這張圖片上沒有不存在像素的區(qū)域,所以沒有為他生成alpha通道
當(dāng)然你只要給這個(gè)滿像素的圖層隨便扣一塊下來,unity中的alpha通道就又出現(xiàn)了
所以想要覆蓋alpha的操作在png是無法實(shí)現(xiàn)的,即使你在png圖片導(dǎo)出時(shí)勾選了透明度,在unity中也無法看到alpha通道,但是如果png格式圖片有這樣的需求,可以復(fù)制圖片出來自己做一個(gè)黑白圖在unity中采樣手動(dòng)作為其他圖片的alpha。
當(dāng)然還有另一種方法,就是不導(dǎo)出png而是用psd格式文件,這樣可以在unity中覆蓋掉原文件的alpha通道,但這樣的問題就是文件大了不少,有好多無用信息,不如png+一張alpha圖省。
另外如果原本的圖片在ps中做過裁切(擴(kuò)充)或者修改圖片大小的操作,比如在這里,我把像素大小為433X576的圖片修改大小為符合unity的512X512像素,這在ps中看起來沒有問題。但當(dāng)你導(dǎo)入這張圖片進(jìn)入unity時(shí),會(huì)呈現(xiàn)這樣詭異的效果。
經(jīng)過嘗試和分析,可以確定的是在ps修改圖片像素大小的時(shí)候,圖片經(jīng)過了裁切(擴(kuò)充)和重新采樣的操作,在這張?jiān)幃惖膱D片中,白色是裁切(擴(kuò)充)所留下的產(chǎn)物,而那些被拉伸的不規(guī)則線條是ps重新采樣所造成的問題。當(dāng)然如果不勾選重新采樣,是無法根據(jù)像素對(duì)圖片進(jìn)行修改的。
要驗(yàn)證這兩點(diǎn)也十分簡單,首先這張圖什么都不做直接導(dǎo)入unity是這個(gè)樣子的
當(dāng)在ps中對(duì)圖片做了裁切(擴(kuò)充)操作后,擴(kuò)充的部分會(huì)以白色填充。比如這里我在ps中做了向右擴(kuò)充的操作(并沒有向上擴(kuò)充)。
這樣導(dǎo)入unity后,圖片呈現(xiàn)這樣的白邊。明顯可以看到右邊裁切(擴(kuò)充)的區(qū)域以白色鋪滿了,那為什么上面和左邊也有白色填充呢,因?yàn)閡nity會(huì)把圖片強(qiáng)制轉(zhuǎn)化為最接近的2的階乘大小的正方形圖片,所以才會(huì)出現(xiàn)這樣的狀況。
在這里還有一個(gè)有趣的現(xiàn)象,最初我們導(dǎo)入圖片時(shí),上面到提過unity會(huì)以黑色填充不存在像素的區(qū)域。而現(xiàn)在擴(kuò)充的區(qū)域unity卻是以白色填充的,更有趣的是我根據(jù)圖片在unity中呈現(xiàn)黑色的無像素區(qū)域在ps中對(duì)應(yīng)框選刪除后,這些黑色的區(qū)域變成了白色。我并不清楚這些黑白是根據(jù)什么條件填充的,但合理的猜想就是我在ps中對(duì)著黑色填充的區(qū)域框選刪除確實(shí)刪掉了什么東西,到底刪掉的是什么還不明白。
繼續(xù)剛才的話驗(yàn)證,在這時(shí),我們對(duì)這張圖片修改像素到512X512,根據(jù)重新采樣產(chǎn)生了不規(guī)則的拉伸的線條,在unity中效果如下。
驗(yàn)證結(jié)束,還有一個(gè)重要的點(diǎn)需要說明,如果你在unity的文件預(yù)覽窗口看到圖片是這個(gè)樣子的,那么在unity著色器中直接對(duì)這張圖片進(jìn)行采樣輸出也會(huì)呈現(xiàn)這樣的狀態(tài)。
return tex2D(texture,uv * texture_ST.xy + texture_ST.zw);
這就讓人有些不舒服了,這種圖片在alpha疊加的情況下使用并不會(huì)出現(xiàn)問題,但直接采樣展示時(shí)也許需要借助clip(alpha - 0.01)這樣的操作去除無像素部分。
當(dāng)然為了讓這些圖片看起來不那么亂,根據(jù)前面不知道刪掉了什么東西那段,我認(rèn)為最好的是在ps中全選圖片的所有像素,然后反選刪除,這樣可以讓所有無像素的部分以白色填充。文章來源:http://www.zghlxwxcb.cn/news/detail-809990.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-809990.html
到了這里,關(guān)于Unity圖片導(dǎo)入趣事隨筆的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!