Re: [分享]今日去弘煜筆試的情形

看板GameDesign (遊戲設計)作者 (溺於黑暗)時間11年前 (2013/07/11 22:52), 編輯推噓9(909)
留言18則, 6人參與, 最新討論串2/2 (看更多)
※ 引述《sk131 (鮪魚)》之銘言: : 一題是何謂256色,高彩和全彩 : 餵狗的答案是因為電腦是使用2進位 : 所以256色是2的8次方 : 高彩是2的16次方,全彩是2的24次方 : 嗯...... 這個算是美術設計的範圍嗎? : 還真不記得那個老師在教畫圖時有教過 : 回去再翻一次photoshop的筆記也沒看到這玩意 : (筆記有寫的話我就不會死在那了啊 XD) 來講古一下好了 這個大概是在考貼圖輸出格式. 最早以前一些函式庫還沒這麼好用 (不像影像處理軟體這麼方便已經準備好那些讀圖的loader) 程式要自己讀檔案,分析檔頭,甚至解壓縮. 最後把未壓縮的圖放在一個空間裡面 如果是最早以前256色的一個畫素只消耗一個byte去存,所以只能存0~255 所以一張全白的3*3圖會變成像這樣 255 255 255 255 255 255 255 255 255 在這種情形你可以在photoshop裡面看到(似乎是)index color這樣的設定. 後來比較正常一點我們用3byte去存也就是 R(0~255) G(0~255) B(0~255) 所以一張全紅的3*3圖會變成 (255 0 0) (255 0 0) (255 0 0) (255 0 0) (255 0 0) (255 0 0) (255 0 0) (255 0 0) (255 0 0) 這裡就是全彩了. 然後這種情形下透明色就是用一個奇怪的顏色(通常是偏紫紅色) 只要偵測到那個顏色,就是全透明.不是那個顏色就是不透明. 這種情形你可以在photoshop裡面看到24bit這樣的設定 再更先進一點,為了搞定半透明的問題,我們乾脆用4byte去存了. 也就是 R(0~255) G(0~255) B(0~255) A(0~255) 這時每個像素都可以指定不同程度的透明,從不透明A=255到完全透明A=0 這種情形你可以在photoshop裡面看到32bit(4byte)這樣的設定 因此png與tga會在遊戲界這麼紅的原因就是因為遊戲界要處理alpha的問題 而且可以有未失真的壓縮 jpg雖然檔案小但是解壓縮要花時間,解壓縮之後的大小跟其他格式根本就相同, 所以遊戲界完全被淘汰 bmp比較少人用是因為完全未壓縮,檔案太大. (高彩用的是16bit那麼google 是 R5G5B5A1 但這個過渡期我比較不熟 在映像管時代的螢幕設定都可以改全彩or高彩的) 但是這世界沒這麼好心,因為各種不同的政治與平台差異 同樣是4byte 有些平台會存成 R8G8B8A8 有些會反過來 A8B8G8R8 還有些要省空間的會存成 A3B7G7R7 (用24bit存rgba四個channel) 所以在這種GY的情形下,就必須限制美術人員在整個專案中輸出指定格式, 這樣程式就不用寫一海票針對各種不同格式都要能讀的loader, 也不用擔心貼圖讀進來壞掉的情形. 不過呢這種事情是古老時代了. 在現在這種美好時光, 用了好用的引擎或圖檔函式庫之後那些問題就都拋在腦後了. 比較麻煩的是因為圖檔格式的混亂(都可以讀)反而造成了亂七八糟的情形. 因此, 從團隊的原始到先進,對於貼圖的控管會像是這樣的進展 jpg -> png -> dds 然後貼圖的檔案拼法會是這樣的進展 分散的檔案 -> 集合的檔案 -> 依照材質拼在一起的檔案 -> 參數化的貼圖 -- "May the Balance be with U"(願平衡與你同在) 視窗介面遊戲設計教學,討論,分享。歡迎來信。 視窗程式設計(Windows CLR Form)遊戲架構設計(Game Application Framework) 遊戲工具設計(Game App. Tool Design ) 電腦圖學架構及研究(Computer Graphics) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.68.22.188

07/11 22:55, , 1F
順帶一提, 後一題的 Alpha channel 就是這篇文裡的 A 分量
07/11 22:55, 1F

07/11 23:00, , 2F
大約懂一點了,感謝前輩細心指導,至少知道早期還是256色的電
07/11 23:00, 2F

07/11 23:01, , 3F
腦時的情形是怎麼一回事了,當時能存的byte有限 -_-
07/11 23:01, 3F

07/11 23:06, , 4F
所以alpha channel是指將某種顏色的alpha值變成0或255嗎?
07/11 23:06, 4F

07/11 23:12, , 5F
應該說是"任何"顏色的透明度
07/11 23:12, 5F

07/11 23:21, , 6F
alpha算是在每個像素額外增加0~255的資訊
07/11 23:21, 6F

07/11 23:22, , 7F
通常用來當透明度
07/11 23:22, 7F

07/11 23:22, , 8F
喔喔,這樣說明就比較懂了 ^^
07/11 23:22, 8F

07/11 23:28, , 9F
實務上alpha還有很多花樣可以做
07/11 23:28, 9F

07/11 23:29, , 10F
http://ppt.cc/Y8kp 像是儲存高度假裝平面圖是立體的
07/11 23:29, 10F

07/11 23:32, , 11F
這是利用透明度來做出有凹陷感覺的錯覺嗎?
07/11 23:32, 11F

07/11 23:37, , 12F
http://ppt.cc/Vb-u 他的alpha channel長這樣
07/11 23:37, 12F

07/11 23:37, , 13F
越黑的地方表示越深,程式會算出每個視角該有的樣子
07/11 23:37, 13F

07/11 23:38, , 14F
可是美術必須提供圖,所以需要知道alpha是什麼
07/11 23:38, 14F

07/11 23:40, , 15F
喔喔,感覺好像是3dsmax也用過的凹陷貼圖,從材質球去拉a值
07/11 23:40, 15F

07/12 03:11, , 16F
那順便問一下48bit和24bit主要差在哪裏?
07/12 03:11, 16F

08/06 00:13, , 17F
講得很詳細~建議美術們也要能大致理解這些東西,對於
08/06 00:13, 17F

08/06 00:13, , 18F
任何的shader特效會更容易掌控。
08/06 00:13, 18F
文章代碼(AID): #1HtiQYPH (GameDesign)
討論串 (同標題文章)
文章代碼(AID): #1HtiQYPH (GameDesign)