Поэтому я пытаюсь обернуть это вокруг с довольно технической точки зрения.
Когда вы добавляете карту Bump, Normal или Displacement в свой шейдер, они не должны корректироваться гаммой. Но диффузные текстуры должны быть. Но почему?
Когда вы сохраняете файл в 8-битном (или 16-битном целом) формате в формате JPEG, PNG или TIFF, они получают сгоревшую гамму 0,4545 (1 / 2,2). Таким образом, камера захватывает свет из реального мира (который является линейным) и при сохранении фотографии в формате JPEG добавляется значение гаммы 1 / 2,2, как способ сжатия информации в 8 бит, а затем при просмотре изображения на мониторе, которое добавляет гамму 2,2, снова делая линейность яркости.
Таким образом, при использовании диффузных текстур (например, фото) вам необходимо «удалить» эту гамму 1 / 2.2, чтобы сделать ее линейной (называемой линеаризацией), так что теперь текстура выглядит темнее, но эти значения верны с математической точки зрения, поэтому средство визуализации будет сделать правильные расчеты. Примечание: программное обеспечение использовало гамму дисплея 2,2, чтобы убедиться, что текстуры выглядят правильно, только для внутреннего расчета они линеаризуются. Но когда я создаю карту Bump в Photoshop и сохраняю ее как JPG или PNG, то эта 1 / 2.2-гамма также сжигается в этом изображении, так почему же эту карту Bump также не нужно линеаризовать?
Если я загружаю карту Bump в 3ds Max с входной гаммой 2.2, как это было бы с текстурой Diffuse, diffuse выглядит правильно, но выпуклость выглядит неправильно, поэтому я должен установить входную гамму равной 1,0 для выпуклости, чтобы чтобы это выглядело правильно, но, как я уже сказал: почему, в обоих файлах изображений сгорела гамма 1 / 2.2, верно?
JPG, PNG или любые другие 8-битные форматы изображений не имеют встроенной гаммы 1 / 2,2. Они просто хранят значения от 0 до 255. Как эти данные интерпретируются, зависит от программного обеспечения, которое читает и записывает эти файлы. Интересно, что большинство программ для редактирования изображений по умолчанию использует гамма-цветовое пространство. Все кисти, эффекты, фильтры и даже палитра цветов работают в гамма-пространстве. Достаточно взглянуть на оттенки серого на палитре цветов в Photoshop. Они не следуют линейному распределению.
В результате Photoshop не выполняет преобразования между гаммой и линейным цветовым пространством при открытии или сохранении изображения (по умолчанию), а только при его отображении. Это означает, что вы можете использовать его для создания или редактирования линейных данных, таких как карта высот, так же легко, как и для редактирования фотографий. Карта рельефа не выглядит правильно при загрузке с гамма-коррекцией, потому что она не была сохранена с ним.
источник
Введение
Это зависит от того, как вы создаете карту! Подумайте о следующем и дайте ему немного подождать, прежде чем идти вперед:
Теперь карту рельефа довольно сложно нарисовать с помощью приложения для рисования. Потому что это трудно увидеть, даже если вы были правильно линейны. Таким образом, вы в конечном итоге используете такие вещи, как взгляд на ценности. Теперь вот подвох:
Создание карты удара / смещения
Итак, теперь я описал, что данные до интерпретации. Но почему вы интерпретируете данные как линейные? Потому что тогда вы можете создать свой боковой профиль лучше. Посмотрите, что вы можете сделать, это думать о 100% непрозрачности вашей кисти как о высоте цели, которую вы хотите вырезать или слой. Затем вы можете использовать инструмент кривых, чтобы создать форму вашей кисти для штампов (так как вы думаете, что данные линейны).
Изображение 1 : штамп с присоской.
Теперь, если вы делаете что-то подобное, то ваш образ является линейным, несмотря на то, что все вам говорят. Вы решили отказаться от правил изображения, которые говорят иначе. И именно поэтому изображение является линейным , автор выбирает, чтобы оно было линейным, чтобы с ним было легче работать.
Изображение 2 : То же изображение смещено и интерпретировано линейно (заметьте, я немного масштабировал высоту, чтобы соответствовать размеру моего bb по умолчанию), работая по назначению.
Технически линейно лучше.
Синтетическая карта не имеет преимущества сжатия определенных значений за счет других. Линейный по своей природе лучше, потому что таким образом лучше распространяется шишка. Вот почему вы тратите ресурсы, кодирующие его с гамма-коррекцией.
Во-вторых, изображению не нужно указывать, в каком цветовом пространстве оно находится. Просто редакторы изображений предполагают, что оно закодировано в sRGB. У вас нет причин делать такую же интерпретацию, никакая информация не означает просто: «Никто не удосужился записать, что они думают». Так что, возможно, следует подчеркнуть, что вы должны пометить его как линейный. Но вот в чем проблема ... ваш компьютер не имеет легко доступного линейного профиля.
Как насчет Photoshop и размытия?
Вот где это становится сложно. Фотошоп старается сделать довольно много работы, чтобы вам не нужно было ничего знать об этом материале. И здесь ты стреляешь себе в ногу. Se Photoshop не предназначен для создания текстур, он предназначен для редактирования изображений, а не случайных данных. Так как размытие на изображении отличается от линейного и нелинейного, оно не будет работать с неправильными данными.
Но вы можете сделать одну из двух вещей, чтобы исправить это:
Вывод
Причина, по которой вам трудно с этим
Первый пункт особенно запутан. Я просто знаю, что ВСЕ мои карты удара и смещения на самом деле являются линейными. Но я не могу знать, каковы ваши карты. Скорее всего, они линейны, потому что почти все понимают, что данные линейны. Даже люди, которые не знают о гамме, имеют тенденцию делать это линейным для удара / смещения по какой-то причине (потому что это легко, и вы так думаете, изображения пока кто-то не скажет вам иначе).
источник
Even people who do not know about gamma tend to do it linear for bump/displacement for some reason
Вероятно, потому что эти карты генерируются.На самом деле, если ваша карта рельефа или смещения сохранена с гамма-коррекцией 0,45, это неправильно. Эти карты содержат геометрическую информацию, а не цвет, и поэтому должны быть просто закодированы линейно.
Для связанной проблемы и исправления для Adobe Photoshop см. Эту колоду слайдов: https://docs.google.com/presentation/d/1vS5nAAnXbZ8Pt6-dXxy-xEXDkjfjXTmNnthNGccorl0/edit#slide=id.g14b3e28660_0_8
источник