Попался мне в аппсторе BBC Basic - вот его официальный сайт. Максимально всратая гуя, но при этом он много что умеет (по крайней мере некоторые примеры впечатляют).
Хз зачем вам это, но мне порой нравится потыкать подобную ностальгическую всратость
Хз зачем вам это, но мне порой нравится потыкать подобную ностальгическую всратость
App Store
BBCBasic App - App Store
Download BBCBasic by Richard Russell on the App Store. See screenshots, ratings and reviews, user tips and more apps like BBCBasic.
🔥1
Железка конечно ппц стоит. Нашел архив игр и, в принципе, под нее есть ядро для RetroArch
Libretro
Acorn - BBC Micro (b2) - Libretro Docs
This is the official RetroArch documentation for users and developers. Information from sources outside of this website may be dated or incorrect.
🔥1
Нашел в закромах всякое про кубическое Безье: производные, касательная, кривизна и тд
https://www.desmos.com/calculator/hpopgcsusl
https://www.desmos.com/calculator/hpopgcsusl
Desmos
Bezier-sb
Explore math with our beautiful, free online graphing calculator. Graph functions, plot points, visualize algebraic equations, add sliders, animate graphs, and more.
А вот вариант оптимизации сэмплинга кубической Безье, когда нужно брать рандомные точки на всем диапазоне t при фиксированных точках - схлопнуто до кубического многочлена с предпосчитанными коэффициентами.
https://www.desmos.com/calculator/hu2htilxlr
https://www.desmos.com/calculator/hu2htilxlr
Desmos
Bezier optimisation
Explore math with our beautiful, free online graphing calculator. Graph functions, plot points, visualize algebraic equations, add sliders, animate graphs, and more.
Корень коралла.
Я думал, что переезд это отправить вещи и переместиться самому. А оказалось, что разобрать барахло посложнее, чем закидать его в коробки.
А еще внезапно надо сарай перебрать, сад расчистить, тонну щебня заказать и перекидать и прочее🤠
Сейчас доразгребу все это и вернусь к нормальному ритму и темам постов
Я думал, что переезд это отправить вещи и переместиться самому. А оказалось, что разобрать барахло посложнее, чем закидать его в коробки.
А еще внезапно надо сарай перебрать, сад расчистить, тонну щебня заказать и перекидать и прочее🤠
Сейчас доразгребу все это и вернусь к нормальному ритму и темам постов
🗿4👀3❤2
Сделал видос про сплайны https://youtu.be/fC-ZZK81-t4
YouTube
Сплайны: как устроены кривые Безье, B-сплайны и Катмулл–Ром
В этом видео разбираем, что такое сплайны, зачем они нужны и как работают разные их виды: от простых кривых Безье до B-сплайнов и Катмулл–Ром.
Полезно всем, кто работает с визуализацией, программированием графики или просто хочет лучше понять, как создаются…
Полезно всем, кто работает с визуализацией, программированием графики или просто хочет лучше понять, как создаются…
👍6🔥2
Так, как и обещал, после сплайнов расскажу про цвета.
Начнем с терминологии, чтобы не было путаницы потом (да и вообще):
1. Цветовая модель - это способ представления пространства цвета, то есть система координат и что эти самые координаты означают. Например: RGB, CMYK, HSL, YUV и т.д.
2. Цветовое пространство - это конкретная реализация цветовой модели, то есть как именно цвета из гамута мапятся на наши координаты (например точка черного цвета, белого цвета, пределы каналов и тд). Например: sRGB, Adobe RGB, ProPhoto RGB, рекомендации/стандраты для цветоразностных и т.д.
3. Гамут - это множество всех возможных цветов, которые может воспроизвести устройство, например, монитор или принтер.
4. Цветовой профиль - структура, описыващая переход между цветовыми пространствами через стандартизированное и независимое от устройства, например XYZ или Lab.
Все это описано в спецификациях CIE (International Commission on Illumination), но кто это читать будет - там скучно.
Начнем с терминологии, чтобы не было путаницы потом (да и вообще):
1. Цветовая модель - это способ представления пространства цвета, то есть система координат и что эти самые координаты означают. Например: RGB, CMYK, HSL, YUV и т.д.
2. Цветовое пространство - это конкретная реализация цветовой модели, то есть как именно цвета из гамута мапятся на наши координаты (например точка черного цвета, белого цвета, пределы каналов и тд). Например: sRGB, Adobe RGB, ProPhoto RGB, рекомендации/стандраты для цветоразностных и т.д.
3. Гамут - это множество всех возможных цветов, которые может воспроизвести устройство, например, монитор или принтер.
4. Цветовой профиль - структура, описыващая переход между цветовыми пространствами через стандартизированное и независимое от устройства, например XYZ или Lab.
Все это описано в спецификациях CIE (International Commission on Illumination), но кто это читать будет - там скучно.
❤5
Кратко по цветовым моделям. Их можно разделить на несколько категорий:
1. Аддитивные модели - образуют цвет, складывая свет (каналы) разных длин волн; используются в излучающих устройствах (мониторы и проекторы):
- RGB (Red, Green, Blue) - декартовая система, складывет цвет из разных интенсивностей базовых цветов (светов).
- HSL (Hue, Saturation, Lightness) - цилиндрическая система, лайтнес от черного до белого.
- HSV (Hue, Saturation, Value) - тоже цилиндрическая система, но лайтнес от черного до максимального значения среди каналов.
- Okhsv and Okhsl - новые модели, позволяют более естественно работать с цветами.
2. Субтрактивные модели - образуют цвет, смешивая краски (пигменты, как известно поглощают, поэтому если намешаем всего, будет черный); используются в печатающих устройствах (принтеры):
- CMYK (Cyan, Magenta, Yellow, Key/Black) - четыре основных цвета, которые комбинируются для создания других цветов. Эта модель используется в печати.
3. Цветоразностные модели - образуют цвет из значения яркости и цветоразностных значений; используются в видео и телевидении:
- YUV - яркость и цвет, часто используется в видео и телевидении.
- YPbPr - еще одна цветоразностная модель, которая используется в аналоговых системах.
- YCbCr - используется в цифровом видео.
4. Специальные модели - используются для специфических задач (как базовая модель, представление гамута, представление человеческого восприятия и тд):
- Lab (CIELAB) - описывает цвет в терминах человеческого восприятия.
- Oklab - современная альтернатива Lab, основанная на более интуитивном восприятии цвета.
- XYZ - линейная базовая модель, тоже основана на человеческом восприятии, не зависит от устройства.
Подробности потом по каждой отдельно распишу.
1. Аддитивные модели - образуют цвет, складывая свет (каналы) разных длин волн; используются в излучающих устройствах (мониторы и проекторы):
- RGB (Red, Green, Blue) - декартовая система, складывет цвет из разных интенсивностей базовых цветов (светов).
- HSL (Hue, Saturation, Lightness) - цилиндрическая система, лайтнес от черного до белого.
- HSV (Hue, Saturation, Value) - тоже цилиндрическая система, но лайтнес от черного до максимального значения среди каналов.
- Okhsv and Okhsl - новые модели, позволяют более естественно работать с цветами.
2. Субтрактивные модели - образуют цвет, смешивая краски (пигменты, как известно поглощают, поэтому если намешаем всего, будет черный); используются в печатающих устройствах (принтеры):
- CMYK (Cyan, Magenta, Yellow, Key/Black) - четыре основных цвета, которые комбинируются для создания других цветов. Эта модель используется в печати.
3. Цветоразностные модели - образуют цвет из значения яркости и цветоразностных значений; используются в видео и телевидении:
- YUV - яркость и цвет, часто используется в видео и телевидении.
- YPbPr - еще одна цветоразностная модель, которая используется в аналоговых системах.
- YCbCr - используется в цифровом видео.
4. Специальные модели - используются для специфических задач (как базовая модель, представление гамута, представление человеческого восприятия и тд):
- Lab (CIELAB) - описывает цвет в терминах человеческого восприятия.
- Oklab - современная альтернатива Lab, основанная на более интуитивном восприятии цвета.
- XYZ - линейная базовая модель, тоже основана на человеческом восприятии, не зависит от устройства.
Подробности потом по каждой отдельно распишу.
👍7
Каждая модель используется для своих нужд не потому что кто-то решил, что вот эта новая уж точно лучше всех предыдущих, а исключительно исходя из технических ограничений и особенностей того или иного устройства.
Это совершенно не значит, что мы ограничены конкретной моделью в коде. Почти между всеми переход осуществляются с помощью перемножения матриц (но есть и удручающие исключения). А это значит, что можно использовать их особенности в обработке цвета, эффектах и прочем.
Это совершенно не значит, что мы ограничены конкретной моделью в коде. Почти между всеми переход осуществляются с помощью перемножения матриц (но есть и удручающие исключения). А это значит, что можно использовать их особенности в обработке цвета, эффектах и прочем.
❤3
С цветовыми профилями все печальнее - там почти всегда нужен LUT (look up table), то есть аналитически смапить цвета возможно не только лишь всегда
❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Сделал неведомую херобору в тик80, вдохновившись кривыми Безье
🔥6👍1
Я кратенько расскажу про интересные модели, а потом - про их практическое применение вне исходного предназначения - матрицы и переводы и так спокойно гуглятся (знать только, что гуглить).
Начну с цветоразностных, потому что они интересны исторически. Расскажу в общих чертах, потому что там разница в осях, а не в принципе.
Пришли они к нам из телевидения (+ активно используются в видео). Там изначально изображение было ЧБ (яркостная компнонента), к которому добавляется либо поднесущая, либо отдельный частотный канал (в зависимости от стандарта). Это позволяет чб телекам принимать и правильно показывать тот же канал, что и для цветных телеков. Но можно их и отдельно передавать (как на фотке моего древнего телека).
Начну с цветоразностных, потому что они интересны исторически. Расскажу в общих чертах, потому что там разница в осях, а не в принципе.
Пришли они к нам из телевидения (+ активно используются в видео). Там изначально изображение было ЧБ (яркостная компнонента), к которому добавляется либо поднесущая, либо отдельный частотный канал (в зависимости от стандарта). Это позволяет чб телекам принимать и правильно показывать тот же канал, что и для цветных телеков. Но можно их и отдельно передавать (как на фотке моего древнего телека).
🔥1
На тему видео вы, возможно, видели что-то типа 4:2:2 или 4:2:0. Это цветовая субдискретизация и показывает сколько сэмплов (пикселей простым языком) цветоразностных каналов на яркостный.
Первая 4 - частота яркостного канала,
Вторая 2 - сколько на эти 4 будет цветоразностных
Третья 2 - сколько цветоразностных во второй строке (если ноль, то вторая строка будет идентична первой
Почему это важно: если вы работаете с сырыми буферами yuv (YCbCr и пр), то часто каналы там лежат в планарном (planar) виде, то есть лежит либо буфер
Так вот, когда у вас планарно лежат каналы, важно помнить, что размеры их могут не совпадать, если все числа в 4:4:4 не равны. Так, на пример, при 4:2:2 цветоразностные будет иметь в два раза меньшую ширину, а при 4:2:0 - и высоту тоже.
Картинку спер из вики
Первая 4 - частота яркостного канала,
Вторая 2 - сколько на эти 4 будет цветоразностных
Третья 2 - сколько цветоразностных во второй строке (если ноль, то вторая строка будет идентична первой
Почему это важно: если вы работаете с сырыми буферами yuv (YCbCr и пр), то часто каналы там лежат в планарном (planar) виде, то есть лежит либо буфер
yyy… uuu… vvv…, либо yyy… uvuvuv… (полупланарный/semiplanar). Да, привычный yuv yuv yuv… называется уплотненный/черезпиксельный или interleaved по русски.Так вот, когда у вас планарно лежат каналы, важно помнить, что размеры их могут не совпадать, если все числа в 4:4:4 не равны. Так, на пример, при 4:2:2 цветоразностные будет иметь в два раза меньшую ширину, а при 4:2:0 - и высоту тоже.
Картинку спер из вики
🔥5❤1
Ого) аж 6 человек отписалось после начала серии постов про цветовые модели - эта тема такая страшная, такая скучная или и так всем очевидная?
Так вроде это базовая база и всем полезна будет. Хм. Не ясно
Так вроде это базовая база и всем полезна будет. Хм. Не ясно
👍10😢1🙏1🗿1
Еще одна оооочень интересная группа моделей - с приставкой
После (не)продолжительного обсуждения и тэганья всех, кого это должно было бы заинтересовать, его модели включили в стандарт и добавили поддержку как минимум в продуктах Adobe (причем очень быстро, несмотря на казалось бы громоздкость корпорации). Я пытался пропихнуть это и в Procreate, но меня послали.
Вообще рекомендую к прочтению все четыре его статьи с сайта:
- про проблемы смешения цвтов в существующих моделях
- про Oklab
- как наболтать насыщенность и не выжечь глаза
- про Okhsv и Okhsl
Ok за авторством Бьерна Оттоссона. Несколько (5) лет назад в твиттерах были горячие дискуссии на тему градиентов, смешений цветов и прочего. Среди этого прочего Бьерн предложил несколько моделей с «естественным» смешением цветов и правильной ориентацией яркости. После (не)продолжительного обсуждения и тэганья всех, кого это должно было бы заинтересовать, его модели включили в стандарт и добавили поддержку как минимум в продуктах Adobe (причем очень быстро, несмотря на казалось бы громоздкость корпорации). Я пытался пропихнуть это и в Procreate, но меня послали.
Вообще рекомендую к прочтению все четыре его статьи с сайта:
- про проблемы смешения цвтов в существующих моделях
- про Oklab
- как наболтать насыщенность и не выжечь глаза
- про Okhsv и Okhsl
👍3🔥1
Примерно в то же время (в 2019) я пилил прократам модель для симуляции акварели. Вот чтоб было как на бумаге. К сожалению, модель вышла хоть и качественной, но довольно тяжелой и на больших картинках работала медленно. Плюс требовала кучу памяти на несколько флотовых 4 канальных слоев для разных параметров. Плюс там очень много нюансов с undo/redo. Кароч осталось оно на репе про RnD и в прод не пошло.
Но сейчас речь о цветовых моделей. Так вот. Для акварельки нужно, чтобы цвета смешивались как будто это краски. Проблема в том, у RGB плохо с осью яркости (ее нет), а срез YUV выглядит как на первой картинке, в то время как круг Иттена (для смешения красок) - как на второй.
Чтобы решить эту проблему, я делал так (третья картинка):
1 - переводил RGB->YUV,
2 - там переводил UV в полярную систему координат
3 - ремапил углы так, чтобы между красным, желтым и синим был угол 120º
4 - переводил обратно в декартову систему координат
5 - смешивал цвета в этой модели
6 - для отображения делал обратное преобразование
Но сейчас речь о цветовых моделей. Так вот. Для акварельки нужно, чтобы цвета смешивались как будто это краски. Проблема в том, у RGB плохо с осью яркости (ее нет), а срез YUV выглядит как на первой картинке, в то время как круг Иттена (для смешения красок) - как на второй.
Чтобы решить эту проблему, я делал так (третья картинка):
1 - переводил RGB->YUV,
2 - там переводил UV в полярную систему координат
3 - ремапил углы так, чтобы между красным, желтым и синим был угол 120º
4 - переводил обратно в декартову систему координат
5 - смешивал цвета в этой модели
6 - для отображения делал обратное преобразование
🔥4