Операторы для ARGB25.09.2025, 21:15. Показов 13860. Ответов 65
Метки нет (Все метки)
Добрый день
Спасибо
0
|
|||||||||||
| 25.09.2025, 21:15 | |
|
Ответы с готовыми решениями:
65
JPEG -> ARGB -> DXT5
|
|
Нарушитель
6323 / 3050 / 1054
Регистрация: 01.06.2021
Сообщений: 11,661
|
|||
| 26.10.2025, 17:20 | |||
|
Не по теме:
При аддитивном смешивание красного, зеленого и синего должен получиться белый цвет. Вот иди в магазин, купи красок этих трех цветов и смешивай их в своих ведрах. Ты думаешь, что получишь краску белого цвета? А ведь именно белый цвет должен получиться при аддитивном смешивании красного, зеленого и синего цветов. При смешивании красок этих трех цветов в реальности ты получишь нечто близкое к черному. Именно то, что описывается субтрактивными цветовыми моделями. Если это просто смешивание, то значит нужно вычислить среднее арифметическое (0.8, 0.75, 0.0, 0.0). Это если представлять прозрачность как "воду" и если сама "краска" не содержит воды. Пишу вашими терминами: "краска", "вода"... Если это наложение, то тут уже имеет значение какой цвет сверху / снизу. Например, если c1 сверху, то получится (1.0, 0.5, 0.0, 0.0) - то есть с1 и это логично, ведь непрозрачный с1 полностью перекроет с2. Если с2 сверху, то тут получится новый цвет, а именно (1.0, 0.8, 0.0, 0.0) согласно Photoshop, (1.0, 0.847, 0.0, 0.0) согласно GIMP. Как понимаю, существуют разные формулы для альфа-композитинга.
1
|
|||
| 26.10.2025, 22:06 [ТС] | |||
|
c1 = (1.0, 1.0, 0, 0); // red c2 = (1.0, 0, 1.0, 0); // green c3 = (1.0, 0, 0, 1.0); // blue result = (c1 + c2 + c3) / 3; Сумма = (3.0, 1.0, 1.0, 1.0), но это совсем не белый цвет. Это кол-во чистой краски (alpha = 3.0) и кол-во каждой RGB компоненты в трех литрах смеси в ведре. Делим на 3, смысл операции - просто разливаем содержимое ведра в 3 литровых бутылки. Итого в литре смеси result = (1.0, 0.333, 0.333, 0.333) Вполне себе "нечто близкое к черному". Как видите, смешивание и аддитивность - разные вещи. А как уверенно Вы утверждали! ("иди.. купи.. ты думаешь" и.т.д.) . В общем, "ничто не обходится так дешево.." (дальше знаете)Не по теме: Хотя субтрактивная - тоже интересная вещь. Напр у нормальных людей 3 альфа канала (а не один). Но здесь речь не о ней
0
|
|||
|
Нарушитель
6323 / 3050 / 1054
Регистрация: 01.06.2021
Сообщений: 11,661
|
||
| 26.10.2025, 23:21 | ||
c2 = (1, 1, 1, 0) желтый result = (c1+ c2) / 2 = (2, 1, 1, 1) / 2 result = (1, 0.5, 0.5, 0.5) получаем серый цвет, тогда как при смешивании красок должен получиться зелёный (как это в субтрактивном смешивании). Твоя формула не работает. Садись, двойка! Я тебе ещё раз повторяю. Иди купи красок трех цветов в магазине и смешивай в ведрах, - ты поймёшь, что аддитивная цветовая модель RGB не подходит. Именно по этой причине струйные принтеры используют CMYK. Чернила там четырех цветов - циан, пурпурный, жёлтый и черный, поскольку это субтрактивная модель. А учитывая это, то и дизайнеры предпочитают CMYK, поскольку не все цвета RGB могут быть представлены в CMYK, а следовательно распечатаны на принтере. Им нужно же, чтобы на бумаге было так же, как и на мониторе. А художники используют другую субтрактивную модель RYB.
0
|
||
|
5532 / 2885 / 573
Регистрация: 07.11.2019
Сообщений: 4,809
|
|
| 27.10.2025, 06:40 | |
|
Royal_X, вы совершенно правы. Вот поэтотому в колориметрии нет такого понятия как "прозрачность", как четвертый компонент. И нормальное человеческое зрение трихроматично, а не тетрахроматично. Вот что такое физически чистый спектральный красный цвет с прозрачностью 0 и с прозрачнрстью 1? Даже если смешать 50% черного и 50% белого не факт что это отобразиться на экране правильно (гамма коррекция). Кстати, если кому-то интересно, то я снимал спектры цветных стекол и в зависимости от концентрации красителя. Цветовой тон может сильно меняться и это нормально. Грубо говоря так: тонкий слой стекла - зеленый, а толстый - темно красный. Линии красок на диаграмме CIE - кривые, и это надо понимать..
0
|
|
|
5532 / 2885 / 573
Регистрация: 07.11.2019
Сообщений: 4,809
|
|
| 27.10.2025, 06:48 | |
|
Вот пример такого стекла. Концентрация красителя - однородная.
0
|
|
|
5532 / 2885 / 573
Регистрация: 07.11.2019
Сообщений: 4,809
|
|
| 27.10.2025, 07:37 | |
|
А это как меняется положения точек на диаграмме цветности в зависимости от концетрации красителя. Явно нелинейно.
Кстати, более-менее адекватно виртуально разбавлять краски можно с помощью POV-Ray и дополнения для спектрального рендеринга. https://lilysoft.org/CGI/SR/Spectral%20Render.htm
0
|
|
| 28.10.2025, 00:12 [ТС] | ||
|
И тут Вы начинаете умничать. Мол, RGB - это плохо, субтрактивная модель и все такое. На мой взгляд это ненужное усложнение с проблематичными результатами. Напр, как уже говорилось, красивый зеленый (между желтым и синим) для юзера может быть багом. Ну хорошо, давайте посмотрим какой Вы умный, предъявите свое решение используя ту модель что Вы считаете лучшей. При этом менять задачу и подстраиваться под Вашу умность никто не будет. Как входные данные, так и рез-т должны быть ARGB (байт на канал). Во внутри делайте/используйте что хотите. Не по теме: Думаю что нормального решения не увижу. Все тыкалки - трепло и слабаки. Вот пересказывать ссылочки - то да, а дойдет до дела - сразу сольется, еще и ТС обругает :) Ну ладно, проверим еще раз, буду рад ошибиться
0
|
||
|
Нарушитель
6323 / 3050 / 1054
Регистрация: 01.06.2021
Сообщений: 11,661
|
|||||||||||||
| 28.10.2025, 01:00 | |||||||||||||
Я писал, что RGB не подходит именно для смешивания красок, ведь, выше речь шла про краски, ведра, литры... *** Если нужно смешивать краски, то нужно брать субтрактивную модель, например, RYB. Входные данные могут быть в RGB. Преобразовывать RGB в RYB и обратно не составит труда, причем, поскольку я в своем приложении это делал, то помню, что есть два подхода: - легкий (используем алгоритм конвертирования с погрешностью, который гарантировано сможет любой цвет RGB конвертировать в RYB) - более точный (не все цвета RGB могут быть конвертированы в RYB. А для конвертирования мы используем трилинейную интерполяцию. Берём 8 трехмерных координат вершин куба цветовой модели из справочника и интерполируем. ) У меня есть даже код для трилинейной интерполяции (для точного конвертирования с учетом охвата цветовой палитры). Писал для Wolfram Mathematica:
В коде выше использовал такие точки (некоторые точки брал из документа выше): Каждая точка - вершина куба - представляет цвет RYB → RGB white (0; 0; 0) → (1; 1; 1) blue (0; 0; 1) → (0,163; 0,373; 0,6) yellow (0; 1; 0) → (1; 1; 0) green (0; 1; 1) → (0; 0,66; 0,2) red (1; 0; 0) → (1; 0; 0) purple (1; 0; 1) → (0,5; 0; 0,5) orange (1; 1; 0) → (1; 0,5; 0) black (1; 1; 1) → (0,2; 0,094; 0) RGB → RYB black (0; 0; 0) → (1; 1; 1) blue (0; 0; 1) → (0; 0; 1) green (0; 1; 0) → (0; 1; 0,483) cyan (0; 1; 1) → (0; 0,053; 0,21) red (1; 0; 0) → (1; 0; 0) magenta (1; 0; 1) → (0,309; 0; 0,469) yellow (1; 1; 0) → (0; 1; 0) white (1; 1; 1) → (0; 0; 0) *** А вот код для упрощенного конвертирования, который я давно писал:
0
|
|||||||||||||
|
Нарушитель
6323 / 3050 / 1054
Регистрация: 01.06.2021
Сообщений: 11,661
|
||
| 28.10.2025, 15:17 | ||
|
0
|
||
| 29.10.2025, 02:53 [ТС] | ||||||||
|
Не по теме:
Ладно, устал от Вас, закроем вопрос с интерполяцией. Вернемся к нашим ведрам c1 = (1.0, 0.5, 0, 0) c2 = (0.6, 1.0, 0, 0) В ведре 1.6 литра краски и 0.4 литра воды. Разливаем в 2 пузыря по литру. В каждом 0.8 краски и 0.2 воды. Значит альфа просто интерполируется как обычное число (1 + 0.6) / 2 = 0.8. С RGB так не проходит, исходные значения 0.5 и 1.0 имеют разные альфы. Но вот общее кол-во красного (может лучше сказать "видимого красного") в ведре будет равно сумме такого красного в исходных литрах: red1 = 0.5 * 1.0 red2 = 1.0 * 0.6 red1 + red2 = 1.1 В одном литре его будет 1.1 / 2= 0.55, а с учетом 0.2 воды 0.55 / 0.8 = 0.6875. Итоговые формулы c3.a = (c1.a + c2.a) / 2; c3.r = (c1.r * c1.a + c2.r * c2.a) / 2 / c3.a; Алгоритм: альфу считаем как просто среднее, а каждую RGB сначала множим на альфу (premultiply), суммируем, делим пополам (в общем случае на объем смеси) и делим на получившуюся альфу (unmultiply). О чем грамотный человек сообщал давно c3.r = (c1.r * c1.a + c2.r * c2.a) / (с1.a + c2.a); Т.е. это самое обычное взвешивание (по 20 копеек). Правда это для RGB, как для RYB - не знаю, если так же, то в чем тогда ее "субтрактивность"? Также заметим что есть альтернатива операторам - ф-ция с переменным числом аргументов Ну ладно, вот наконец добрались до технической части: нужно реализовать операторы на С++. Как говорил известный герой
0
|
||||||||
| 31.10.2025, 16:03 [ТС] | ||
|
Хорошо, копнем RYB которым тут тыкали в нос. При первом же взгляде на аттач (левый круг) ясно что модель эта чисто учебная и практически единственная цель - переход от желтого к синему через зеленый. Типа "а помните как вы в детстве (с упоением) красками мазюкали? - так вот же оно". Ради этой ностальгии загубили половину цветов. Воспринимать RYB серьезно не следует. Не верится что у художника всего 3 краски, и он отчаянно смешивает остальные. Еще меньше верится что в магазине нет других красок.
Таким образом вся эта песня с RYB - (злобный) оффтоп. Можно попытаться извлечь "рациональное зерно": а не написать ли нам такие операторы что работают (интерполируют) с любой цветовой моделью? Вроде получается, только перегнать вход/выход "на лету". Но есть пакостное исключение: интерполяция hue (нужен wrap).
0
|
||
|
Гвоздь Задиров
1719 / 1118 / 337
Регистрация: 25.01.2019
Сообщений: 2,946
|
||||||||
| 07.11.2025, 19:00 | ||||||||
|
Вот после этого ответа:
0
|
||||||||
|
Гвоздь Задиров
1719 / 1118 / 337
Регистрация: 25.01.2019
Сообщений: 2,946
|
|
| 07.11.2025, 21:40 | |
|
0
|
|
|
Нарушитель
6323 / 3050 / 1054
Регистрация: 01.06.2021
Сообщений: 11,661
|
|
| 07.11.2025, 21:42 | |
|
0
|
|
|
Гвоздь Задиров
1719 / 1118 / 337
Регистрация: 25.01.2019
Сообщений: 2,946
|
||
| 07.11.2025, 23:01 | ||
|
По планам к четвергу я опять пропаду. Но планирую вернуться хотя бы к конкурсу про "сделай-ёлку" своими руками. Я как-то пытался, но накосячил и запорол всё.
0
|
||
|
Нарушитель
6323 / 3050 / 1054
Регистрация: 01.06.2021
Сообщений: 11,661
|
|
| 07.11.2025, 23:31 | |
|
Folian, а я не вижу, чтобы конкурс был https://www.cyberforum.ru/contests/. Последний был в 2022 году.
0
|
|
|
Гвоздь Задиров
1719 / 1118 / 337
Регистрация: 25.01.2019
Сообщений: 2,946
|
|||
| 07.11.2025, 23:51 | |||
|
Сможешь организовать его заново? ...я, кстати, нашёл сейчас в кладовках, что хотел тогда отправить. Хош глянуть? Добавлено через 1 минуту
0
|
|||
|
Нарушитель
6323 / 3050 / 1054
Регистрация: 01.06.2021
Сообщений: 11,661
|
|||
| 08.11.2025, 00:15 | |||
|
1
|
|||
|
Гвоздь Задиров
1719 / 1118 / 337
Регистрация: 25.01.2019
Сообщений: 2,946
|
|||
| 08.11.2025, 00:22 | |||
|
0
|
|||
|
Гвоздь Задиров
1719 / 1118 / 337
Регистрация: 25.01.2019
Сообщений: 2,946
|
|
| 08.11.2025, 01:18 | |
|
Royal_X,
шляпа недоделанная
3
|
|
| 08.11.2025, 01:18 | |
|
Операторы принятия решения и операторы цикла. Условные операторы.Операторы цикла
Операторы отношений и логические операторы Поразрядные операторы,операторы сдвига Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|