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

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

Тема в разделе "Maya", создана пользователем Дмитрий Рамицин, 12 сен 2011.

Модераторы: Dark™, Skif
  1. Дмитрий Рамицин

    Дмитрий Рамицин

    С нами с:
    21.01.2011
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    0
    Люди, помогите кто-нибудь с проблемой:

    допустим вешаю на частицы динамический атрибут rgbPP, на который подключаю expression: particleShape1.rgbPP = rand(<<.5,.5,.5>>,<<1,1,1>>);
    по идее цвет частиц должен варьироваться от серого к белому. Однако вместо этого они становятся какими-то разноцветными... Все испробовал, ничего не помогает, но по отдельности (без rand`a) все нормально работает.
     
  2. JBond

    JBond Знаток

    С нами с:
    17.06.2009
    Сообщения:
    451
    Симпатии:
    5
    Баллы:
    37
    float $col2 = rand(0.5,1);
    particleShape1.rgbPP = <<$col2,$col2,$col2>>
     
  3. Дмитрий Рамицин

    Дмитрий Рамицин

    С нами с:
    21.01.2011
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    0
    J-Bond, спасибо, вариант хороший, но только в данном случае, когда оба цвета состоят из одинаковых "эррэев".. А когда мы имеем нечто вроде <<.6, 0, .6>>, <<1, .4, 1>>, то их только напрямую можно в rand впрягать, если не ошибаюсь. Проблема в том, что rand при выборе цвета для частицы, как бы "добавляет" свои цвета, не пойму это глюк такой или что
     
  4. JBond

    JBond Знаток

    С нами с:
    17.06.2009
    Сообщения:
    451
    Симпатии:
    5
    Баллы:
    37
    Если тебе нужно получить оттенки какого то цвета например чтобы частицы были от светлокрасного к красному открываем фотошоп и смотрим
    100% красный [255,0,0] светлокрасный [255,200,200]
    То тогда ты красный компонент не трогаешь а меняешь только зеленый и синий.
    Например так
    float $col2 = rand(0.5,1);
    particleShape1.rgbPP = <<1,$col2,$col2>>
    Ну и лучший твой друг это команда print проверяй, что у тебя получается на выходе.
    В твоем случае ты просто получаешь рандомный RGB компонент от такого вектора до такого, что дает рандомный цвет.
     
  5. Дмитрий Рамицин

    Дмитрий Рамицин

    С нами с:
    21.01.2011
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    0
    насчет оттенков я пока не заморачивался, но на будущее учту. Мне нужно было чтобы rand просто выбрал тот цвет или другой.
    print - хорошая вещь, забыл о ней) он-то и подтвердил, что "В твоем случае ты просто получаешь рандомный RGB компонент от такого вектора до такого, что дает рандомный цвет. " сам подозревал это, только не врубаюсь почему он (rand) так делает... - rand(<<.6, 0, .6>>, <<1, .4, 1>>) должен выбрать либо <<.6, 0, .6>> либо <<1, .4, 1>> и назначить выбранный цвет конкретной частице. Проверил - в одном видеоуроке gnomon`a именно такая команда работает нормально
     
  6. JBond

    JBond Знаток

    С нами с:
    17.06.2009
    Сообщения:
    451
    Симпатии:
    5
    Баллы:
    37
    А ну если тупо из двух цветов нужно выбрать
    $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. Дмитрий Рамицин

    Дмитрий Рамицин

    С нами с:
    21.01.2011
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    0
    вообще да, это я стормозил наверное - rand будет между векторами случайные числа выбирать, а не случайный целый вектор из двух..
    твой expression конечно будет работать, спасибо
     
Модераторы: Dark™, Skif

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