1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

Проблема с Mental Ray.

Тема в разделе "Maya", создана пользователем MONARX3D, 20 июл 2008.

Модераторы: Dark™, Skif
  1. MONARX3D

    MONARX3D Активный участник

    С нами с:
    03.07.2008
    Сообщения:
    92
    Симпатии:
    0
    Баллы:
    12
    Всем привет! Вот столкнулся с непонятной проблемой. Mental Ray при рендере сцены ругаеться матом :). В сцене присутствуют 6 текстур разрешением 2048x2048, 6 текстур 1024x1024, 6 текстур 512x512. 246398 полигонов.ОЗУ у меня 2Гб. При рендере используются FG + IBL с определенным цветом окружения. Изначально, рендеря модель, наложив на него простой серый мат. lambert2 -все нормально. Но потом я посоздовал для основных частей модели PSD-setы( 2048x2048-512x512) около 6.... Тут и начались проблемы. Некоторые PSD-setы заменил другим материалами с соответственными текстурами в каналах color, bump, diffuse. Но проблема так и осталась. Если назначить опять lambert2, проблема исчезает...
    Есть несколько предположений:
    1.Нехватает ОЗУ, использовано слишком много текстур высокого разрешения.
    2.MR страшно не любит PSD-set'ы.

    Вот что пишет MR в окне Output Window:
    mental ray for Maya 8.5
    mental ray: version 3.5.6.7, 22 Nov 2006, revision 19663
    mental ray: mental ray for Maya - startup done
    mental ray: got 8 satellite CPUs.
    mental ray: out of memory
    mental ray: out of memory
    mental ray: out of memory
    mental ray: out of memory
    mental ray: out of memory
    mental ray: out of memory
    mental ray: out of memory
    mental ray: out of memory
    mental ray: out of memory
    mental ray: out of memory
    mental ray: out of memory
    MEM 0.7 fatal 031008: can't allocate 22436580 bytes.
    MEM 0.7 fatal 031008: can't allocate 22436580 bytes.
    mental ray: out of memory
    MEM 0.5 fatal 031008: can't allocate 22436580 bytes.
    Помогите пожалуйста, кто знает, что это за....
     
  2. Миша Ершов

    Миша Ершов Мастер

    С нами с:
    02.11.2003
    Сообщения:
    1.415
    Симпатии:
    2
    Баллы:
    325
    очевидно не хватает памяти. :)
     
  3. DemX86

    DemX86 Знаток

    С нами с:
    04.09.2006
    Сообщения:
    615
    Симпатии:
    4
    Баллы:
    22
    Варианты решения: запускаем Render Diagnostics и смотрим на что ругается MR. Текстуры можно сконвертить в .map формат (команда imf_copy в консоли винды). А еще можно снять галку Auto Memory Limit в настройках batch render и поставить кол-во озу вручную поменьше -- рендер будет дольше, но вероятность вылета из-за недостатка памяти снизится.
     
  4. MONARX3D

    MONARX3D Активный участник

    С нами с:
    03.07.2008
    Сообщения:
    92
    Симпатии:
    0
    Баллы:
    12
    Спасибо, попробуем и отпишим :)
     
  5. MONARX3D

    MONARX3D Активный участник

    С нами с:
    03.07.2008
    Сообщения:
    92
    Симпатии:
    0
    Баллы:
    12
    Непомогло ограничение в batch render'e, но проблему я решил , поснимал все сеты с модельки, рендерит на ура :) Прийдется их юзать только для того чтоб в Photoshop'e создать по развертке текстуру :)А потом снимать сет, и накладывать мат. с соответсвенными каналами. Так как какраз этот сет и жрет памяти очень много, в n раз больше чем отдельные текстуры в каналах)От того и MEM 0.7 fatal 031008: can't allocate 22436580 bytes. :)
     
  6. MONARX3D

    MONARX3D Активный участник

    С нами с:
    03.07.2008
    Сообщения:
    92
    Симпатии:
    0
    Баллы:
    12
    Эх, блин...Сцена увеличилась в размерах, проблем также стало больше :(. Опять таже ошибка. В сцене уже используется вообщем около 80 текстур, большинство текстур 2к на 2к. В Render Diagnostics нашло около 160 Warning. Сократил их до 47, также переконвертил все текстуры в map формат. Остались только такие Warnings:
    ...............
    - file5 has a resolution of 2048x2048 which may be unefficient.
    - file8 has a resolution of 2048x2048 which may be unefficient.
    - file25 has a resolution of 2048x2048 which may be unefficient.
    - file26 has a resolution of 2048x2048 which may be unefficient.
    - file39 has a resolution of 2048x2048 which may be unefficient.
    - file40 has a resolution of 2048x2048 which may be unefficient.
    - file41 has a resolution of 2048x2048 which may be unefficient.
    .................
    Много также текстур используются не на полную.Тоесть в текстуре остается еще куча места, не считая развертку, которое не используется. Я так делал, чтоб сделать правильные пропорции текстур, другого способа незнаю, т.к. неопытный еще в этом деле...
    Подскажите пожалуйста, что еще сделать,чтоб решить проблему, ато работа почти завершена, осталось подстроить немного свет и визуализацию, работы на несколько часов, а эта ошибка недает покоя...:(((((((
     
  7. DemX86

    DemX86 Знаток

    С нами с:
    04.09.2006
    Сообщения:
    615
    Симпатии:
    4
    Баллы:
    22
    А какие числа вы ставили? Попробуйте, например, 500Мб или даже меньше.
     
  8. MONARX3D

    MONARX3D Активный участник

    С нами с:
    03.07.2008
    Сообщения:
    92
    Симпатии:
    0
    Баллы:
    12
    Последнее время не ставил(автолимит был), но когда ставил - 700 мб. И вроде же это пакетная визуализация, или это отвечает и за простой рендеринг? Попробую еще раз....
     
  9. MONARX3D

    MONARX3D Активный участник

    С нами с:
    03.07.2008
    Сообщения:
    92
    Симпатии:
    0
    Баллы:
    12
    Поставил 300 Мб, непомогло... :( Есть вариант рендерить по маленьким кусочкам картинку(Render Region), но наверняка это не совсем корректный вариант, скорее аварийный :(.
     
  10. MONARX3D

    MONARX3D Активный участник

    С нами с:
    03.07.2008
    Сообщения:
    92
    Симпатии:
    0
    Баллы:
    12
    Последнее время не ставил(автолимит был), но когда ставил - 700 мб. И вроде же это пакетная визуализация, или это отвечает и за простой рендеринг? Попробую еще раз....
     
  11. Dark™ vip

    Dark™ Administrator Команда форума

    С нами с:
    28.10.2001
    Сообщения:
    3.110
    Симпатии:
    217
    Баллы:
    1.520
    Попробуй отрендерить из командной строки, это сэкономит 500 мб - может их тебе и не хватало. Насчет кусочек - почему не корректный вариант, если такая возможность выхода из траблы есть?
     
  12. MONARX3D

    MONARX3D Активный участник

    С нами с:
    03.07.2008
    Сообщения:
    92
    Симпатии:
    0
    Баллы:
    12
    Незнаю уж...какой памяти ему может нехватать, 3.25 Гб ОЗУ. Это явно не оперативная память, хотя очень похоже. Насчет кусочков, у меня есть предположение( верное или нет - незнаю), что как-то это можно решить, делая рендер по слоям, в чем я еще толком не разобрался, т.к. нет времени. Есть конретная цель в данный момент - доделать работу. И хотелось бы показать ее тут, но уже доделанную :)

    Дело в том, что сначало у меня были все текстуры как бы PSD -сетами(писал в начале). Но памяти ест вроде как очень много(3.25 Гб? Хм...)эти сеты. Потом я поразрывал сеты, сделал текстуры JPG. Потом переконвертил их в MAP. MAP видимо ест меньше памяти, но ненамного.

    RGBam, к Вам вопрос, как к опытному пользователю, нормально ли в текстурах - если в текстуре часть покрывает развертку, а другая часть как-бы используется в холостую?
    В Warning'е пишет, что: Использован размер 2048 на 2048, который может быть неэффективен.
     
  13. Dark™ vip

    Dark™ Administrator Команда форума

    С нами с:
    28.10.2001
    Сообщения:
    3.110
    Симпатии:
    217
    Баллы:
    1.520
    Ну то, что не вся текстура используется в развертке - это нормальным назвать сложно. Попробуй срезать излишек/уменьшить или как то наложить подругому. Вообще было бы неплохо скриншот посмотреть, а то я могу чего-то не до конца понять.

    Рендер по слоям тоже выход, так как сцену на несколько более простых разбиваешь. Можно еще углубиться и на разные пассы разбить =)

    ЗЫ "RGBam, к Вам вопрос, как к опытному пользователю" - приятно, но я еще не настолько старый, чтобы со мной на Вы =)
     
  14. Fabis

    Fabis Активный участник

    С нами с:
    26.10.2006
    Сообщения:
    454
    Симпатии:
    0
    Баллы:
    16
    MONARX3D, вы странно как-то думаете насчет рендера. Во-первых, читайте HELP:
    Это объясняет почему он ругается на неэффективность использования 2048х2048 текстур
    Это говорит, что как раз-таки лучше использовать текстуры с равными сторонами. Но необходимо оптимально расположить внутри этого квадрата развертку.
    Во-вторых, в том же хелпе написано, что для текстур 2k и выше, лучший формат - EXR, MAP действительно экономит оперативку, но для сетевого рендеринга это головная боль.
    В-третьих, есть в настройках рендеринга Acceleration method: BSP2 - более эффективное применение ОЗУ при больших сценах, но стоит попробовать и Primary rendering не Scanline а Raytracing, во избежание Flushing memory.
    В-четвертых, Майа и mental ray - замечательный софт и предлагает кучу методов для рендеринга и ни один из них не считается аварийным. Можно рендерить по пассам, по слоям, по кускам, через Майю и через командную строку.
    Лично при моей проблеме я использовал рендеринг через командную строку с помощью .bat по кускам. По пассам и по слоям не хотел, так как нежелательны были проблемы с AA при рендеринге с линейным workflow и без tonemapping'a при просчете рендера
     
  15. Dark™ vip

    Dark™ Administrator Команда форума

    С нами с:
    28.10.2001
    Сообщения:
    3.110
    Симпатии:
    217
    Баллы:
    1.520
    Fabis, объясни мне тупому, что за линейный workflow. Так же "без tonemapping'a" плз )
     
  16. Fabis

    Fabis Активный участник

    С нами с:
    26.10.2006
    Сообщения:
    454
    Симпатии:
    0
    Баллы:
    16
    Linear workflow это настройка гаммы рабочего процесса. Программы, почти все работают по линейному алгоритму, но тем не менее, на заботятся о том, чтобы человек вводил и видел линейные данные. Только фотошоп из популярных программ умеет нормально обращаться с изображениями и то, только при 32-битном режиме. Но я больше люблю Nuke, он поддерживает работу с 32-битными изображениями в полной мере, лучше чем фотошоп. Поэтому все входные данные (текстуры, color picker) переводятся в гамме 2.2>1 затем при настройке рендеринга принимается решение сделать выходную гамму сразу 2.2 или оставить HDRI с гаммой 1 и перевести в гамму в конце рабочего потока, например, в том же самом, фотошопе. В любом случае надо использовать tonemapping, то есть корректировать гамму и экспозицию, к примеру с помощью одного из mia_exposure. В первом случае просто задается гамма 2.2, ну и с knee и compression для обрезания диапазона для борьбы с пересветами, во втором случае - гамма 1 и диапазон также урезается но намного меньше (knee примерно 2-3, хотя это по ситуации и compression 2-3). AA вычисляет четкость границ после определения гаммы и экспозиции. Представьте как он будет вычислять переход пикселей на границе окна с солнечным светом и стеной в HDRI картинке. Если в деталях то так, если взять в LDR картинке диапазон яркости от 0 до 1, то яркость пискеля на стене, к примеру, 0.2, а на окне 0.9-1, тогда как в HDR на стене пиксель может быть равен -0.5, а на окне 2-3, вычислить рендеру как сгладить переход между такими пикселями порой сложно. Результат - зубчатые границы. Поэтому даже при рендеринге HDR надо применять контроль яркостного диапазона, чтобы сузить этот диапазон, но ненамного, чтобы оставался простор для творчества, особенно стоит проявить внимание, если рендеринг идет по слоям или пассам, когда слои соберутся в фотошопе то ореолы будут заметны. Спрашивается, для чего вся это линейная возня? Для того, чтобы отрендерив картинку и переводя в фотошопе из HDR в LDR мы сами решали какую часть из этого широкого диапазона оставить, а какую отсечь, плюс ко всему даже если мы в сцене без текстур применим mia линзу с гаммой 2.2, то это уже будет линейный workflow потому как Quadratic Decay будет именно квадратичным и наложение двух ИС с интенсивностью 0.25 (без decay, для точности измерений) друг на друга даст яркость на картинке именно 0.5, а не 0.6-0.7 В общем, Master Zap написал пару полезных статей на этот счет и на Siggraph'e 2008 проводить лекции именно об этом будет.
     
  17. DemX86

    DemX86 Знаток

    С нами с:
    04.09.2006
    Сообщения:
    615
    Симпатии:
    4
    Баллы:
    22
    Если вы рендерите отдельный стилл, то лимит памяти необходимо поставить в настройках Render -> Render Current Frame. Ну а для пакетной визуализации соответственно в настройках Batch Render.
     
  18. MONARX3D

    MONARX3D Активный участник

    С нами с:
    03.07.2008
    Сообщения:
    92
    Симпатии:
    0
    Баллы:
    12
    Fabis, скажите пожалуйста, где я могу прочитать про этот метод? Или Вы можете написать детально, как это делается? И вот еще что, загрузил плагин для фотошопа, чтоб конвертить в OpenEXR, отконвертил файл, но Maya нехочет загружать его :(.
     
  19. tadpole

    tadpole Знаток

    С нами с:
    12.08.2005
    Сообщения:
    712
    Симпатии:
    1
    Баллы:
    24
    создаешь файл с расширением bat пишешь в нем ... render -r mr -cam (имя камеры) -s 1 -e (последний кадр) С:/(имя файла).mb

    скобки не надо писать.

    запускаешь.
     
  20. tadpole

    tadpole Знаток

    С нами с:
    12.08.2005
    Сообщения:
    712
    Симпатии:
    1
    Баллы:
    24
    -r mr -cam camera1 -s 650 -e 850 I:/eye111.mb это пример
     
Модераторы: Dark™, Skif

Поделиться этой страницей