Render.ru
Поддержать

radiosity

  • Автор темы Гость
  • Дата создания

Гость

sceneradiosity.radiosity.start()
render()

При просчёте радиосити и последующем рендере часть картинки рендериться "без" а часть "с" радиосити
То есть render не хочет ждать окончания просчёта радиосити

Ключевое слово "radProcessInRenderOnly" нашёл , но как оно будет выглядеть в скрипте не могу понять
Как я понимаю- надо запустить цикл по времени, с ежесекундной проверкой "radProcessInRenderOnly" на true

Если использовать Timer, то там нет условия окончания

Если просто через for то не совсем понятно как там пользоваться time. Так как все примеры по тайм связанны с анимацией, а здесь просто счёт.

Можно сравнивать последующие и предыдущие "Elapsed time" и если они не равны то продолжать ждать, но как их вытащить, непонятно

В общем, притормозил я немного, подскажите Please

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
Зачем в таймеру условие окончания ?
Просто выпоняй всечто нужно прямо внем по достижении нужных событий.

Гость

Дык я задумал и по параметрам радиосити закрутить цикл, а так к ним и не вернуться

Но я думаю с таймером не очень хорошая у меня идея, это ведь паралельно с просчётом радиосити должен постоянно крутиться цикл на проверку условия

здесь ещё вот что непонятно как может начать работать оператор render, если предыдущий оператор "radiosity" ещё не закончил- это ведь нонсенс

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
Scrooge, да так бужет проще

Dmitro Golub,
start = timeStamp()
process_mesh() -- do some big job
end = timeStamp()
format "Processing took % seconds\n" ((end - start) / 1000.0)

Гость

Всё нашёл
Скрипт не доделал, но понял куда надо копать

"Compute Advanced Lighting When Required"

и не надо никаких циклов по времени
и radprocessinrenderonly тоже не нужен

и проблема нонсенса отпала сама собой

Dmytro Golub

Знаток
Рейтинг
64
а как ты время просчета и рендера брать будешь? а то я функций не нашел 🙁

Dmytro Golub

Знаток
Рейтинг
64
спасибо 🙂 я так и подозревал, но думал что время рендера и radiosity хранится в каких-то переменных макса, и их можно вытащить оттуда

Гость

Denis !
Возьми в соавторы, а я дополню ещё пару строчек.

secundivse=timeStamp()/1000 --общее кол-во секунд с начала
ned=floor(secundivse/3600) --кол-во часов (вещественное)
ostatok1=mod secundivse 3600 --остаток секунд после отнятия часов
nedmin=floor(ostatok1/60) --кол-во минут (вещественное)
ostatok2=secundivse-ned*3600-nedmin*60 --кол-во секунд (вещественное)
nedin=ned as integer --кол-во часов (целое)
nedminin=nedmin as integer --кол-во минут (целое)
ostatok2in=ostatok2 as integer --кол-во секунд (целое)
format "Total %:%:% \n" nedin nedminin ostatok2in --вывод на печать

переменные только поменяйте, кто будет пользоваться

Это всего лишь приукрас, до авторской идеи не дотягивает , конечно, но........