Цвет рендеринга нормалей искажается?
Я пытаюсь визуализировать нормальный вывод геометрического узла, а затем вернуть его в виде текстуры проекции окна. Но когда я это делаю, изображение сильно отличается от исходного вывода сокета:
Почему мое изображение отличается, если это буквально рендер одного и того же? Я знаю, что управление цветом искажает рендеринг. Я пробовал рендеринг с различными устройствами отображения, преобразованиями представления, как .png, так и .exr, разными цветовыми пространствами на узле текстуры, отключением функции «Сохранить как рендеринг» и т. Д.
Насколько я понимаю, нахождение в Display Device: sRGB, стандартное преобразование вида, а затем установка узла текстуры на Linear или Non-Color Data должны работать, но это не так. Что еще может происходить?
Ответы
Я думаю, что основная причина различий заключается в том, как данные кодируются при первоначальной визуализации нормалей.
Если вы сохраните это в формате jpg или png, цвета будут закодированы как целые числа. Это приводит к некоторым округленным значениям, которые невозможно преобразовать в точные исходные нормальные значения.
Таким образом, вы можете сохранить этот визуализированный файл в формате OpenExr, чтобы сохранить значения с плавающей запятой:
(кодек может быть «none» или «zip freeless» для точности, если необходимо ... попробуйте кодеки в зависимости от того, что вы хотите, размер файла или точность).
Результат может быть таким (хотя и не идеальным):
Вместо этого с помощью png:
Кроме того, сохраните текстуру изображения как «нецветную» или «необработанную» и, как вы сказали в вопросе, установите «необработанные» и «нецветные» в части управления цветом.
Изменить: другая вещь, которая меняет рендеринг, - это сглаживание. Если вы используете Cycles, установите фильтр пикселей в поле в разделе фильма. Рендеринг с использованием текстуры изображения, спроецированной на окно, должен дать лучший результат.