Render.ru

Что же все-таки такое параметр static, dynamic, auto?

Рейтинг
72
#1
И все же как работает этот параметр (в настройках рендера Vray system, параметр default geometry)? На практике сталкнулся с проблемой отключения 3дмакса изза перегруза в оперативке. Вообщем дело такое: Есть три компа, два компа из них имеют 8гб оперативы, проц i5. Третий комп имеет на борту 16гб оперативы, проц i7. Есть одна сцена, рендер распределен на эти три компа, в соответствии завершить рендер в одно время, то есть кадры распределенны в определенном количестве. Рендер не сетевой, каждый ваят свой виз. Рендер велся для анимации, везде поставил Static. На 16гб компе выставляю 13гб динамик мемори лимит. На двух 8гбных по 7гб. Ушел в сон. Прихожу сутреца, два компа по 8гб рендерят, но при этом юзают по 1000-1200 гб оперативы, 16гбный комп, макс вылетел, при этом отрендерив 43 кадра из 100. Хотя при старте на 16гб системе сразу в статистике рендера писано, мол используется 5гб и растет, при каждом новом кадре (я так понимаю растет она до предела 13гб, дальше в силу отстутствия свободной памяти, 3 гб юзает сама винда плюс доп. проги и пр., закрывается на глухо). Вообще как эту вещь настраивать для анимации, какие выставлять параметры. Я так и не понял, почему 16гб комп юзает всю оперативу которую я задал в динамик мемори лимит, но на 8гб компах при заданных 7гб, использует всего по 1гб. Читал что рендер забирает столько оперативы скока необходимо для определенной сцены. И пишут мол объекты в сцене, на них идет основной разход оперативы. А что произходит при анимации? По логике какоето кол-во оперативы съедается на модели, но при последующих кадра не будет же съедатся оператива на объекты для каждого отдельного кадра. И если так, то вообще в статик при новом кадре должна ли освобождаться память. В Динамик я такое наблюдал. Опишите этот процесс на каком либо простом примере пожалуйста. Я каэш пытался вникнуть, изучил статейку (http://www.render.ru/books/show_book.php?book_id=790) но все равно в ступоре, Как все таки это работает? Как?
 
#2
Ммм... В общем: для того чтобы отрендерить картинку, рендер-движку нужно знать, в какой области пространства луч, выпущенный из пикселя(имеются в виду пиксели из которых состоит финальная картинка т.е. фактически то что видит камера) пересекается с каким либо треугольником геометрии для дальнейших вычислений. Определять это можно 2мя основными путями: просчитывать каждый раз заново положения конкретных пикселей в бакете, либо же просчитать сразу всё, записать в память, и уже оттуда брать данные. 1й случай хорош тем что он почти не ест памяти. Перешел бакет на новый набор пикселей, рендердвижок определяет нужную геометрию, загружает её в память, считает, переходит к следующей. Минус в том, что при таком подходе на постоянный поиск нужных треугольников тратится достаточно много времени. Во втором случае просто записывается соответствие пикселя определённой геометрии, и движок уже не несколько раз просматривает сцену на предмет поиска нужного участка пространства, а просто обращается к сохранённой таблице что-ли, в которой уже просто получает нужную информацию. Плюс в том, что метод крайне быстрый, но на создание этой "таблицы" порой уходит значительная часть крайне ценного ресурса железа - оперативной памяти. Третий способ - авто - комбинация первых двух, когда часть пространства записывается в память, а часть обсчитывается налету. Так сказать баланс между скоростью/ресурсоёмкостью.
Если у вас рендер вылетает, это не проблема рейкаст акселератора, а проблема конкретно вашей системы, либо же настроек. Дело в том, что когда заканчивается оперативка, информация из неё перекидывается на своп(page file)- часть пространства жесткого диска использующаяся для хранения того, что не влезло в оперативку, но ещё может потребоваться при выполнении задачи. Может он просто отключен у вас? А ещё, рейкаст акселератор строится каждый раз заново, удаляя предидущий из памяти, поэтому врядли проблема в этой части рендера.
 
Сверху