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

Как сделать шейдер, смотрящий в камеру?

Тема в разделе "Maya", создана пользователем Misst, 24 окт 2006.

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

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

    С нами с:
    19.02.2006
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    2
    Друзья, подскажите, пожалуйста, как сделать шейдер, "смотрящий" все время на тебя? То есть у меня есть текстурка - буква на обычном красном, например, фоне. Объект - сфера. Я хочу, чтобы с какой бы точки я ни делал рендер, буква смотрела бы прямо на меня (то есть в камеру). Что-то может с Sampler Info, узел Ray Direction наверное, только вот я не соображу к чему его коннектить?
     
  2. Миша Ершов

    Миша Ершов Мастер

    С нами с:
    02.11.2003
    Сообщения:
    1.415
    Симпатии:
    2
    Баллы:
    325
    Мне приходят в голову два способа решения проблемы.
    1 - добиться направления текстуры в камеру с помощью узла place3dTexture, который соединить с нужным нам объектом констрейном aim. Аттрибут center камеры коннектим к place3dTextur.translate. В общем смотрите рисунок. Тормозит, кстати, очень сильно :)
    2 - это управление uv координатами. Но этот способ очень кривой будет, и наврятли кому-то подойдёт :)
     

    Вложения:

    • 72586.jpg
      72586.jpg
      Размер файла:
      34,2 КБ
      Просмотров:
      44
  3. eranicle

    eranicle Знаток

    С нами с:
    24.02.2005
    Сообщения:
    228
    Симпатии:
    0
    Баллы:
    28
    а если попробывать написать скрипт, который с каждым изменением transorm камеры или же с каждым новым кадром будет проецировать текстуру планарно через камеру (polyUV>planar>mappingDirection = camera) ?
     
  4. Ghostfly

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

    С нами с:
    31.10.2005
    Сообщения:
    461
    Симпатии:
    0
    Баллы:
    16
    to eranicle да скрипт наверно не понадобиться - достаточно просто завязать куда надо положение плоскости проекции - она же по истории крутиться
     
  5. Misst

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

    С нами с:
    19.02.2006
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    2
    Поясните, пожалуйста, вашу схему 1. Я попытался воссоздать но видимо без понимания полного что за что отвечает. В частности, что делают у нас aim и projection, не могли бы вы чуть более подробно обьяснить? (никогда еще с ними не работал, ни с тем ни с другим, и на примере понять проще, чем по хелпу) Вход файла на projection и выход на шейдер всё я делал по дефолту в коннекшен эдитторе, остальное как вы сказали. Результата нет - шарик просто становится красным, буква исчезает. На последней картинке шейдер просто из самой текстурки с файлом картинки, наложенной на канал цвет и всё. Вот эта буква я хочу чтобы смотрела постоянно на камеру. Вообще это же на самом деле, как блик на шейдере любом типа блинн - смотрит на тебя все время, правильно я понимаю?
     

    Вложения:

    • 73376.jpg
      73376.jpg
      Размер файла:
      57,8 КБ
      Просмотров:
      40
    • 73377.jpg
      73377.jpg
      Размер файла:
      8 КБ
      Просмотров:
      43
    • 73378.jpg
      73378.jpg
      Размер файла:
      8,8 КБ
      Просмотров:
      41
  6. Misst

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

    С нами с:
    19.02.2006
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    2
    Изменил проджекшен с планар на перспектив и линк ту камера (перспективу) - там самым вышло что и правда смотрит на камеру моя буква, но токльо в зависимости от расстояния от камеры до обьекта. вблизи всё номарльно, подальше начинаются проблемы - расплывается, исчезает и прочее. Всё это я просто банально тыкал в разыне места, но по-прежнему не очень понимаю, что за что отвечает..
     
  7. Миша Ершов

    Миша Ершов Мастер

    С нами с:
    02.11.2003
    Сообщения:
    1.415
    Симпатии:
    2
    Баллы:
    325
    aim - это констрейн, который заставляет один объект всё время смотреть на другой.
    projection - проецирует текстуру на объект по одному из выбранных типов проекции (в нашем случае planar).

    Посмотрел - действительно, проблема присутствует.
    Решается довольно просто. Просто назначьте aim констрейн не паре place3dTexture-object, а паре camera-place3dTexture. И соответственно расконнектите камеру с объектом, и сконнектите translate объектa c translate place3dTexture.
    Получится, что узел проецирования текстуры будет всё время находится на Вашем объекте, и смотреть в сторону камеры. Т.е. по сути мы его "прилепили" не к камере, а к объекту. И глюка с искажениями уже, конечно, не будет.
     

    Вложения:

    • 73406.jpg
      73406.jpg
      Размер файла:
      39,1 КБ
      Просмотров:
      44
  8. Миша Ершов

    Миша Ершов Мастер

    С нами с:
    02.11.2003
    Сообщения:
    1.415
    Симпатии:
    2
    Баллы:
    325
    Нет, это не то. Сейчас свою сценку выложу, сами разберитесь.
    http://www.webfile.ru/1165108
     
  9. Misst

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

    С нами с:
    19.02.2006
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    2
    Спасибо большое, во всём разобрался)
     
  10. Wolf_N

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

    С нами с:
    20.04.2006
    Сообщения:
    61
    Симпатии:
    0
    Баллы:
    5
    Срок размещения файла истек и файл был удален.
    Не могли-бы выложить еще разок его ....буду оч благодарен
     
  11. Wolf_N

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

    С нами с:
    20.04.2006
    Сообщения:
    61
    Симпатии:
    0
    Баллы:
    5
    или отправить на мыло - wolf_n@normaplus.com
     
  12. Миша Ершов

    Миша Ершов Мастер

    С нами с:
    02.11.2003
    Сообщения:
    1.415
    Симпатии:
    2
    Баллы:
    325
    2 Wolf_N & all
    Выслал, но на будущее для таких просьб существуют личные сообщения.

    Предлагаю занести подобное правило в правила форума Maya.
     
  13. Михаил Куркубет

    Михаил Куркубет Знаток

    С нами с:
    07.10.2002
    Сообщения:
    545
    Симпатии:
    0
    Баллы:
    24
    По моему текстура Env Ball как раз для подобных целей подойдет. Сама будет все время в камеру смотреть, объект будет не подвижен.
     
  14. Миша Ершов

    Миша Ершов Мастер

    С нами с:
    02.11.2003
    Сообщения:
    1.415
    Симпатии:
    2
    Баллы:
    325
    В случае сферы - да. В остальных случаях - нет.
     
Модераторы: Dark™, Skif

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