Render.ru

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

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

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

Thanks
 
#2
Здесь может быть несколько вариантов -
самый простой и надежный из которых следующий:
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
Мне кажется, можно и попроще... просто аналитически задать цвет текстуры.
1.Цвет должен зависеть не от u и v, а от их целых частей - так ты получишь цветной грид.
2.Само значение цвета нужно задавать с помощью какой-нибудь псевдослучайной функции с фиксированным начальным значением.

Типа все...
 
#4
А как внутри материала можно задать функцию? Expressions тут не пройдут - они вычисляются только раз за кадр, а не для каждой точки текстуры. Передо мной тоже стояла подобная задача, я решил ее с помощью фрактальных и рамповых текстур - правда сложноватый материал получился. Как функции-то задавать внутри материала?
 
#5
SamplerInfo выдает свойства каждой точки рендерящегося объекта ,
Поэтому прицепляя expression к нему мы каботаем не раз в кадр- а для каждой точки.Это и делает возможным тот подход, что я описал Rasul-у.

Алексей Гусев
 
Сверху