[英]Linear gamma v.s. sRGB texture workflow in Godot?
我的紋理資源應該是線性的還是 sRGB? 無論哪種情況,導入它們的正確方法是什么?
( 在 r/godot 上有一個類似的問題,但我沒有看到任何徹底的答案。)
Godot 似乎假設所有 PNG 紋理都是線性的,無論嵌入在 PNG 中的任何伽馬或 sRGB 信息如何。 我通過對 PNG 進行十六進制編輯來測試這一點,使其具有各種類型的gAMA
和sRGB
塊。 這與大多數圖像編輯器不一致,它們往往默認使用非線性色彩空間。 因此,如果您在例如 Gimp 中創建一個 PNG 並將其粘貼到 Sprite3D 上,默認情況下它看起來會褪色。
Godot(至少在 3.2 中)有一個Srgb
導入選項,當設置為Enable
時,會使此類紋理看起來很正常。 但我擔心的是:
Srgb
的默認Detect
設置沒有檢測到實際的 sRGB PNG,它的意義何在? 還有hint_albedo
,但我希望用戶不必為了使紋理按預期工作而編寫着色器。
推薦的紋理工作流程是什么?
工作流程如下:
此選項似乎已從主干中刪除。
這是有意的,因為 Vulkan 渲染器使用無綁定紋理。 sRGB 轉換現在在渲染紋理時直接完成,而不是在導入時完成。 這允許在 2D 和 3D 上下文中使用相同的紋理,並使其在兩者中看起來都正確。 同樣,在 Godot 4.0 中,您將能夠使用具有或不具有過濾功能的相同紋理,而無需復制它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.