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

Создание двустороннего шейдера в Maya

Тема в разделе "Maya", создана пользователем _HoRn_, 21 ноя 2009.

Модераторы: Dark™, Skif
  1. _HoRn_

    _HoRn_ Пользователь сайта

    С нами с:
    12.11.2009
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    2
    Есть вопрос - как сделать 2-сторонний шейдер для рендера.
    Шейдер используется для решеток, стекла, поэтому должен поддерживать прозрачность на альфе.

    В уроке http://www.render.ru/books/show_book.php?book_id=12 много неточностей, можно разбираться, отталкиваясь от него и обсуждать его,
    но если есть возможность сделать такой шейдер через Ментал РЕй, то почему нет? А как?
     
  2. Voo

    Voo Активный участник

    С нами с:
    30.08.2006
    Сообщения:
    193
    Симпатии:
    0
    Баллы:
    14
  3. _HoRn_

    _HoRn_ Пользователь сайта

    С нами с:
    12.11.2009
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    2
    Да, это все работает для шейдеров без дырок (и http://www.render.ru/books/show_book.php?book_id=12 тоже), но все прозрачные места, отмеченные в альфа-канале, рендерятся как черные, решение для поддержки прозрачности пока не найдено. Вот на картинке - односторонний полигон ясно показывает альфу. Но ведь народ постоянно имеет дело со стеклом, решетками, даже ветвями деревьев - должен же быть способ!
     

    Вложения:

    • 1533557.jpg
      1533557.jpg
      Размер файла:
      44,8 КБ
      Просмотров:
      53
  4. sаlvador

    sаlvador Активный участник

    С нами с:
    11.05.2006
    Сообщения:
    78
    Симпатии:
    0
    Баллы:
    12
    в настройках текстуры, в разделе color balance стоит галочка Alpha Is Luminance?
     
  5. Alternative

    Alternative Активный участник

    С нами с:
    29.10.2008
    Сообщения:
    36
    Симпатии:
    0
    Баллы:
    5
    как ты дерево собираешь?.. про прозрачность не забыл?..
     

    Вложения:

    • 1534382.jpg
      1534382.jpg
      Размер файла:
      27,6 КБ
      Просмотров:
      52
  6. _HoRn_

    _HoRn_ Пользователь сайта

    С нами с:
    12.11.2009
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    2
    Не стоит
     
  7. _HoRn_

    _HoRn_ Пользователь сайта

    С нами с:
    12.11.2009
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    2
    На основе использованных материалов получил 3 разных графа, способа создания двухстороннего материала. Все они дают следующий результат при рендере. Приведу первый граф из
    http://greensoda.squarespace.com/blog/2009/6/25/create-a-double-sided-shader-in-maya.html
     

    Вложения:

    • 1539602.jpg
      1539602.jpg
      Размер файла:
      121,8 КБ
      Просмотров:
      54
  8. _HoRn_

    _HoRn_ Пользователь сайта

    С нами с:
    12.11.2009
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    2
    интересно. А один из блинов - это прозрачность? Alternative, можно поподробней? как чекер коннектится? И куда текстуру присоединить? Тут я попробовал, у меня вот такой изврат получается:
     

    Вложения:

    • 1539642.jpg
      1539642.jpg
      Размер файла:
      91,3 КБ
      Просмотров:
      48
  9. Alternative

    Alternative Активный участник

    С нами с:
    29.10.2008
    Сообщения:
    36
    Симпатии:
    0
    Баллы:
    5
    сейчас попробую поподробней..(см.рис)
    есть 2 текстуры Color_True и Color_False(связь outColor-Color_If_True\Color_If_False)..они связаны с узлом типа Cond_Color, к которому подсоединен узел SemplerInfo_Color по средством связи FlippedNormal - FirstTerm..есть также карта смешивания AlfaMask, которая подсоединена в узлу Condition_Transp - связь outColor-Color_If_True\Color_If_False. узел семплера прозрачности подключен так же как и для цвета.. в итоге все сходится в узле шейдера типа Blinn ..связи, как уже можно догадаться, Cond_Color - Color, Cont_trans-Transparency
     
  10. Alternative

    Alternative Активный участник

    С нами с:
    29.10.2008
    Сообщения:
    36
    Симпатии:
    0
    Баллы:
    5
    рисунок
     

    Вложения:

    • 1541017.jpg
      1541017.jpg
      Размер файла:
      41,2 КБ
      Просмотров:
      55
  11. _HoRn_

    _HoRn_ Пользователь сайта

    С нами с:
    12.11.2009
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    2
    Получилось

    Дано:
    Текстура с альфа-каналом
    альфа-канал = прозрачность
    двухсторонний меш
    Maya

    Требуется:
    создать двухсторонний материал с прозрачностью для рендера меша

    Решение:
    1. В Hypershade, вкладка Create Maya Nodes:
    создаем материал Blinn и натягиваем его на меш
    2. Создаем 3 узла типа File (trans, side1, side2) и в каждый в Image name вставляем нашу текстуру
    3. Добавляем 2 узла condition (cond_trans, cond_color)
    4. И создаем узел samplerInfo
    5. Cвязи: samplerInfo.flippedNormal->Cond_color.firstTerm //xor secondTerm, неважно
    6. side1.outColor->cond_color.colorIfTrue
    side2.outColor->cond_color.colorIfFalse
    7. trans.outTransparency->(cond_trans.colorIfTrue and cond_trans.colorIfFalse) //коннектим к двум сразу!
    8. cond_color.outColor->blinn.color
    9. cond_trans.outColor->blinn.transparency

    Можно рендерить
     

    Вложения:

    • 1541507.jpg
      1541507.jpg
      Размер файла:
      80,6 КБ
      Просмотров:
      48
Модераторы: Dark™, Skif

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