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

к самым профи :-))

Тема в разделе "RenderMan", создана пользователем -, 23 сен 2002.

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

    Можно при помощи RI задать поверхность математической формулой
    например x*x + y*y + z*z -1=0 или x*x/y+ y*sqrt(y) + sin(z+y) -1=0, и визуализировать эту поверхность?
    ОЧЕНЬ интересно.



    За самом деле надо визуализировать более сложную поверхность, которой по умолчанию не сущ., в отличие гиперболоида и параболоида.



    В techref.pdf к энтропийке читал, что есть полигоны, сплайны (control points), quadrics (параболоиды, торы ...), и процедурныые примитивы. Последние ктонть пробовал юзать?

    и еще в файле ri.h есть строчка void RiProcedural (RtPointer data, RtBound bound, RtProcSubdivFunc subdivfunc, RtProcFreeFunc freefunc); - можт это оно?
     
  2. Guest

    можт RIB Generators надо изпользовать?
    подскажите плз.
    dso?
     
  3. Guest

    Процедурные примитивы там вроде как только самые простые - типа сферы, цилиндра, тора, куба итд итп.
    Если нужно вот прямо так формулу ввести и получить результат, то это либо Houdini - там есть IsoSurface SOP(кажется так назывался), либо какой-нть специализированный софт типа Graphing Calculator(если кто увидит "пофиксенную" версию - свистните плс....а то он $60 стоит 8-[ o ] ).
     
  4. Guest

    Да Joss, так и называется, в точку.
    Это уже делал, но в гудини можно получить только приближенные фигуры с очень маленькой точностью, худини выдает, согласно уравнению, полигональную поверхность, но при нужном количество полигонов любая видюха садится, а рендер виснет, т. к. поверхность состоит из множества маленьких кусочков. (Наример поверхность, визуализацию которой дает плагин к АЕ KPT4 frax4d).

    Почитал мануалы с рм, а также некоторые *.с и *.h файлы.
    Павильно, ли я понял что:
    1. в кипе файлов *.с и *.h специальным образом задаются типы поверхностей и способ их визуалзации?
    Нашел там алгоритмы для патчей, полигонов, а также какие-то слова по поводу, что:
    2. любой желающий может задать свой тип поверхности, скомпилировать свои файлы в *.sli и генерит любые рибы, подключая нужные библиотеки.

    фиг знает, можт 13 октября ктонть подскажет :)))
     
  5. Guest

    Компилить то можно, только в *.sli то зачем?
    Можно написать на Си програмку используя функции из библиотеки librib.lib,
    по какому нить алгоритму вычислить точки поверхности и правильно подставить их в вызов соответствующей функции. Потом можно назначить материал, создать источники света, настроить камеру и т.д. для каждого фрейма.

    Потом, слинковав с нужными библиотеками, получить исполняемй модуль, который будет выдавать в stdout чистый rib. Его можно направить на вход PRMan-a и отрендерить. Этот подход описывался в RenderMan Companion и в Examples, что идут с PRMan-ом.

    Но ведь есть Maya, mtor. У Майи есть API, mel наконец. При знании матаппарата и некотором копании в доке, можно написать скрипт или плугин с человеческим интерфейсом и генерить поверхности непосредственно в моделере.
    Для примера, на Highend-е был скрипт FunctionCurve, строящий кривые по уравнению.
     
  6. Guest

    Пара вариантов
    Сделать 2 исо
    1 - с маленьким division и установленым Display Flag
    (для манипуляций во вьюпорте)
    2 - с division поболе и установленым Render Flag
    (будет генериться только для (и во время) рендера)
    Кстати division можно завязать на дистанцию до камеры.

    Или сохранить Hi Res как bgeo и использовать Bounded File режим.
    для сопа использующего LoRes.
    Вконце концов можно (если мат точность не так критична)
    установить флаг Geometry as subdivision (а там еще много вариантов есть)
    для модели c MiddleRes.
    Для маниаков можно ипользовать LoRes модель с прицепленым дисплейсом
    который будет додисплейсивать лорес до хайреза.
    (Ну тоесть не не P = P + Чототама * Nn а внаглую P = Мое Уравнение)
    Но тут придется конечно писать решатель этих самых уравнений.
    (смутно себе представляю)
    Или ваще написать VolumeISO шейдер использующий принцип
    hippertexture и реймарша. На мой взгляд самый приемлимый
    (и легко реализуемый) вариант.
     
  7. Guest

    В общем, если не пользоваться Mel или Houdini и делать всё ручками, то путей я вижу 3:

    1. Писать процедурный геометрический DSO
    2. Писать генератор рибов, который будет генерить геометрию необходимой плотности по уравнениям
    3. Писать displacement shader, который будет делать P=нужное уравнение.

    Как говорится, все работы хороши, выбирай на вкус.

    > 2. любой желающий может задать свой тип поверхности,
    > скомпилировать свои файлы в *.sli и генерит любые рибы,
    > подключая нужные библиотеки.

    SLI тут ни при чём. Это формат Slim'а.

    > фиг знает, можт 13 октября ктонть подскажет :)))

    Так что там будет 13 числа? :)
     
  8. Guest

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

    Естественно, а как ещё можно описать произвольную поверхность? Нурбами? сомневаюсь, ибо у нурбов достаточно ограниченные топологические возможности...остаются полигоны....другое дело, что SideFX, в общем, мог бы потрудиться и оптимизировать всё это(ну например резать всё, что не во вьюпорте, а остаток сэмплить по полной), правда тоже задача нетривиальная...

    1. Не совсем так....все эти .c просто-напросто выдают простой риб, который потом и рендерится. Просто вместо вбивания руками "Display ля-ля-тополя" вы можете написать нечто типа(псевдокод):
    for i in range(10)
    {
    RiDisplay ( "outfile_" + i );
    }
    и получить в рибе:

    Display "outfile_1"
    Display "outfile_2"
    Display "outfile_3", ну итд итп...

    2. Э-э-э...это ихде там такие слова? Может имелись в виду DSO, а не SLI, поскольку SLI - это вроде как язык описания параметров компилированных шейдеров для Glimpse и Slim(я могу ошибаться, но вроде так - Kidd?)
    К тому же сделать любой тип поверсти....хмм.....в Renderman'е нету такого понятия - "некая абстрактная поверхность". Есть полигоны, сабдивы, нурбы, кривые....то есть нельзя взять, и вдруг придумать свою собственную поверхность.
    Однако можно взять и нагенерить в каком-нть сишнике гигантский риб, который PRMan должен проглотить - он же умеет оперировать с большими объёмами данных....ну то есть гнать данные не из пакета моделирования, а прямо рибгеном их генерить.....

    PS: А что случится 13-го октября?
     
  9. Guest

    С большим кол-вом полигонов боюсь ПРман не справится - не любит он много мелкой геометрии.

    ЗЫ. 13 октября, гворят, будет очередная Виагра
     
  10. Guest

    Если полигоны 4-угольные, то он их все равно рендерит как бикубик патчи, так что разницы особой нет...
     
  11. Guest

    Более того если они треугольные он их все равно рендерит как патчи :) Именно про это я и говорю - прман не любит большое кол-во отдельной геометрии.
     
  12. Guest

    Если поверхность действительно такая, что нурбсами ее никак, но известен алгоритм сэмплирования и разбиения на кучу мелких патчей - полигонов или бикубиков - (а формула - как раз такой алгоритм и есть) - RiProcedural - самое то. Почитай RiSpec3.2, там все подробно. По сути это примерно то же самое, что писать С-шный код с ri.h и libribout, только он будет исполняться "на лету", не забивая винт громадными рибами.
     
  13. Guest

    Ну-у-у....ну можно сделать нечто среднее по плотности и сделать его сабдивом......только ета.....квадранглы придётся генерить..... ;)
    Вообще - что за задача-то такая, для которой нужно отрендерить _точную_ поверхность?
     
  14. Guest

    > Вообще - что за задача-то такая, для которой нужно
    > отрендерить _точную_ поверхность?

    Не знаю, как в данном случае (подозреваю, что не всё так плохо), но в научной визуализации всё именно так и есть - нужно именно то, что говорит формула. Ну или, как вариант - именно так, как показал долбанный спектрофотометр (пример из реальной университетской жизни :)
     
  15. Guest

    Огромное спасибо всем за ответы.

    Конечно, обычной геметрией, поверхность их нескольких тысяч кусочков не построишь (она процедурная, с итерациями)

    Дисплейстментом тож не получилось.
    Задача получить Точную поверхность, которую выдает долбанный не спектрофотометр, а другой прибор, но это тоже из реальной университетской жизни (физфак 4к:))).
    А кроме того вот такое: http://astronomy.swin.edu.au/~pbourke/fractals/quaternionjulia/
    Такие поверхности строят разнывет проги, (povray, у меня есть код проги на си, котороая тоже это делает), но надо в 3d.
    Эту фрактальную поверхность выдает плагин к АfterEffects KPT5 frax4d, он строит, например, 240*320 полигончиков и рендерит их, сдледовательно:

    для таких вещей надо писать генератор рибов,
    который будет генерить геометрию необходимой
    под рендер плотности, по уравнениям, т. е. по
    полигончику на пикселу отрендеренной картинки
    и непосредственно при рендере. ртфм :)))


    Кстати, как 13 октября - воскресенье, а семинары обычно в субботу!?
     
  16. Guest

    анрил.....что я помню из доки по pov-ray, так это то, что эти самые обалденные фракталы - суть проекция из четырёхмерного пространства на трёхмерное.....всего-то.... ;)

    И, насколько я понимаю, принцип рендера таких объектов - как раз гипертекстурный, то есть это не совсем реальная геометрия.....
     
  17. Guest

    http://www.affine.org/menger.html
     
  18. Guest

    ухты, это ж кстати и есть фрактальная поверхность, у меня правда другая, но все равно, спасибо за линк!
     
  19. Guest

    Jinn - а ты попробуй, обьяви майский cloth сабдивом и порендери его...у меня в своё время получалось нечто вроде дуршлага.....PRMan страдает глючностью на сабдивах с треугольничками....
     
  20. Guest

    Странно... Я, правда, cloth в сабдивы превращать не пробовал, но все мои сабдивные модели (в том числе и с кучей треугольников) рендерились прекрасно. Имхо дело скорее в некорректной конвертации cloth-овых треугольников мтором...
     
Модераторы: Moderator.

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