Должны ли мои текстурные активы быть линейными или sRGB? В любом случае, как правильно их импортировать?
(Есть такой же вопрос по r / godot , но я не вижу подробных ответов.)
Годо, похоже, предполагает, что все текстуры PNG являются линейными, независимо от информации о гамме или sRGB, встроенной в PNG. Я проверил это путем шестнадцатеричного редактирования PNG, чтобы иметь различные типы фрагментов gAMA
и sRGB
. Это противоречит большинству графических редакторов, которые по умолчанию используют нелинейные цветовые пространства. Поэтому, если вы создаете PNG, например, в Gimp и вставляете его в Sprite3D, по умолчанию он будет выглядеть размытым.
Годо (по крайней мере в 3.2) имеет параметр импорта Srgb
, который при установке Enable
, делает такие текстуры нормальными. Но я обеспокоен тем, что:
- Эта опция, кажется, была удалена из транка.
- Если линейное преобразование sRGB> происходит до того, как uint8> float32 преобразование, это приведет к потере точности цвета.
- Какой смысл установки
Detect
по умолчанию Srgb
, если он не обнаруживает фактические PNG-файлы sRGB?
Также есть hint_albedo
, но я надеюсь, что пользователям не придется писать шейдеры только для того, чтобы текстуры работали как положено.
Какой рекомендуемый рабочий процесс для текстур?