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

Проблема при компиляции шейдеров Maya в шейдеры En

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

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

    Даже самых стандартных surface shaders типа lambert
    sle пишет что ошибка в файле mms_lambert1.sl строке такой-то - функция indirectrays (или что-то в этом роде) не декларирована. Файл sl создается MayaMan 1.0.4, все настройки вроде прописаны верно, в PRMAN все рендерится и преобразуется без проблем (при помощи этого же MayaMan) а в Ентропии ругается! Может дело в том что МаяМен у меня довольно старый ? Сейчас вот качаю 1.0.8 может поможет. ПРи этом файл шейдера .sle естественно не создается. НО! Если выбирать шейдер НЕ маевский (который будет преобразован в RenderMan шейдер по средством Maya_magic_shader.h) а например MayaMan_Custom_shader и уже его свойства делать такие какие нужны, то все работает! То есть проблема именно в преобразовании МАЕВСКИХ шейдеров. Но странно почему PRMAN при этом не ругается! Получается что Ентропи не совсем совместим со стандартом рендермэн... бред короче
     
  2. Guest

    #include <maya_magic_shaders.h>
    surface mms_lambert1(
    float a_0_IndirectShader = 0;
    float a_0_MayaManRefractionSamples = 1;
    float a_0_MayaManRefractionBlur = 0;
    float a_0_diffuse = 0.8;
    color a_0_color = color(0,0,0);
    color a_0_transparency = color(0,0,0);
    color a_0_ambientColor = color(0,0,0);
    color a_0_incandescence = color(0,0,0);
    float a_0_refractiveIndex = 1;
    float a_0_refractions = 0;
    float a_0_translucence = 0;
    float a_0_translucenceFocus = 0;
    float a_0_matteOpacity = 0;
    ALL_SURFACE_ARGS;
    PREF_VAR;)
    {
    #pragma nolint
    SURFACE_TEMPS;
    APPLY_SLICE_PLANE else {
    uniform float v_0_IndirectShader = a_0_IndirectShader;
    uniform float v_0_MayaManRefractionSamples = a_0_MayaManRefractionSamples;
    uniform float v_0_MayaManRefractionBlur = a_0_MayaManRefractionBlur;
    uniform float v_0_diffuse = a_0_diffuse;
    uniform color v_0_color = a_0_color;
    uniform color v_0_transparency = a_0_transparency;
    uniform color v_0_ambientColor = a_0_ambientColor;
    uniform color v_0_incandescence = a_0_incandescence;
    vector v_0_normalCamera;
    uniform float v_0_refractiveIndex = a_0_refractiveIndex;
    uniform float v_0_refractions = a_0_refractions;
    uniform float v_0_translucence = a_0_translucence;
    uniform float v_0_translucenceFocus = a_0_translucenceFocus;
    uniform float v_0_matteOpacity = a_0_matteOpacity;

    LAMBERT_SETUP(v_0_);
    LAMBERT_SIM(v_0_);

    Ci = v_0_outColor;
    Oi = 1 - v_0_outTransparency;
    }
    SURFACE_DEBUG_HOOK
    }

    Ошибка в строке 19
     
  3. Guest

    PRMan не делает GI. А Indirectray - откуда-то из той области.
    Плюс это вроде пофиксено то-ли в самой энтропии, то-ли в mayaman 1.0.8.
     
  4. Guest

    MayaMan здесь ни при чем, проблема в Entropy. В Entropy 3.0R3 это пофиксено.
    Changelog:
    "Changes for 3.0 Release 3
    Enhancements:
    We have added a new SL function isindirectray() that returns nonzero if the shader is being run to shade an indirect illumination ray, otherwise zero."
     
  5. Guest

    Всем большое спасибо за ответы
     
Модераторы: Moderator.

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