Render.ru

проблема с функцией rand на rgbPP

#1
Люди, помогите кто-нибудь с проблемой:

допустим вешаю на частицы динамический атрибут rgbPP, на который подключаю expression: particleShape1.rgbPP = rand(<<.5,.5,.5>>,<<1,1,1>>);
по идее цвет частиц должен варьироваться от серого к белому. Однако вместо этого они становятся какими-то разноцветными... Все испробовал, ничего не помогает, но по отдельности (без rand`a) все нормально работает.
 
#3
float $col2 = rand(0.5,1);
particleShape1.rgbPP = &lt;&lt;$col2,$col2,$col2&gt;&gt;
J-Bond, спасибо, вариант хороший, но только в данном случае, когда оба цвета состоят из одинаковых "эррэев".. А когда мы имеем нечто вроде <<.6, 0, .6>>, <<1, .4, 1>>, то их только напрямую можно в rand впрягать, если не ошибаюсь. Проблема в том, что rand при выборе цвета для частицы, как бы "добавляет" свои цвета, не пойму это глюк такой или что
 

JBond

Знаток
Рейтинг
33
#4
Если тебе нужно получить оттенки какого то цвета например чтобы частицы были от светлокрасного к красному открываем фотошоп и смотрим
100% красный [255,0,0] светлокрасный [255,200,200]
То тогда ты красный компонент не трогаешь а меняешь только зеленый и синий.
Например так
float $col2 = rand(0.5,1);
particleShape1.rgbPP = <<1,$col2,$col2>>
Ну и лучший твой друг это команда print проверяй, что у тебя получается на выходе.
В твоем случае ты просто получаешь рандомный RGB компонент от такого вектора до такого, что дает рандомный цвет.
 
#5
насчет оттенков я пока не заморачивался, но на будущее учту. Мне нужно было чтобы rand просто выбрал тот цвет или другой.
print - хорошая вещь, забыл о ней) он-то и подтвердил, что "В твоем случае ты просто получаешь рандомный RGB компонент от такого вектора до такого, что дает рандомный цвет. " сам подозревал это, только не врубаюсь почему он (rand) так делает... - rand(<<.6, 0, .6>>, <<1, .4, 1>>) должен выбрать либо <<.6, 0, .6>> либо <<1, .4, 1>> и назначить выбранный цвет конкретной частице. Проверил - в одном видеоуроке gnomon`a именно такая команда работает нормально
 

JBond

Знаток
Рейтинг
33
#6
А ну если тупо из двух цветов нужно выбрать
$qqq= <<0,0,0>>;
$www = <<1,1,1>>;
$ran = rand (0,10);
if ($ran >5)
particleShape1.rgbPP = $qqq;
else
particleShape1.rgbPP = $www;

Лучше сразу справку читать если чтото непонятно
Synopsis

rand [string|int] float|vector [float|vector]
The vector version generates an independent random number for each of the three components.
 
#7
вообще да, это я стормозил наверное - rand будет между векторами случайные числа выбирать, а не случайный целый вектор из двух..
твой expression конечно будет работать, спасибо
 
Сверху