Render.ru

Управление настройками Vray при помощи скрипта

Di_di_0

Активный участник
Рейтинг
5
#1
Здравствуйте! Меня интересует вопрос можно ли задать параметры рендера VRAY при помощи скрипта? Стоит следующая задача: отрендерить картинку на маленьком разрешении 640х480 и сохранить карту освещения(Irradiance map) в файл, потом отрендерить эту же картинку но сбольшим разрешением, используя ранее сохраненную карту освещения, затем повторить это для других камер.
Буду очень благодарен если поможете, потому что ойкак неохота сидеть на работе всю ночь и проделывать эти манипуляции вручную.
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#2
можно ли задать параметры рендера VRAY при помощи скрипта?
Можно, список функций можно получить:
Код:
vr=renderers.current

showproperties vr
Как отрендерить читай в хелпе по скрипту.

Для примера можно глянуть готовые скрипты на эту тему:
VrayMultiStageRender ( VrayMultiCamRender )
V-Ray Irradiance Map Pre Calc
 

Di_di_0

Активный участник
Рейтинг
5
#3
Спасибо! Практически "showproperties vr" все что было нужно, а дальше дело техники,
Немного поразбиравшись сообразил следующее:

vr = renderers.current
vr.gi_on = true
vr.gi_irradmap_preset = 1
vr.adv_irradmap_mode = 0
vr.adv_irradmap_autoSave = on
vr.adv_irradmap_switchToSavedMap = on

vr.adv_irradmap_autoSaveFileName = "d:/irmap_cam02.vrmap"
render camera:$camera01 outputwidth:640 outputheight:480 outputfile:("D:/testrender_camera02.png") vfb:eek:n

vr.adv_irradmap_mode = 2
vr.adv_irradmap_loadFileName = "d:/irmap_cam02.vrmap"
render camera:$camera01 outputwidth:1600 outputheight:1200 outputfile:("D:/testrender_camera02.png") vfb:eek:n


Вроде делает то что нужно. Достаточно просто менять номер камеры
и имя выходного файла.
Может кому пригодится. )


Готовые скрипты поизучаю еще, может еще интерфейс какой сделаю. Спасибо еще раз!
 
Рейтинг
31
#5
На самом деле, на эту тему можно вообще не заморачиваться ))

В доке на VRay сказано, что подобный финт с предварительным расчетом IR-мапы в малом разрешении эквивалентен обычному рендерингу с пониженными параметрами Min/Max rate для IR-мапы.

Предпоследний вопрос в разделе FAQ официальной on-line документации по VRay.
 

Di_di_0

Активный участник
Рейтинг
5
#7
Не знаю. Пробовал я этими min/max rate заморачиваться, результат совсем не понравился, а так (когда просчитываешь освещение на маленькой картинке) весьма достойно получается.
 

Di_di_0

Активный участник
Рейтинг
5
#8
Люди, спасайте. Вдруг очень срочно понадобилось применить это к анимации, пробую следующий скрипт:

for nf in 1685 to 1687 do
(
sliderTime = nf
vr = renderers.current
vr.gi_on = true
vr.gi_irradmap_preset = 4
vr.adv_irradmap_mode = 0
vr.adv_irradmap_autoSave = on
vr.adv_irradmap_switchToSavedMap = on
vr.options_dontRenderImage = on
vr.adv_irradmap_autoSaveFileName = "d:/temp/irmap_cam02.vrmap"
render camera:$camera01 outputwidth:240 outputheight:192 vfb:eek:ff


vr.options_dontRenderImage = off
vr.adv_irradmap_mode = 2
vr.adv_irradmap_loadFileName = "d:/temp/irmap_cam02.vrmap"
render camera:$camera01 outputwidth:720 outputheight:576 outputfile:("D:/temp/testrender_camera01"+nf+".jpg") vfb:eek:n
)


но он выдает, что не может nf в string конвертировать. Подскажите пожалуйста, как можно еще номер кадра в имя выходного файла засунуть!
 

Di_di_0

Активный участник
Рейтинг
5
#9
извиняюсь, рано панику поднял, попробовал на угад заместо nf написать (nf as string) и все заработало
 

Di_di_0

Активный участник
Рейтинг
5
#10
Здравствуйте! Вот появился еще вопрос, собственно этот глюк был и раньше с самого начала, но я на него закрывал глаза, а тут нужно вдруг стало чтоб все корректно было.
-----------------------------------------------------
renderers.current = RendererClass.classes[4]()
vr = renderers.current
vr.gi_on = true
vr.gi_irradmap_preset = 1 -- эта строчка делает very low
vr.adv_irradmap_mode = 0
------------------------------------------------------------

Так вот, выделенная строчка делает пресет very low, но начинаешь рендерить, а он рендерит как будто high т.е. считает ирмапу в 4 прохода, а должен то в 2.
если зайти в настройки рендера, и в ручную поменять на другой пресет, а потом вернуть так же вручную very low, то все становится нормально.

Тот же глюк заметил когда начинаешь менять материалы через скрипт, в частности текстуру tiles.
-------------------------------------------------------------------
meditMaterials[1] = VRayMtl ()
meditMaterials[1].Diffuse = color 239 226 198
meditMaterials[1].name = "brick_yellow_uvw400x1040"
meditMaterials[1].texmap_diffuse = Bricks ()
meditMaterials[1].texmap_diffuse.Tile_Type = 1 -- эта строчка делает running bond
---------------------------------------------------------------------
на самом деле он не делает running bond, а только пишет что сделал, нужно заходить и вручную повторять операцию.
Кто-нибудь может ли что-нибудь посоветовать?
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#11
С прессетами там через одно место сделано, у меня работает такая конструкция :
Код:
MatEditor.Open()  --open the material editor.
medit.SetActiveMtlSlot 1 true --set slot 3 as the active 
m  = Standard()
t = Bricks()
m.diffuseMap =  t
meditMaterials[1] = t
activeMeditSlot = 1
t.Tile_Type = 5
activeMeditSlot = 1
activeMeditSlot = 2
activeMeditSlot = 1
 

Di_di_0

Активный участник
Рейтинг
5
#12
Спасибо, интересная идея, по сути тоже, только через переменные. Все работает в данном случае.
Попробовал перебить на виреевский мат, и снова по старому. Пишет одно, а на самом деле другое.
-----------------------------------------------------
MatEditor.Open() --open the material editor.
medit.SetActiveMtlSlot 1 true --set slot 3 as the active
m = VRAYMTL()
t = Bricks()
m.TEXMAP_DIFFUSE = t
meditMaterials[1] = m
activeMeditSlot = 1
t.Tile_Type = 1
activeMeditSlot = 1
----------------------------------------------------------
Блин, чёж он хочет то?
 

Di_di_0

Активный участник
Рейтинг
5
#14
Т.е. Получается так?

meditMaterials[1] = t

meditMaterials[2] =m

Слушай, а для чего слоты переключать? я так понял что это просто выделение их.

А в настройках рендера с переменными проканает или там уже ничего не сделаешь?
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#15
1. Да
2. Это шаманство чтобы проклясть криворуких програмистов автодеска, еще помогает обновить параметры, не пытайся понять его умом.
3. Vray не стоит, поэтому тут помочь не могу, нужно пробовать.
Если там перессет просто выставляет параметры до корых можно добрасться через скрипт, то просто установи их сам.
 
Сверху