2016年12月19日 星期一

開發Android和iOS內容現已支援Linear著色模式

作者:Christophe Riccio 原文
翻譯:Kelvin Lo

如果你是手遊開發者,這個功能對你來說會非常有用,在Unity 5.5裡有一個新功能就是Android和iOS已支援Linear著色模式。有支援這個模式你就能確保輸入和輸出以及所有的計算都會落在正確的顏色空間內。最後的圖形運算亮度會因為場景光的變化產生線性的改變,代表場景所有的物件色調會更加一致。

你可以看到原本的只能採用的Gamma顏色空間模式,亮度會因為數值變大很快的就轉為白色造成過度曝光。看看這張示意圖:

Unity 5.5現在已經支援Linear模式用在Android和iOS平台上,在Android上,Linear需要支援OpenGLES3的硬體(大約61%市占硬體)。在iOS上需要支援Metal(大約71%市占硬體)

由於線性(Linear)和伽瑪(Gamma)之間的差異很大,兩種模式無法相容,因為會牽扯到資源重新關聯,這代表一個問題就是如果採用Linear模式就無法在OpenGLES2的iOS或Android硬體上執行。

我們依賴Google Play上的過濾器來確保只能執行OpenGLES2的手機不會列出用Linear模式的遊戲,在iOS上也是有類似的機制透過iOS key來過濾採在蘋果商城上採用Linear模式的遊戲。

此外,Unity 5.3開始我們就把OpenGLES3的API支援導入Windows編輯器支援,單獨改進來加快開發人員迭代的時間。我們也和GPU的廠商合作致力於在Windows平台上用OpenGLES啟用Linear模式。這功能已經包在GeForce 376.09的驅動程式裡,這要感謝Nvidia的Piers Dainiell協助。

為了要呈現線性渲染的威力,我們做了一個專為手機連同PC平台展示用的簡單測試場景,你可以在這裡下載。


最後,目前WebGL 2.0在Unity裡尚未支援Linear模式,但我們正如火如荼地和Khronos WebGL團隊與Chrome團隊共同計畫著要把這個功能做出來。

沒有留言:

張貼留言

著作人

網誌存檔