Классический пример сопроцессора для обработки видео в картридже это SuperFX, специализированный 16-битный RISC-процессор (корни его можно отследить в современной архитектуре ARC). Чип этот разработал, кстати говоря, Ben Cheese, который в свое время трудился и у Синклера.
Готовый ARM это, конечно, не так интересно, как разработка собственной архитектуры. Я бы больше порадовался чему-нибудь специализированному на, например, Xilinx Spartan 6 (LX4 стоит не дороже многих ARM-микроконтроллеров).
Артём, я слегка изнасиловал твой скрипт, чтобы сделать заливку поплотнее и лучше увидеть оттенок.
Вышло вот что:
Как ты видишь, оттенки не очень хорошо совпадают. У тебя, я думаю, такая же ошибка как сделал в своё время я.
Допустим, мы смешиваем 50% одного цвета и 50% другого. Законы аддитивного цвета нам говорят: нужно сложить цветовые компоненты и разделить на 2. Вроде всё правильно? Мне кажется, что нет. Дело в том, что смешение цвета происходит на экране, а у экрана — гамма. Гамма монитора в среднем будет что-то типа 2.5. Значит нужно взять покомпонентно оба цвета, перевести их в мониторную гамму, там — смешать и разделить на два, а уже потом — взять обратно гамму. Типа
Я тут чутка загнался и сделал вот такую тестовую страничку: artfield.me/127c.html (за работоспособность везде не отвечаю, делал на скорую руку, работает в Хроме)
В общем, какие выводы:
— цветов, по факту, 101. Причем явно различных — довольно немного, на мой мутный взгляд с -7
— большой разброс по hue (мало красного, много синего). Возможно, проблема в формуле, высчитывающей luminance
— два очевидных уровня насыщенности, причем «пастельных» цветов невероятно мало
— выходная палитра очень сильно зависит от небрайта. Если указать веселые значения типа 96 или 160 — палитра резко сокращается до 64 цветов. Можно сами поэкспериментировать со значениями, добавляя их к урлу: artfield.me/127c.html?160
ну и вообще, shinilb0g
:)
я попробовал включить цвета — стало хуже.
Готовый ARM это, конечно, не так интересно, как разработка собственной архитектуры. Я бы больше порадовался чему-нибудь специализированному на, например, Xilinx Spartan 6 (LX4 стоит не дороже многих ARM-микроконтроллеров).
Вышло вот что:
Как ты видишь, оттенки не очень хорошо совпадают. У тебя, я думаю, такая же ошибка как сделал в своё время я.
Допустим, мы смешиваем 50% одного цвета и 50% другого. Законы аддитивного цвета нам говорят: нужно сложить цветовые компоненты и разделить на 2. Вроде всё правильно? Мне кажется, что нет. Дело в том, что смешение цвета происходит на экране, а у экрана — гамма. Гамма монитора в среднем будет что-то типа 2.5. Значит нужно взять покомпонентно оба цвета, перевести их в мониторную гамму, там — смешать и разделить на два, а уже потом — взять обратно гамму. Типа
Rmix = (0.5*R1^2.5+0.5*R2^2.5)^(1/2.5)
В общем, какие выводы:
— цветов, по факту, 101. Причем явно различных — довольно немного, на мой мутный взгляд с -7
— большой разброс по hue (мало красного, много синего). Возможно, проблема в формуле, высчитывающей luminance
— два очевидных уровня насыщенности, причем «пастельных» цветов невероятно мало
— выходная палитра очень сильно зависит от небрайта. Если указать веселые значения типа 96 или 160 — палитра резко сокращается до 64 цветов. Можно сами поэкспериментировать со значениями, добавляя их к урлу: artfield.me/127c.html?160