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

radiosity

Тема в разделе "MAXScript", создана пользователем -, 1 мар 2004.

Модераторы: Savin Denis
  1. Guest

    sceneradiosity.radiosity.start()
    render()

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

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

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

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

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

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

    Savin Denis Moderator Команда форума

    С нами с:
    05.05.2005
    Сообщения:
    1.633
    Симпатии:
    0
    Баллы:
    210
    Зачем в таймеру условие окончания ?
    Просто выпоняй всечто нужно прямо внем по достижении нужных событий.
     
  3. Guest

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

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

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

    Savin Denis Moderator Команда форума

    С нами с:
    05.05.2005
    Сообщения:
    1.633
    Симпатии:
    0
    Баллы:
    210
    Scrooge, да так бужет проще

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

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

    "Compute Advanced Lighting When Required"

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

    и проблема нонсенса отпала сама собой
     
  6. Dmytro Golub

    Dmytro Golub Знаток

    С нами с:
    27.02.2003
    Сообщения:
    1.101
    Симпатии:
    0
    Баллы:
    64
    а как ты время просчета и рендера брать будешь? а то я функций не нашел :(
     
  7. Dmytro Golub

    Dmytro Golub Знаток

    С нами с:
    27.02.2003
    Сообщения:
    1.101
    Симпатии:
    0
    Баллы:
    64
    спасибо :) я так и подозревал, но думал что время рендера и radiosity хранится в каких-то переменных макса, и их можно вытащить оттуда
     
  8. Guest

    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 --вывод на печать

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

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

    Savin Denis Moderator Команда форума

    С нами с:
    05.05.2005
    Сообщения:
    1.633
    Симпатии:
    0
    Баллы:
    210
    Беру :)))
     
Модераторы: Savin Denis

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