創作內容

25 GP

[Unity] 停止摧毀你家美術的像素風素材

作者:奈│Unity(遊戲引擎)│2019-07-23 15:29:24│巴幣:1,146│人氣:1989
不想看廢話的話可以直接CTRL + F 搜尋「分隔線」

做遊戲的時候,有時候美術風格想要使用像素風,然後美術大大們就開始畫圖


畫好之後他們總是想要看看丟進遊戲裡是甚麼形狀,因為有些不負責任的程序猿在做Prototype的時候只會東拼西湊的盜圖,誰管你什麼美術風格。或是偶爾秀秀他們的火柴人下限,讓美術們在素材生出來之前根本不想看遊戲畫面。

這時程序猿把圖片丟進了Scene

然後可能會產生以下對話:

程序猿:我覺得很棒
美術:所以我的圖為啥整組糊掉了...?
美術:好像有種東西叫做Pixel Perfect Camera,用用看嗎?

(然後程序猿跑去抓了這個package,但是似乎沒甚麼效果)

程序猿:好像差不多,我也不知道為甚麼,先這樣。

以上前導劇情終於演完了,接下來可以來看看要怎麼讓這些像素風素材正確呈現

----------------------------------------------------------分隔線----------------------------------------------------------

懶人包:
問題的根源在於Unity怎麼對素材圖進行採樣,預設使用Bilinear (線性過濾),需要改為Point 才有辦法展現出像素風素材的真正樣貌。


看個比較圖 (左Point, 右Bilinear)

你說你知道怎麼操作了,但不懂Bilinear和Point 背後的算法哪裡不一樣?

電腦算出來的圖都是由一個個像素所組成的,需要對目標圖進行一個叫做「採樣」的動作。

當想要渲染的大小和圖片本身解析度不符的時候,就不會把圖片的每一個像素都忠實呈現在螢幕上。 (想像成把一張小圖過度放大,電腦總是要試著去猜放大的部分應該要填入甚麼顏色)

採樣的方法主要有兩種,就是前面提到的Bilinear 和 Point,在OpenGL的紋理過濾中被稱做GL_LINEAR 和 GL_NEAREST

頂點著色器 (Vertex Shader) 以三角面勾勒出一張圖的範圍後,片段著色器 (Fragment Shader) 就需要知道這些範圍內要填入甚麼樣的顏色,這時候Bilinear 和 Point的設定分歧就會讓片段著色器決定不同的輸出了

下面引用 OpenGL CN - 紋理單元 的圖方便說明,想要了解更多也能把那篇文章看完:

「+」是片段著色器對圖片採樣的座標,returns 則是片段著色器會輸出的顏色

     Belinear (GL_LINEAR)             Point (GL_NEAREST)
   
可以發現Bilinear會把周圍的像素點都納入考慮,最後輸出一個帶有各個顏色權重的混色
而Point 則是直接回傳採樣點上面的像素點

看到這邊大家應該都了解到為什麼使用Belinear再把圖放大後會讓像素風的圖片糊掉了

至於Unity使用Belinear做為預設值的原因,我認為是因為Belinear可以呈現較平滑、真實的輸出,強調顆粒感的Point 是相對於特殊的美術風格,所以才不被選為預設值。


引用網址:https://home.gamer.com.tw/TrackBack.php?sn=4469955
All rights reserved. 版權所有,保留一切權利

相關創作

同標籤作品搜尋:Unity(遊戲引擎)

留言共 7 篇留言

<(_ _)>
<(_ _)>

07-23 15:33

不重要
解釋得很清楚而且很實用OAO!

07-24 16:55

HaoX@ミリシタ
背景學我

07-24 18:20

HaoX@ミリシタ
幫補充
https://blogs.unity3d.com/2019/03/13/2d-pixel-perfect-how-to-set-up-your-unity-project-for-retro-8-bits-games/

07-24 18:23


你是黑客耶
07-24 21:04
邊緣人(可撥
所以巴哈勇造是bilinear?

07-26 16:02


應該是(?07-26 18:29
mark大洋
一個快速懂,用GP推推

07-29 00:01

ZXCV1919
好…好想自己也可以跟你一樣做些什麼 = =+

08-22 23:16

我要留言提醒:您尚未登入,請先登入再留言

25喜歡★ak115123 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:秋之回憶 T-Wave ...

追蹤私訊切換新版閱覽

作品資料夾

Kokage
祝今天看到的您也有個美好的一天 (´▽`ʃ♡ƪ)"看更多我要大聲說昨天15:33


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】