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

-=извращщщщение=-

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

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

    Народ, ктонть догадывается, как на sl написать алгортим, который при рендеринге выдавал бы геометрическую фигуру. Можт волюметрический шейдер какой для этолго напитсать надо? А можт а рибе надо алгоритм писать? Просто нада получить объест с, настолько сложной, формулой поверхности, что даж гудини не сожрет.
    И еще, где мона взять перевод на русский этого http://www.pixar.com/renderman/developers_corner/rispec/rispec_pdf/RISpec3_2.pdf - это типа полное описание?

    Заранее огромное спасибо за ЛЮБЫЕ ответы! :)))
     
  2. Guest

    > как на sl написать алгортим, который при рендеринге выдавал
    > бы геометрическую фигуру.

    SL по своей идеологии имеет доступ к некоторым переменным внутри рендерера. Подробнее об этом - Renderman Interface v3.1 Section 12. Там они все перечислены.

    Ну так вот, в случае displacement shaders можно изменять такие переменные, как:

    P Surface position
    dPdu Derivative of surface position along u
    dPdv Derivative of surface position along v
    N Surface shading normal

    Если в результате изменения этих переменных получится некая геометрическая фигура - ну что ж, почему бы и нет.

    Также в стандарте описаны Transformation shaders, но они нигде не реализованы. Есть еще расширение стандарта - Geometric Shaders - они есть только в Angel (www.dctsystems.freeserve.co.uk).

    > Можт волюметрический шейдер какой для этолго напитсать надо?

    Нет. Все, что делают шейдеры - это окрашивают некоторую точку экрана (за исключением дисплейсмента). Более того, у волюметрика нет доступа к переменным геометрии - всё, что он может сделать, это немного подкрасить основной цвет, чтобы было "как бы в тумане".

    > А можт а рибе надо алгоритм писать?

    Нет. RIB это стандарт описания геометрии, он не прездазначен для того, чтобы в нем описывать какие-либо алгоритмы. Строго говоря, он не интерпретируется, а просто парсится потоком as is.

    > Просто нада получить объест с, настолько сложной,
    > формулой поверхности, что даж гудини не сожрет.

    Бутылку Клейна? ;-) Честно говоря, я не знаком с алгоритмами, которые невозможно реализовать в Гудини. Наверное, это от недостатка знакомства с оным. Что за формула такая?

    > И еще, где мона взять перевод на русский этого >http://www.pixar.com/renderman/developers_corner/rispec/rispec_pdf/RISpec3_2.> pdf - это типа полное описание?

    Это полное описание стандарта Renderman. Насколько я знаю, на русский язык его никто не переводит за ненадобностью - те, кому для работы он действительно нужен, хорошо понимают по-английски, не сочтите за снобизм.
     
  3. Guest

    >> Можт волюметрический шейдер какой для этолго напитсать надо?
    >Нет. Все, что делают шейдеры - это окрашивают некоторую точку экрана (за >исключением дисплейсмента). Более того, у волюметрика нет доступа к >переменным геометрии - всё, что он может сделать, это немного подкрасить >основной цвет, чтобы было "как бы в тумане".

    а вот и неправда ваша.
    см. книгу Advanced Renderman, стр. 423, раздел 15.2.2, Solid Hypertextures
    там написано как сделать объект с помощью volumetric solid shader.
    т.е. границы этого объекта вполне могут быть описаны и формулами, а просчет выполняется с помощью raymarching.
     
  4. Guest

    Я понял. Возникло некоторое недоразумение. Я говорил о volume shaders. Вы говорите о волюметриках как об эффекте вообще. Да, такие эффекты возможны, и в армане они описаны, но делаются они не через volume shaders, а через surface shaders. Да это и понятно, поскольку, по спецификации:

    file:///D:/pixar/Documentation%204.5/prman_technical_rendering/RISpec/section12.html#Volume.shaders

    всё, что может видеть volume shader:

    <input>
    P point varying Light ray origin
    E point uniform Position of the eye
    I point varying Ray direction
    Ci color varying Ray color
    Oi color varying Ray opacity
    ncomps float uniform Number of color components
    time float uniform Current shutter time

    <output>
    Ci color varying Attenuated ray color at origin
    Oi color varying Attenuated ray opacity at origin

    Вот.

    Налицо недоразумение и путаница между volume shaders и volumetric effects, достигаемых путем специализированных surface shaders. Я говорил про первые.
     
  5. Guest

    Впринципе ничто не мешает волум шейдеру полностью
    переопределить цвет и прозрачность некой точки.
    "Гулять" вдоль I можно...единственное что нужно делать
    для придания ему surface вида так ето как то калькулить нормали
    и пользовать illuminance вместо стандартных diffuse, specular
    Если бы поверхность (существует/не существует)
    а так же ее нормаль в некой точке пространства можно было бы
    описать математически то вобщем ето было бы возможно...
    вопрос в том нахрена ето надо...
     
  6. Guest

    Огромное спасибо за ответ. Эх, надо было почаще сюды заглядывать, пришлось самому допереть, что нада дисплейсмент делать.

    Нужно получить вот такие штуковины http://astronomy.swin.edu.au/~pbourke/fractals/quaternionjulia/
    в трехмере. Есть куча прог, в т. ч. povray, которые это делают, таже на турбо си с исходником, но надо-то в трехмере.

    Начал с гудини, там можно было вставлять неявно заданную функцию. Ну выботал я теорию по поводу этих 4д фракталов и получил формулв длинною в несколько страниц в мапле - не катит. Следовательно поверхность в аналитическои виде получим не скоро. Начал рендерман учить из-за наличия там sl.

    Как я понял в дисплейсменте алгоритм такой: рендерман пробегается по всем Р поверхности, и ставит вместо них своими руками запрограмированные значение, ну а N он может из P подсчитать. Осталось только расковырять исходник проги на турбо си и сотворить что-то в сл. Т. е. каждому P с поверхности, например, шара поставить в соответствие новый P и N. Пока проблем особых не вижу, тока смущает то, что нет одной волшебной формулы, которая переделает шар в эти фракталы, в лучшем случае алгоритм в пол страницы.

    Заранее спасибо за советы. Если есть идеи, то есть работенка :)))

    Вот, например, как сделать шарик из кубика или любой фигуры, но с некоторыми ограничениями:

    displacement
    spere003(float RR=1)
    {
    point A;
    point B;
    point C;
    point D;
    float R;
    A = point "camera" (xcomp(P), ycomp(P), zcomp(P));
    B = transform ("camera", "object", A);
    C = RR*normalize (B);

    P = transform("object", "camera", C);
    /* N = normalize(P);*/
    N = normalize(calculatenormal(P));
    }
     
  7. Guest

    > http://astronomy.swin.edu.au/~pbourke/fractals/quaternionjulia/

    Ну ты себе задачи ставишь ;-)

    Вот тебе линков до кучи:

    http://groups.yahoo.com/group/lightflow/message/770
    http://www.cs.ualberta.ca/~andreas/math/matrfaq_latest.html
    http://groups.yahoo.com/group/lightflow/message/171
    http://groups.yahoo.com/group/lightflow/message/417
    http://groups.yahoo.com/group/lightflow/message/124

    ну и мегалинк

    http://www.hypercomplex.org/quats.htm

    p.s. Здраво подумав, я бы эту геометрию эмитил через DSO. В нем бы считал все эти четырехмерности, а наружу выдавал исключительно геометрию. Рибовскую. Точками. Или, скорее, метаболлами.
     
Модераторы: Moderator.

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