Нужна помощь
22 ноября 2016 17:59
Добрый день, подскажите, а как можно определить средний цвет текстуры за вычетом черных участов? Мне для lighten нужно корректный второй цвет получить без заморочек с ручным подбором.
Не могли бы вы более подробно рассказать об этом? Вам нужно заранее узнать средний цвет текстуры?
Если да, то я бы посоветовал вам использовать утилиту ImageMagic. Мы используем её при конвертации ресурсов. Вот тут есть описание на английском. Можно написать скрипт для автоматизированного процесса поиска, если требуется знать результат для большого кол-ва текстур. Если нужна информация по одной текстуре:
convert Y82IirS.jpg -resize 1x1 txt:
Не могли бы вы сказать, какой операционной системой вы пользуетесь? Для Windows мы распростроняем эту утилиту в ужатом виде в SDK.
22 ноября 2016 18:00
22 ноября 2016 18:01
22 ноября 2016 18:03
22 ноября 2016 18:17
22 ноября 2016 18:22
Не могли бы вы более подробно рассказать об этом? Вам нужно заранее узнать средний цвет текстуры?
Я хочу нодами закрасить темные участки запекания на динамических объектах. Если там простой цвет, есть общий оттенок - можно поставить ноду лайтнинг, дать значение 0.3 и корректно подобрать второй цвет и тени закрасятся во второй цвет. Все работает, только второй цвет по умолчанию 0.5,0.5,0.5 а я бы хотел вместо тыканья пипеткой по экрану так инвертировать-подобрать-размазать текстуру, чтобы она дала нужный второй цвет - пускай там размазанный оттенок будет, но он все равно будет диффузный, корректный относительно общей цветовой гаммы.
Алексей
22 ноября 2016 18:27
22 ноября 2016 18:29
Я хочу нодами закрасить темные участки запекания на динамических объектах. Если там простой цвет, есть общий оттенок - можно поставить ноду лайтнинг, дать значение 0.3 и корректно подобрать второй цвет и тени закрасятся во второй цвет. Все работает, только второй цвет по умолчанию 0.5,0.5,0.5 а я бы хотел вместо тыканья пипеткой по экрану так инвертировать-подобрать-размазать текстуру, чтобы она дала нужный второй цвет - пускай там размазанный оттенок будет, но он все равно будет диффузный, корректный относительно общей цветовой гаммы.Можно разблюрить текстуру сильно-сильно с блюром в 500 и взять с размазанного изображения уже конкретный получившийся цвет. У меня получилось что то вроде этого.
Blend4Web и всё такое. Тридешу тридэ, моделю модели.
22 ноября 2016 18:36
Еще вопрос: а можно ли сделать сенсор на объект либо на его боундинг бокс, но чтобы он срабатывал при приближении на определенное расстояние? Сейчас заморачиваюсь с определением массива координат каждого боундинг бокса, но думаю должен быть более изящный способ??
Такая штука называется trigger volume и она очень распространена. Смотрите, можно сделать простую схему:
var _vec3_tmp = new Float32Array(3);
function check_distance(object, dest_point) {
var elapsed = m_ctl.create_elapsed_sensor();
var logic_func = function(s) {return true}
var manifold_cb = function(obj, id, pulse) {
var obj_pos = m_trans.get_translation(obj, _vec3_tmp);
var dist = m_vec3.distance(obj_pos, dest_point);
if (dist < CRIT_DISTANCE)
console.log("!!!!")
}
m_ctl.create_sensor_manifold(object, "DISTANCE_MANIFOLD", m_ctl.CT_CONTINUOUS,
[elapsed], logic_func, manifold_cb);
}
Код писал в браузере сразу, не проверял. могут быть опечатки, надеюсь, я понятно передал смысл
Тут в качестве объема для проверки используется сфера с радиусом CRIT_DISTANCE. У этого метода есть достоинтсво: не надо использовать физику и баундинги для определения нахождения объекта в сфере, но для каждого объекта надо прописывать проверку расстояния
Есть еще вариант использовать физический движок для этого (через сенсор коллизии с физическим объектом типа ghost), но я всячески стараюсь обходить использование физики, поскольку это требует дополнительной памяти
Если вам не подойдет указанный способ, то могу подробнее рассказать про физический сенсор
Вообще, я сейчас понял что надо упростить схему использования триггер волюмов