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

Вопрос по slim template

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

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

    Если кто знает, подскажите как создать template shadingmodel таким образом, чтобы при конвертации в шейдер нужный мне output параметр напрямую отображался в список аттрибутов этого шейдера. То есть как в следующем примере с MyColor:

    surface MyShader(....; output color MyColor;....; )
    {
    /* begin referenced functions ----------------------*/
    ....
    /* end referenced functions ----------------------*/
    }

    Дело в том, что обычно вызов идет через referenced function и tmp переменную и получается:

    surface MyShader(.... )
    {
    /* begin referenced functions ----------------------*/
    void pxslMyShader(....; output color MyColor;....;) {....}
    /* end referenced functions ----------------------*/
    ....
    color tmp0;
    pxslMyShader(....; tmp0;....;)
    .....
    }
     
  2. Guest

    Покажи тэмплйт а то так толком ничего непонятно.
    Хотя можеш попробывать добавить
    в описание своего параматра:
    provider variable
     
  3. Guest

    Я уже пробовал добавлять provider variable, однако это не работает с shadingmodel (с lights похоже работает, я так понял для разных типов темплейтов разные парсеры).
    Темплейт показать не могу тк иначе не было бы вопросов :). А смысл такой: надо добавить выходной параметр к шейдеру чтобы после компиляции получилось приблизительно так:

    surface
    ShGlow(color Glow = color (1, 1, 1); output varying color GlowOut = color (1, 1, 1);)
    {
    Ci = Cs*Os ;
    Oi = Os ;
    GlowOut = Glow ; /* тут весь смысл*/
    }

    Смысл этого шейдера - вывести дополнительный параметр глоу в отдельный файл. Тогда можно будет постпроцессом делать глоу-обьекты (как в мае). Или, например, делать хитрый мэйт за один проход рендеринга. Темплейт нужен чтобы, использовать все преимущества mtor-a.

    Кстати неплохо бы иметь софт позволяющий накладывать, например, AE-шные фильтры из командной строки ;), может кто знает такой?
     
  4. Guest

    Возможно я сейчас скажу какуюнибудь глупость но....
    Поскольку речь идет о законченом surface шейдере то
    попробуй использовать метод Dinamic RSL chuncs
    (output " бла бла бла ") . Собственно в доке так и написано что случай когда надо применять этод метод - RSL shaders
    Смотри пример с blacklight
     
  5. Guest

    Я идиот! (немного здоровой самокритики не помешает :)). Спасибо за то, что ткнул носом в доку.
    Я по началу все сделал правильно, за исключением того, что по невнимательности описал динамический темплейт как статический: вместо "template surface ...." написал "template shadingmodel ....". Соответственно ни чего и не компилялось. А как прочитал: "..RSL shaders.." все сразу сообразил. Мои благодарности :)
     
Модераторы: Moderator.

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