Render.ru

Render Region Script !

игорь павлов 15143

Пользователь сайта
Рейтинг
2
#1
Пожалуста дайте рабочий пример скрипта Render Region

а то по хелпу неполучется из консоли запустить рендер в заданном регионе
 

игорь павлов 15143

Пользователь сайта
Рейтинг
2
#2
как вызвать рендр регион я понял

render vfb:eek:n outputwidth:640 outputheight:480 renderType:#region region:#(0,0,20,20)

но ввести цилк неполучается

for j = 1 to 5 do
(
x=(j+1)
render vfb:eek:n outputwidth:640 outputheight:480 renderType:#region region:#(x,10,20,20)
)

пишет ошибку

-- Syntax error: at ), expected <factor>
-- In line: )

обший замысел скрипта создать с помощью render regiona что то наподобии Bucket рендера как в бразиле или Vray
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#6
Теперь есть :) Только что вернулся из отпуска. Уфф.
Причем был шанс возвращатся тем самым рейсом :(((.
Пусть земля им будет пухом. Минута ...........

Так, сейчас глянем.
Какой макс ?
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#7
У меня в восмерке приведенный фрагмент работает без ошибок !
Какой стоит рендер - сканлайн ?
Да кстати если не секрет зачем это нужно ? карасиво конечно спору нет !
Есть практическое применение ?!
Посленний макс умет делать распределенный рендер для сканлайна , при использоваении сетевого рендера, если это было конечой целью.
Правда бьет картинку не так красиво.
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#8
w = 5
h = 5
width = 640
height = 480
wst = width / w
hst = height / h
b = bitmap width height
display b
for j = 1 to h do (
h_start = (j - 1) * hst
h_end = (j - 1) * hst + hst
for i = 1 to w do (
w_start = (i - 1) * wst
w_end = (i - 1) * wst + wst
render vfb:eek:ff outputwidth:width outputheight:height renderType:#region region:#( w_start, h_start, w_end, h_end) to:b
)
)
 

игорь павлов 15143

Пользователь сайта
Рейтинг
2
#10
еше небольшой вопросик как сделать так чтоб рендер можно было прерывать а то пока он все неотрендрит его нестановить))
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#11
w = 5
h = 5
width = 640
height = 480
wst = width / w
hst = height / h
b = bitmap width height
display b
wasCancelled = false
for j = 1 to h while not wasCancelled do (
h_start = (j - 1) * hst
h_end = (j - 1) * hst + hst
for i = 1 to w do (
w_start = (i - 1) * wst
w_end = (i - 1) * wst + wst
render cancelled:&wasCancelled vfb:eek:ff outputwidth:width outputheight:height renderType:#region region:#( w_start, h_start, w_end, h_end) to:b
)
)
прерыввать нужно по Esc
 

FILA61

Пользователь сайта
Рейтинг
2
#13
В скрипте не соображаю. пояснения бы какая строчка что делает.

у меня такая задача : немогу чтобы макс рендерил мне разрешение 12000х8000 и больше. хочу рендерить 4мя кусками РЕГИОНОМ.
мож кто писанет скрипт или объясните,направьте на истенный путь.
 

FILA61

Пользователь сайта
Рейтинг
2
#14
короче как я понял рендер регион мне не поможет
дело в том что мне нужно с большим разришением отрендерить.
 

Вложения

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#16
FILA61 Для начала Включи Bitmap Pager в настройках.
Во второром случае тебе нужен не Регион а Кроп.

disconnector Пямять скорее всего уходит на хранение битмапов, нужно корректно их закрывать и чистить гарбач коллектор.
 

disconnector

Активный участник
Рейтинг
5
#17
Savin Denis ,

Попробуйте запустить скрипт и наблюдайте за памятью

1 наихудший вариант скрипта. поедает память на каждом цыкле

for i=1 to 5 do (
bm = render outputwidth:2000 outputheight:1000 progressbar:true outputfile: ("C:\\del.jpg") vfb:eek:ff
--render outputwidth:2000 outputheight:1000 progressbar:true outputfile: ("C:\\del.jpg") vfb:eek:ff
)

2 вариант. отъедает по куску при запуске скрипта. если его запускать несколько раз, то свободная память быдет уменьшаться

bm = bitmap 2000 1000 filename:"C:\\del.jpg"

for i=1 to 5 do (
render outputwidth:2000 outputheight:1000 progressbar:true to:bm vfb:eek:ff

)
close bm
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#20
Никакой утечки нет, просто таким образом работает специальная система удаления мусора - место под удаленные данные освобождается не сразу а только когда решит эта система, так как чистка буферов очень время затратный процесс. Когда нужно она все сама освободит автоматически.
В критичных случаях можно форсировать очистку командой gc()
 
Сверху