Вопросы по API

08 мая 2015 15:48 #2327
Я понял! B4W поддерживает ограниченое количество цветов

Мои догадки верны? цвета RGB [240, 202, 0] для B4W не существует?

Люди! Спасите!
Неужели придется в блендере заводить 300 материалов и "инхеритом" перетягивать?
Коплю деньги на коммерческий B4W.
08 мая 2015 17:15 #2331
Добрый день.

Я поизучал все это дело и понял, что, к сожалению, я ввел вас в заблуждение. Координата цветности существует от 0 до 1, а не до 255. Приношу вам свои извинения за это.

Сделал демонстрационный пример с использованием этого функционала:
example_21.zip
Разработчик Blend4Web
08 мая 2015 17:37 #2333

Ответ на сообщение пользователя Семенцов Роман
Добрый день.

Я поизучал все это дело и понял, что, к сожалению, я ввел вас в заблуждение. Координата цветности существует от 0 до 1, а не до 255. Приношу вам свои извинения за это.

Сделал демонстрационный пример с использованием этого функционала:
example_21.zip
А я уж было испугался, что зря головой об стену бьюсь уже три недели. ТОгда каким образом производить конвертацию из RGB и HEX не понятно и в каком виде передавать? К примеру, есть цвет (240, 180, 50). Я так понимаю, что для Б4В значения будут делеными на тысячу? В таком виде он их "скушает" (0.240, 0.180, 0.050)?
Коплю деньги на коммерческий B4W.
08 мая 2015 17:43 #2334
как в конструкции
var rgb = Float32Array([240, 180, 50]);

Отразить то, о чем Вы написали выше? Ибо функционал допилен. Затуп только в этой строчке
Коплю деньги на коммерческий B4W.
08 мая 2015 18:18 #2335

Ответ на сообщение пользователя Йеджи Заборовски
как в конструкции
var rgb = Float32Array([240, 180, 50]);


Отразить то, о чем Вы написали выше? Ибо функционал допилен. Затуп только в этой строчке

240 / 255
180 / 255
50 / 255

Поделить все значения на 255
Разработчик Blend4Web
08 мая 2015 22:36 #2338

240 / 255
180 / 255
50 / 255
А ларчик просто открывался…
соответственно, округление до 3 знаков после запятой, в десятичном виде:
240/255 = 0.941

То-есть:
var rgb = new Float32Array([0.941, 0.941, 0.941]);

Вместо:
var rgb = new Float32Array([240, 240, 240]);
Коплю деньги на коммерческий B4W.
08 мая 2015 23:51 #2339
Спасибо! Работает!
Коплю деньги на коммерческий B4W.
09 мая 2015 18:45 #2341
Нестыковочка по переводу.
Делить нужно не на 255, а непонятно на что впринципе.
Я обнаружил несоответствие цветов при переводе по схеме RGB/255.
Пример:
1. Взяли цвет RGB 204,197,143
2. При делении каждого числа на 255 получается: 0.941, 0.772, 0.560 (это оттенок серого)
3. переводим цвет RGB 204,197,143 в HEX - CCC58F и запихиваем в Блендер.
4. Получаем нужный оттенок оливкового с цифрами: 0.604, 0.558, 0.275

0.941, 0.772, 0.560
0.604, 0.558, 0.275

Вот такая арифметика.
Коплю деньги на коммерческий B4W.
09 мая 2015 20:47 #2342
Первое число должно быть: 204/255 = 0.8. А дальше нужно учитывать такую хитрую вещь как гамма-коррекцию. Каналы цветности в блендере (а значит и в движке) определены в линейном пространстве. Каналы, задаваемые с помощью HEX - нелинейные (!!!). В браузере через CSS, а также в графических программах цвета задаются в нелинейном пространстве. Для перевода нужно использовать гамму: 0.8^2.2 = 0.612, так и получается нижняя строчка из верхней.

Подробнее про гамма-коррекцию здесь
Команда Blend4Web
https://twitter.com/AlexKowel
10 мая 2015 20:24 #2345

0.8^2.2 = 0.612,
Это 0.8 в степени 2.2?
Коплю деньги на коммерческий B4W.
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.