Render.ru

Как загрузить файл текстуры больших объемов?

Eugene 8262

Активный участник
Рейтинг
11
#1
Подскажите как решить задачу загрузки файлов текстур больших объемов (приблизительно 150Mb на файл).
При загрузке такого файла Maya выдает
// Warning: Texture file [Имя файла] is too big //
и потом:
Runtime Error!
abnormal program termination
 
#2
Эк ты ее радиму нагнул однако...
Даже для Черепашки, которая не в пример родным и не родным рендерам может выдать yf ujhf изображение размером 16000х16000 px, и то ПЕРЕБОР.
Не нужны такие Огромадные файлы для текстуры,- ведь на выходе будет...

Надо умирять свои аппетиты - вот и ответ на твой вопрос.

/* Ну а гогда доступная оперативка для ПС будет зашкаливать за
сотни Гигов - вот тогда и развернешься :))) */
А вообще, лучше работать с Прокси(LR) текстуркой - все летает и показывается, а в нужный(окончательный момент) подменяшь ее на HR - и все...
:)))
 

Eugene 8262

Активный участник
Рейтинг
11
#3
В том-то и дело, что <<умирять свои аппетиты>> не получиться, т.к. на выходе должен быть файл для печати постера (биг борда). Раньше все-такое делали на LightWave но если текстур использовалось много, то PC валился и приходилось рендерить на MAC. Вот и решили попробовать Maya.

Можно чуть по подробнее как в окончательный момент подменять LR на HR.

Да, и дополнительно, сколько Maya может дать на выходе?
 
#4
В любом случае тебе НЕ НУЖНЫ ТАКИХ размеров файлы текстур, при условии, что ты не хочешь срендерить фрагмент этой текстуры НА ВЕСЬ Билбоард(абсурд, если только это не будет Фон, а его проще сделать в Шопе, напр., через Lighting, и подложить под твою сцену), ну а так смотри как это можно посчитать:

Rem: Все размеры мы производим в пространстве RGB 8 bit(в CMYK-e в Майке не получится Пока :));

1) Исходный размел Билда 6х3 метра(600х300 см) ПРИ 72 dpi:
т.е. 17008х8504px.
При условии, что такие штучки печатаются на супершироких плотеррах их линеатура растра составляет, базово: 25lpi.
Теперь, ПРИ 2-х кратном запасе(классика, но избыточная) получаем:
50 pixil/inch, что снижает размер Билlа в 11811х5906px - Так?
3) в современной полиграфии, это я тебе точно гарантирую, 1,5 кратный запас это с запасом(каламбурчик :))) ), НО, что это нам дает:
Размер твоего Билда падает ВСЕГО-то до:
8740х4371px - нужной величины..., а это на весь-то постер 109Мег.
А теперь зададимся вопросом, а зачем нам таких размеров текстуры...
ЕСЛИ они хорошо ресамплируются и будут рассматриваться человечеством на рассоянии за 50 метров, А?!
Сделай сам необходимые прикидки и ответ у тебя в кармане.
Удачи!
 
#5
Можно попробовать использовать .bot текстуры.
Либо пихнуть всё это дело в ментал и использовать его спецформаты.
 

Eugene 8262

Активный участник
Рейтинг
11
#6
А как такое файло <<пихнуть всё это дело в ментал и использовать его спецформаты>> ?
 

Eugene 8262

Активный участник
Рейтинг
11
#7
Это все понятно и с математикой в порядке. Смысыл в том, что текстура - это развертка сложной пачки и ее размер (чтобы получить финальный файл с необходимым разрешением на рендеринге) должен быть 5197x12283 пикселей (182,6Mb). Плюс такая текстура не одна. Используются еще Grayscale текстуры 5197x12283 пикселей (60,9Mb). Хотя подозреваю, что они в Maya интерпретируются как Grayscale*3.
Вобщем просто нужны такие размеры.
Лучше скажи как в окончательный момент подменять LR на HR.
 
#8
:)))
Если ты решишь с размерами текстур, то это действие - тривиально, ты даже хлопнешь себя по лбу :)))
Просто из HR file сделай LR copy [с подобным именем, чтоб усердно потом не вспоминать чтоже где... :))), но с расш., к прим LR] и не насилуя Маечку, разрешение тестурки не зашкаливай за 2К - хватит и 1024 по длинной стороне).
Итак, когда все пробы сделаны, и заказчик счастлив, просто или убираешь данню LR-ку в другую папочку? а сам... просто... в AE SHadera-а перезагружаешь нужный тебе HR file вместо LR.

Ву-а-ля :)

Да, только для такого Билборда тебе Майкиного, родного разрешения все-одно не хватит... пользуй Черепашку - она и быстрее и качественнее!

Успехов!
 
#9
mental ray, у него есть свой формат текстур .map. Они не грузятся целиком в память, а по-хитрому подгружаются нужные куски. Ессно что считать это всё нужно не из майского интерфейса, а из cli.

Всё тут:
http://localhost:4448/Maya6.5/en_US/RefGuide/node20.html
 

Eugene 8262

Активный участник
Рейтинг
11
#10
>>>просто... в AE SHadera-а перезагружаешь нужный тебе HR file вместо LR

Но в этот момент опять получаешь // Warning: Texture file [Имя файла] is too big // и в конечном рендере (если не выдаст Runtime Error! abnormal program termination) картинку без текстур.

Ето не то.
 
#11
Ты меня ТОЛЬКО СПРОСИЛ, КАК подменить одно на другое...
В начале своего ответа, посмотри внимательнее, я упомянул, что:
"Если ты решил проблему с размерами своих текстур, то токда...
"
Не надо переиначивать, please.
See внимательнее, а так Решатель дает тебе ответ...
Только опять-же тебе придется разбираться не ПРОСТО с Ментал Реем, а с ВНЕШНИМ МР, а это две бо--о-о-ль-ш-и-ие разницы.

В любов случае - у тебя естьь ответ - теперь - делай выводы и вперед!

GoodLuck!
 

Eugene 8262

Активный участник
Рейтинг
11
#12
Огромное спосибо за информацию, а тем более по существу.
А кот такой cli из которого нужно все считать?
 
#13
cli - судя по всему command line interface
немного поправлю решателя, *.map текстуры вообще не грузатся в память, они всегда берутся с винта, из за этого немного падает скорость самого рендера.
Но, это нужно только в том случае если текстура не влезает в память, а 150mb помоему это не очень серьезно. Поэтому в данном случае пойдет и обычная текстура.
Так же для рендера больших изображений могу порекомендовать ментал рей 3.4 (мая 6.5) так как он лучше это делает.
 

Eugene 8262

Активный участник
Рейтинг
11
#14
Всем спасибо за решение проблемы. Все получилось. Хотя был небольшой затык с конвертацией в MAP. Работая с LightWave я привык использовать TGA формат и все карты были конечно в TGA. При конвертации их в MAP, imf_copy выдает ошибку unrecognized file format, not an image file. Но если сконвертить TGA в IFF при помощи imgcvt, а потом IFF в MAP (imf_copy) то все работает.

Пробовал рендерить на разные выходные размеры (MentalRay Standalone 3.3).
9000x9000 рендерит нормально, а при рендеринге 10000x10000 рендерит сцену но выдает ошибку при обработке ShaderGlow.
Это то, что он пишет:
JOB 0.2 progr: 0.1% rendered on XeonDP.2
...
JOB 0.6 progr: 99.9% rendered on XeonDP.6
JOB 0.4 progr: 99.9% rendered on XeonDP.4
RC 0.0 info : rendering statistics
RC 0.0 info : type number per eye ray
RC 0.0 info : eye rays 111235362 1.00
PHEN 0.0 progr: calling output shaders
PHEN 0.0 progr: maya_shaderglow(): Computing glow...
MEM 0.0 info : allocation of 653313616 bytes in C:\engserv\rbuild\45\client\Ma
ya\src\MentalRay\mayabase\src\mayaglow.c line 560 failed: flushing
...
MEM 0.0 fatal: out of memory
Rendering complete.

Что с этом делать?
Кто такой ShaderGlow и почему его нельзя удалить и за что он отвечает?

Только, если можно, белее понятнее и более подробней, для ламера.
 
#16
Просто слишком здоровое выходное разрешение и глоу не справляется.
Глоу типа всегда запускается. Хотя если использовать стенд элон его можно нахрен вырубить в ми фаиле.
Ментал рей 3.3 не очень хорошо рендерит такие большие картинки, так как он их во время рендера держит в памяти и ему может ее просто не хватить.

В данном случае наверное картинка отрендерилась, но глоу шейдеру не хватило памяти.
Что мы и видим в виде ошибки:
MEM 0.0 fatal: out of memory

Рекомендую использовать 3.4
 
#17
Чтобы вырубить глоу...
В ми фаиле просто находим камеру и удаляем строку про глоу.
Так же еще можно найти в Options блоке строку про
frame buffer 0 "+rgb"
и тоже ее удалем (это еще немного съэкономит памяти)
 
#19
Теоретически ментал 3.4 создает фрейм буфера не в памяти, а на винте, по крайней мере так написано в документации.

Хотя я провел небольшой тест, и результат немного странный.

Пробую отрендерить картинку 20 000 на 20 000
ментал тут же выдает ошибку и признается что не сможет.

Пробую отрендерить 20 000 на 15 000
Ментал создает на винте фаилы где он хранит фрейм буфера
fb000.1996 - 1145 mb
fb012.1996 - 858 mb
Количество используемой памяти при рендер доходит до 1300mb
Ментал дорендеривает, но не может создать tif такого размера.

Я отключаю буфер для глоу (buffer 0) и рендерю с тем же разрешением
Ментал соответственно создает на винте только один фрейм буфер
fb000.1996 - 1145 mb
И пик количества используемой памяти составляет 700mb
То есть делаем вывод, что глоу это зло.
Но tif все равно не записался. :(

Пробую теперь с разрешением 18 000 на 13 500
Максимально количество используемой памяти равно 500mb
tif нормально записывается (408mb) Ура.
В общем подводя итоги... максимальное разрешение которое может отрендерить ментал 3.4 где то между 18000x13500 и 20000x15000

P.S. в ментале 3.3 все было гораздо хуже :)
 
Сверху