RenderTexture 存png顏色變暗問題

最近在處理ARFoundation掃描後將圖像資訊存檔並取出到另外一個專案使用,發現一個問題,發現存檔的圖顏色會變暗。

基本上ColorMap是讀取ARFoundation傳來的ARCameraFrameEventArgs,經過shader合併TextureY和TextureCbCr,以及依照Portrait或Landscape旋轉貼圖再Blit給RenderTexture。

本來我的做法是直接把RenderTexture丟到Compute Shader處理,所以不需經過Texture2D轉換,但這次必須存成圖檔或是轉成Texture2D給其他人寫好的程式使用,所以發現了轉成Texture2D會變暗,查了一下,是RenderTexture轉成Texture2D後,會有sRGB轉換的問題。

[這篇文章]有講述基本sRGB的問題,最簡單的方法是把RenderTexture設定中sRGB設為為enable,就可以解決。

但因為我的RenderTexture是透過程式宣告的,但上面的方法sRGB在Script中是Read Only,所以我必須使用其他方法。

查到[這篇文章]中提供了幾個解決方法,目前我先是直接將讀取出的Color重新linear轉換。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *