1. 程式人生 > >Unity關於畫素,Camera大小,以及解析度的研究

Unity關於畫素,Camera大小,以及解析度的研究

首先得認識下畫素等相關單位,根據知乎網友的解釋:
畫素(Piexl):
指的是影象的最小單位,是獨立的一個色塊(畫素點),一張圖片就是有這些畫素點構成的,單位面積內畫素點越多,越密集,那麼影象就會越清晰.
這裡寫圖片描述
如圖,這是一張68X80畫素的圖片,他有橫向68,縱向80個畫素點,
這裡寫圖片描述
我們放大看,就能看到明顯的方塊,這就是單個畫素點,由於放大,影象放大就變得模糊,也就是影象解析度過小.

影象解析度:
影象解析度是指每英寸影象內的畫素點數。影象解析度是有單位的,叫 畫素每英寸。解析度越高,畫素的點密度越高,影象越逼真.

螢幕解析度:螢幕解析度是螢幕每行的畫素點數*每列的畫素點數,每個螢幕有自己的解析度。螢幕解析度越高,所呈現的色彩越多,清晰度越高;
如1920X1080的21寸顯示器,其螢幕橫向就有1920個畫素點,螢幕越小,畫素點就越小,影象也會看起來越清晰(因為肉眼察覺不到單個畫素點色塊),這跟圖片放大縮小是一個道理.

————————–回到正題———————————-

現在回到我們的Unity,我們遊戲視窗的渲染顯示範圍依賴於相機的大小,在Camera的Orthographic模式下,通過調節size調整相機大小;
當我們將上面那張68X80的圖片拖入場景中時,將經過畫素到單位比(Pixels To Units)換算的,在unity中預設是100,我們可以在圖片資訊中看見這個值:
這裡寫圖片描述

即100畫素轉換為unity中一個單位,這張高度80畫素的圖片在不放大的原始大小情況下,即使0.8個單位高;

前面說到的相機的size,調整的就是相機的渲染高度,其值表示的是螢幕高度*0.5;
現在我們賦值size值=3,那麼相機的渲染高度將會是6個單位高,通過下圖驗證
這裡寫圖片描述


如圖:將前面匯入的圖片複製疊加,這裡有8個,每個80畫素高 ( 即0.8單位高 ),而最後一個剛好超出相機渲染線框 半個圖片高,所以相機範圍內圖片高為7.5*0.8=6個單位高,正好驗證了與size設定的關係.

而相機渲染寬度,則是通過螢幕寬高比換算得出;
無論我們怎麼調整解析度,都不再會改變,這個相機顯示單位高度只會根據size決定,最終改變的是因解析度不同,導致寬高比不同所換算出來的相機渲染寬度;

瞭解到這點,就可以容易地對不同解析度手機的適配

詳細可以參考頂部連結,在最後有詳細的解釋,這裡就不再累述了;