воскресенье, 14 июня 2015 г.

Подготовка текстур перед визуализацией в mental ray

В процессе работы над текстурными картами и визуализацией сцены с помощью mental ray, вам может потребоваться предварительно подготовить изображения текстур согласно спецификации и требованиям, предъявляемых системой визуализации mental ray Standalone и mental ray for Maya (mental ray for 3ds Max).
В набор инструментов системы визуализации mental ray входит несколько полезных утилит, позволяющих с легкостью выполнить конвертацию изображений в желаемый формат, адаптированный под его возможности.
Доступ к ним можно получить в директории bin с установленным mental ray Standalone, mental ray for Maya и mental ray 3ds Max.

Проблема которую будем решать
Если вы используете редактор Adobe Photoshop или иной другой, поддерживающий сохранение изображений в формате TIFF (*.tif, *.tiff), вы можете столкнуться с предупреждениями в процессе визуализации.
Пример информационного сообщения в диалоговом окне Terminal о некоторретном типе тега.
Так как Adobe Photoshop добавляет несколько типов тегов, mental ray далеко не всегда их использует и воспринимает. Сообщение предупреждения появляется при запуске процесса визуализации и первичном чтении файлов изображений, а затем при загрузке изображений в память.
MEM  0.0  36 MB info : virtual memory limit set to 6053 MB
IMG  0.0  36 MB warn   102023: TIFFReadDirectory: .../image.tif:
                       wrong data type 7 for "RichTIFFIPTC"; tag ignored.
IMG  0.0  36 MB warn   102023: TIFFReadDirectory: .../image.tif:
                       wrong data type 7 for "RichTIFFIPTC"; tag ignored.
IMG  0.0  36 MB warn   102023: TIFFReadDirectory: .../image.tif:
                       wrong data type 7 for "RichTIFFIPTC"; tag ignored.
IMG  0.0  36 MB warn   102023: TIFFReadDirectory: .../image.tif:
                       wrong data type 7 for "RichTIFFIPTC"; tag ignored.
MEM  0.6  36 MB info : physical memory detected: total 8192 MB, free 6212 MB
SCEN 0.6  37 MB progr: begin scene preprocessing for frame 1
SCEN 0.6  37 MB info : 1 geometry leaf instance (1 scheduled, 0 cached, 0 shared)
SCEN 0.6  37 MB info : 1 light leaf instance
...
RC   0.6  37 MB progr: rendering
IMG  0.5  40 MB progr: opening texture .../texture_projection_map.tif, for reading
IMG  0.5  40 MB warn   102023: TIFFReadDirectory: .../image.tif:
                       wrong data type 7 for "RichTIFFIPTC"; tag ignored.
IMG  0.5  40 MB warn   102023: TIFFReadDirectory: .../image.tif:
                       wrong data type 7 for "RichTIFFIPTC"; tag ignored.
IMG  0.5  40 MB warn   102023: TIFFReadDirectory: .../image.tif:
                       wrong data type 7 for "RichTIFFIPTC"; tag ignored.
IMG  0.5  40 MB warn   102023: TIFFReadDirectory: .../image.tif:
                       wrong data type 7 for "RichTIFFIPTC"; tag ignored.
JOB  0.2  64 MB progr:     0.3%    rendered on w4-mac.2
JOB  0.4  64 MB progr:     0.7%    rendered on w4-mac.4
Это не критичное предупреждение и не является ошибкой, но при работе с большим количеством текстурных карт и при их загрузке, эти сообщения могут существенно осложнить чтение отчетов о ходе процесса визуализации.


Решение проблемы с помощью imf_copy
В поставку mental ray Standalone, mental ray for Maya и mental ray for 3ds Max входит набор специальных утилит, позволяющих выполнять множество разнообразных операций над изображениями. Для подготовки изображения текстурной карты в родном формате mental ray (*.map) или для пересохранения в формат адаптированный под спецификации и требования системы визуализации, используется утилита imf_copy. Она позволяет сохранять не только в родном формате mental ray (*.map), но так же в любом другом, который вы используете в процессе работы над визуализацией трехмерной сцены.
Информация об утилите imf_copy из поставки mental ray for Maya 2015
Если вы сохранили текстурные карты напрямую из Adobe Photoshop и для того, чтобы избежать проблем с лишними предупреждающими сообщениями, я рекомендую преобразовывать текстуры с помощью этой утилиты. Как вы можете заметить из представленной выше иллюстрации, она достаточно проста, а вся работа выполняется с помощью командной строки или приложения Terminal (в UNIX-подобных системах).
Я рекомендую для сохранения текстурных карт 8- или 16-бит, использовать файлы в формате TIF. Даный формат существует и развивается очень давно и поддерживается практически всеми современными системами виузализации и графическими редакторами. Он достаточно универсален и поддерживает не только сохраннеие данных без компрессии, но и поддерживает такие методы сжатия, как LZW, ZIP и JPG, что может существенно сократить объем используемого дискового пространства. Благодаря функциям сохранения информации о цветовых профилях и пространствах, вы можете работать с изображениями не только в пространстве sRGB, но и CMYK и CIE L*a*b.

НА ЗАМЕТКУ. Подробную информацию о формате TIF вы можете узнать из статьи на Wikipedia и на специальной странице портала для разработчиков компании Adobe.

Для преобразования текстурной карты вы можете ввести следующую команду в консоли:

user$ ./imf_copy -v .../image.tif .../image2.tif

Указав путь и имя файла который вы хотите преобразовать и путь и имя нового файла, можно просто нажать клавишу [Enter] и утилита автоматически выполнит все действия. Для мониторинга хода преобразования изображения, вы можете использовать ключ -v, это позволяет активизировать режим verbose, который выводит информацию о ходе преобразования, предупреждения и ошибки.
В нашем случае, когда был определен не пооддерживаемый тег, утилита imf_copy также сообщит о наличии незнакомого тэга и не будет включать его в новый файл.
MAIN 0.0  0 MB info : Copyright 1986, 2014 NVIDIA Corporation. All rights reserved.
MAIN 0.0  0 MB info : version 3.12.1.17, Jun 21 2014, revision 222200
IMG  0.0  19:42:18 1 MB info : opening ".../image.tif" for reading
IMG  0.0  19:42:18 1 MB warn   102023: TIFFReadDirectory: .../image.tif:
                               wrong data type 7 for "RichTIFFIPTC"; tag ignored.
IMG  0.0  19:42:18  1 MB warn   102023: TIFFReadDirectory: .../image.tif:
                               wrong data type 7 for "RichTIFFIPTC"; tag ignored.
IMG  0.0  19:42:18 1 MB warn   102023: TIFFReadDirectory: .../image.tif:
                               wrong data type 7 for "RichTIFFIPTC"; tag ignored.
IMG  0.0  19:42:18 1 MB warn   102023: TIFFReadDirectory: .../image.tif:
                               wrong data type 7 for "RichTIFFIPTC"; tag ignored.
MAIN 0.0  1 MB info : ./imf_copy: .../image.tif (2048 x 2048) --> .../image.tif
IMG  0.0  19:42:18 1 MB info : creating ".../image2.tif"
IMG  0.0  19:42:18 1 MB info : format "tif", type "rgb_16", 16 bits, 3 comps, size 2048 x 2048
Утилита также выведет информацию о том, в каком типе буфера изображения сохранена копия, сколько содержит каналов и его разрешение.
Сообщения о ходе процесса визуализации без предупреждений о несовместимых тегах.
После того как вы укажите mental ray новый файл, в процессе визуализации вы не увидите сообщений с предупреждениями и будет формироваться достаточно чистый отчет о ходе визуализации.
RC   0.3  38 MB progr: rendering
IMG  0.4  41 MB progr: opening texture .../image2.tif, for reading
JOB  0.4  65 MB progr:     0.3%    rendered on w4-mac.4
JOB  0.5  66 MB progr:     0.7%    rendered on w4-mac.5
Старайтесь всегда преобразовывать финальные версии текстурных карт в формате TIFF для корректной визуализации с минимумом лишней информации и для того чтобы не вызвать непредвиденное завершение процесса визуализации из-за неподдерживаемых тегов.

Информация об изображении с помощью imf_info
До и после преобразования изображения, вы можете просмотреть информацию о нем с помощью простейшей утилиты imf_info. Данная утилита выводит только сведения об изображении и основную информацию о данных, записанных в файл. Воспользоваться утилитой можно с помощью командной строки или приложения Terminal (в UNIX-подобных системах).

user$ ./imf_inf -p .../image2.tif

Ключ -p позволяет вывести максимально подробную информацию об изображении, включая простую гистограмму плотности пикселей.
Пример окна приложения Terminal с выведенной с помощью утилиты imf_info информацией.
Выводимое сообщение об изображении обычно представлено следующей записью:
width   height comp  bits gamma line   type     format   file
 2048     2048    3    16     1 down   rgb_16   tif      .../image.tif
Столбцы width и height выводят информацию о разрешении изображения по ширине и по высоте, столбец comp отображает информацию о количестве каналов в изображении (1, 3. 4), столбец bits выводит информацию о битности изображения (8, 16 или 32), столбец gamma отображает величину gamma определенную для текущего изображения, столбец type демонстрирует тип буфера кадра и данных, сохраненных в изображении, а столбцы format и file отображают информацию о формате и расширении файла, а также о пути к файлу на жестком диске.

Используя эти две простые утилиты из поставки mental ray, вы можете быть уверены в том, что система визуализации корректно обрабатывает текстурные карты и не будет вызвано непредвиденных ошибок или предупреждений, которые иногда сильно мешают анализу процесса визуализации.

На этом все и до скорой встречи, ваш dimson3d! ^_^

Комментариев нет: