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

хитрые текстуры!!!

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

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

    Народ, подскажите плиз как создать бесконечно большое клетчатое поле, чтобы цвет каждой клетки был случайным?

    Как манипулировать цветтами случайным образом?

    Thanks
     
  2. Guest

    Здесь может быть несколько вариантов -
    самый простой и надежный из которых следующий:
    1) вкладываешь checker в color материала(у него по умолчанию tile=4x4)
    2) вкладываешь в Color1 и Color2 этого checker-a еще по checker-у но тайл у них делаешь меньше в 2 раза т.е. 2х2 ( это для примера, хотя можно и 2х4 и 1х4)
    3) вкладываешь в Color1 и Color2 этих checker-ов еще по checker-у но тайл у них делаешь меньше еще в 2 раза т.е. 1х1 (например)
    Получится сеть из 7 checker-ов , когда задашь им разные цвета, сделаешь offset-ы place2dTextur-ам - получишь достаточно случайное клетчатое поле, цветом которого можно управлять.

    либо можно создать такую сеть -
    1) Создаешь Sampler info, Condition, SetRange, HSVtoRGB
    2) соединяешь SamplerInfo.uCoord --> Condition.firstTerm,
    a SamplerInfo.vCoord --> Condition.secondTerm,
    3) выделяешь Condition, в АтрибутЭдиторе правой кнопкой над Color1 -- и
    говоришь - CreateNewExpression. В этом экспрешшне можно ввести
    что-то типа:
    condition1.color1R=(((trunc(condition1.firstTerm*8)*
    trunc(1+condition1.secondTerm*8)+trunc(1+condition1.firstTerm*8)*
    trunc(condition1.secondTerm*8))%(8)));
    condition1.color2R=condition1.color1R;
    condition1.color2G=condition1.color1G;
    4) Теперь соединяешь condition1.OutColorR --> SetRange1.valueX
    5) В SetRange по первой колонке выставляешь Min=0,Max=360,oldMin=0,
    oldMAX=8; в последней колонке ставишь Value=1;
    6) Соединяешь SetRange.OutValue.x-->HSVtoRGB.inHsvR;
    SetRange.OutValue.z-->HSVtoRGB.inHsvG; (да да - именно z)
    SetRange.OutValue.z-->HSVtoRGB.inHsvB;
    7) Вот и все: на выходе HsvToRgb мы получили разноцветные клеточки
    с тайлом 8x8. Тайл и цвет можно менять в экспрешшне (тайл это множители в скобках)
    В принципе можно еще навыдумывать способов - ведь Майка - открытая штука для таких вещей.
    Удачи
    Алексей Гусев



     
  3. Guest

    Мне кажется, можно и попроще... просто аналитически задать цвет текстуры.
    1.Цвет должен зависеть не от u и v, а от их целых частей - так ты получишь цветной грид.
    2.Само значение цвета нужно задавать с помощью какой-нибудь псевдослучайной функции с фиксированным начальным значением.

    Типа все...
     
  4. Guest

    А как внутри материала можно задать функцию? Expressions тут не пройдут - они вычисляются только раз за кадр, а не для каждой точки текстуры. Передо мной тоже стояла подобная задача, я решил ее с помощью фрактальных и рамповых текстур - правда сложноватый материал получился. Как функции-то задавать внутри материала?
     
  5. Guest

    SamplerInfo выдает свойства каждой точки рендерящегося объекта ,
    Поэтому прицепляя expression к нему мы каботаем не раз в кадр- а для каждой точки.Это и делает возможным тот подход, что я описал Rasul-у.

    Алексей Гусев
     
Модераторы: Dark™, Skif

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