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

Light Fog

Тема в разделе "RenderMan", создана пользователем Timofey E. Penkoff, 14 мар 2002.

Модераторы: Moderator.
  1. Timofey E. Penkoff

    Timofey E. Penkoff Активный участник

    С нами с:
    10.10.2001
    Сообщения:
    89
    Симпатии:
    0
    Баллы:
    10
    Уважаемый All! Помоги решить проблему: я рендерю сцену Энтропией 3.0 через MayaMan. Нужно для одного источника света включить Light Fog. Источник - spot. Подключил к нему Light Attributes, поставил галочку Atmospheric (_foglight), к самому источнику прикрутил лайтфог... не рендерит фог, хоть ты тресни... в доке я вообще не нашел ничего. Пришлось методом тыка... подскажите, как заставить его рендерить мне свет объемный? Или хотя бы где прочитать про него? Может я в доке что-то пропустил?
     
  2. Guest

    Сильно не копал так что могу ошибаться...
    Включи фог не в маяменских атрибутах а в стандартных майских.
    Он сделает конус который пойдет в риб как объект с обычным surface
    шейдером. Короче отстоище редкостное зато быстро.
    Либо я чото недокопал либо они еще недоделали.
    Реальный volume light это типа долго если к этому
    вопросу не подойти с точки зрения мрачной оптимизации.
    ....как это сделали в мторе для prman....но засранцы сорцы
    не расшарили. Хотя там кажеться все просто...надо попробовать...mesage
    passing рулит форева.
     
  3. Timofey E. Penkoff

    Timofey E. Penkoff Активный участник

    С нами с:
    10.10.2001
    Сообщения:
    89
    Симпатии:
    0
    Баллы:
    10
    Хм. Спасибо за помощь, только вот проблема: я не умею писать рибы, и иже с ними... я совсем недавно начал юзать Энтропию и MayaMan. =( ПРМан для меня до сих пор загадка... Shading Language - такая штука, которую сходу не прорубишь... =( Как я понял, Майямэн создает свой каталог у меня в проекте. Там для каждой сцены есть еще каталоги, в которых лежат sl-файлы. Я поковырялся в mml_spotlightshape1.sl (тот источник, от которого мне нужен фог). Естественно, я ничерта там не понял... названия знакомые, параметры тоже... да вот только дописать я его не смогу. =( Вот такие вот дела... =((( Еще раз спасибо за помощь...
     
  4. Guest

    Shading Language штука прорубаемая если знаеш хотя бы
    основы програмизма и немного ферштейн по англицки.
    FAQ форума RenderMan есть ссылки на чтиво написанное
    вполне доступным языком. А что касаеться правки light шейдера
    тут все гораздо сложнее....
    Чтобы получить реальный LightFog
    (учитывающий тени от объектов, предусматривающий
    нахождение камеры внутри этого фога)
    необходимо использовать связку Light - Volume шейдеров.
    Причем Volume shader должен использовать
    raymarcher технику которая как известно счетаеться
    ой как небыстро.
    Посему волум нужно писать так чтобы рэймарш запускался
    только там где он действительно необходим а не по всей сцене
    (честно отрабатывая рэймарш но показывая его результаты только
    в пределах конуса лампочки)
    Сию проблему думаю можно решить с помощью mesge passing.
    Light shader вычисляет свои world position, world direction
    и отправляет месагу типа "я хочу волума из world position
    в направлении world direction внутри конуса с углом
    cone angle"
    Когда в какой либо sample point
    запускаеться volume shader он (внутри "fake" illuminance)
    шерстит все источник света на предмет месаги "я хочу волума",
    обнаружив таковую забирает остальное и смотрит
    "А имеет ли место быть пересечение вектора I с этим конусом"
    Если нет то свал на вогзал иначе рэймарш но только на отрезке
    пересечения. Таким образом там где фога быть неможет
    будет калькулиться токмо fake illuminance что недолго,
    а там где он есть придеться потерпеть.
    Вобщем в этой ситуации рулит здравый смысл,
    mesage passing и МАТЕМАТИКА.
    На выходных попробую.
     
  5. Guest

    Да не, имхо в волумах, описанных в ArMan-е и примененных в RATе message passing применяют по-простому, только для указания, какие именно лампочки светят "в волуме". Raymarching - штука, конечно, тормозная, но не смертельная, если конечно не задавать шибко маленький степ сайз... В общем, по-моему, время, потраченное на написание всей этой возни с мессаджами, вряд ли окупится ускорением рендеринга, кроме разве что совсем экстремальных случаев...
     
  6. Guest

    Неаааа....Посмотри как работает ратовская связка
    volumespot+volumefog
    Там где I не пересекает световой конус он просчитывает мгновенно
    а там где пересекает начинаються тормоза с рэймаршем.
    Значит пересечение всетаки ищеться. Если просто указать
    какая лампочка высвечиает волум то рэймарш будет колбаситься по всей
    сцене даже если лампочка вообще за кадром.
    Это проверенно...
    Месаги в ихней связке щимяться по полной программе :) посмотри
    там все параметры волума находятся у light шейдера.
    А вся возня то собсно заключаеться в решении системы
    уравнений прямой и конуса которые известны.
    ....потихонечку колбасю.
     
  7. Guest

    Ты прав, похоже :) Просто я тут ковырялся с одним волумом, у которого объем железно ограничен шаром, и мне как-то и в голову не приходило, что тут можно мессаджами побаловаться...
     
  8. Timofey E. Penkoff

    Timofey E. Penkoff Активный участник

    С нами с:
    10.10.2001
    Сообщения:
    89
    Симпатии:
    0
    Баллы:
    10
    Уф! Первый шок от написанного тобой отошел... появилось опасение в том, не нужно ли быть вундеркиндом, чтобы это все прорыть... =))) Спасибо большое... буду читать доку, пытаясь найти объяснение и расшифровку практически для каждой из твоих фраз... :cool: Удачи! И быстрого тебе рендера!
     
Модераторы: Moderator.

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