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

particles runtime expr + file texture

Тема в разделе "Maya", создана пользователем -, 7 апр 2003.

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

    есть particles, излучаемые поверхностью.
    есть текстуры file1, ramp1.
    для particles есть creation expression:
    ramp1.uCoord = particleShape1.parentU;
    ramp1.vCoord = particleShape1.parentV;
    print (ramp1.ocr + "\n"),
    которое распечатывает значение красной составляющей точки текстуры по
    координатм, соответствующим UV координатам новорожденной частицы...
    все работает!!!

    но....
    как только захочем получить ту же информацию от file1:
    file1.uCoord = particleShape1.parentU;
    file1.vCoord = particleShape1.parentV;
    print (file1.ocr + "\n"),
    получим одни нули, что никак не соответствует изображению в file1 :(

    люди добрые...
    помогите...
    не обойдите стороной...
     
  2. Guest

    в сабже, конечно, "particles creation expr + file texture", но это не важно...
     
  3. Guest

    Так не получится сделать, к сожалению...по крайней лично я способа выборки цвета в нужных мне uv-coords у файловых текстур так и не нашёл. В процедуралках всё работает.
     
  4. Guest

    Ну, если нужно получить цвет файловой текстуры, соответствующий u v в креашн экспрешн,то это можно сделать примерно следующим образом.
    Частицам добавляем rgbPP. Включаем в эмиттере пипку inherit color (это в texture emission attributes) и на particle color кладем ту же текстуру, что и на поверхности, с которой происходит эмитирование.
    Теперь в креашн экспрешене можно распечатать parentU, parentV, rgbPP . Если нужно, то это самое rgbPP можно в том же экспрешене в конце поменять.
    Работает и с процедурными и с файловыми текстурами...
    Почему-то в 4.5 это так.....
     
  5. Guest

    В 4.5 можно сэмплить файловые текстуры? 8-0
    То есть - на вход UV, на выходе - цвет??
     
  6. Guest

    Секундочку, давайте разделим вопрос сэмплирования файловых текстур как таковых и креэйшн экспрешн в описанной выше ситуации.
    А именно, если есть частицы, эмититующие с поверхности, текстурированыой файловой текстурой, то в момент рождения этой частицы можно получить u, v координаты точки рождения частицы и цвет текстуры поверхности в этой точке. Независимо от того, файловая это текстура, процедурная или целый шэйдер нетворк. Сделать это можно описанным мной способом.
    Кстати, подобным образом делались эффекты в фильме "Куда приводят мечты"
    О сэмплировании файловой текстуры безотносительно к чему бы-то нибыло речь не шла.
     
  7. Guest

    2 Злыдень:
    да, мне в конце концов после долгих мучений только это и пришло в голову.
    но, если частицам нужно придать, скажем, несколько характеристик разными
    файл-текстурами, то решение далеко не будет простым и явным :(

    2 Joss:
    я впервые столкнулся с проблемой выборки цвета в случае с creation expression.
    подумал, может не срабатывает, потому что внутри выражения... :)
    и очень удивился, когда это у меня не получилось и командами MELа...
    иногда это очччччень нужно, правда? :)
    похоже Maya начинает обрабатывать файл-текстуру только во время рендеринга.
    тогда почему работает связывание файл-текстуры с particle color & texture rate
    у emitter?
    что интересно, в этом случае видимых связей на входе файл-текстуры нет.
    (texture placement node не требуется, его можно убить...)

    я не вижу этому логического объяснения...
    может видит кто?
     
  8. Guest

    Есть у меня одно подозрение, почему это происходит. Может быть, оно даже верное... Суть вот в чем.
    Любая майская нода - это "черный ящик" с входными и выходными атрибутами. (Это мы все знаем). Для этих атрибутов специальным образом организована система зависимостей, а именно, если атрибут А обновился, то должен обновиться атрибут Б. Точнее, если атрибут Б нуждается в обновлении, то нужно посмотреть, а не изменился ли атрибут A. В случае процедурных текстур атрибут цвета генерится непосредственно внутри узла и uv и цвет естественным образом связаны в зависимость.
    В случае файловых текстур, что мы знаем. Только имя файла. Значит, чтобы по uv получить цвет мы должны сначала прочитать файл текстуры (ведь на диске и в памяти файлы могут не совпадать.) Поэтому прямой зависимости между uv и цветом нет.(Работало бы иначе все нечеловечески долго).
     
Модераторы: Dark™, Skif

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