Estoy en busca de una solución práctica y ortogonal que preferiblemente:
Trabajar en un rgb lineal y/o de alta precisión no es perfecto.
Sería genial trabajar en 8 bits, daría como resultado un lienzo de mayor rendimiento.
La mezcla esperada está en el pequeño gradiente en la parte superior, variación de intensidad cero.
trabajar en espacios de colores más grandes que srgb lineal con alta precisión hace que se mezclen mejor pero aún así no da mucho más beneficio. Por supuesto, la mezcla lineal no es tan mala como la mezcla no lineal, pero sería genial obtener algo mejor.
Estoy totalmente abierto a programas que linealicen rgb automáticamente o hagan algún truco automático si exponen alguna ventaja real en términos de calidad de mezcla o rendimiento .
Aparte de eso, incluso la huella de memoria no es de mi interés. Es solo que, de hecho, detrás de escena solo está haciendo lo mismo, calculando en una pila interna de alta precisión RGB lineal, y quizás lo peor, agregando errores de precisión redondos y haciéndome más confuso acerca de algún posible problema en el proceso de pintura, otro punto es que estoy mejor atendido si lo entiendo.
Lo más cercano que obtuve de algo realmente interesante en términos de mezcla de colores fue con la mezcla de espacio de color de trabajo CIE XYZ , ya que obtuve resultados como:
Hasta que te golpea la rareza CIE XYZ :
Por lo tanto, todavía estoy abierto a nuevos procesos, como siempre puedo obtener algo en términos artísticos de ellos, todavía estoy examinando trabajar en CIE XYZ con selectores de color limitados. O cualquier sugerencia dada aquí.
Y si hay alguna percepción equivocada de que yo vaya a algún lado, se lo agradecería mucho.
No entiendo completamente tu pregunta.
Pero al final, la posterización no se produce por "mezcla". Es el resultado de "mostrar".
Si tiene en una zona un valor de r255g128b0 y una zona adyacente de r255g129b0 y muestra algo de posterización, no hay nada que pueda hacer al respecto. Simplemente tiene los valores más cercanos posibles y no hay forma de poner un color de término medio. No importa cómo se mezclaron.
La única forma de superar esta limitación, que yo sepa, es "difuminar" la transición. Esto es, hacer un patrón aleatorio de píxeles en la siguiente zona.
La posterización es también un efecto perceptivo, no solo técnico. Si no tienes distractores, como en un cielo azul podrías notar más que en una foto de un bosque. Entonces depende del área y la relación en valores.
Esto puede depender de la calidad de la pantalla, el contraste, el brillo, la luz ambiental o incluso el estado de ánimo del observador.
Pero eso sí, el modelo RGB no es lineal en sus componentes, es logarítmico, y los valores cambian según el canal.
Aquí hay algunos colores RGB pero dispuestos como círculos HSB.
En teoría, tienen el mismo "brillo", pero el brillo total en un canal azul no es lo mismo que el 100% del brillo en el canal verde.
Cuando se convierte a escala de grises, podemos ver diferencias obvias. El R+G produce un amarillo que obviamente es más brillante que el azul.
Hay un color sólido que trata de abordar este brillo perceptivo. El sistema de color Munsell https://en.wikipedia.org/wiki/Munsell_color_system
donde, en teoría, cada nivel representa valores similares. Pero probablemente la conversión deba hacerse con una matriz específica de valores.
No soy programador, pero en mi opinión, buscaría una curva que se adaptara a cada canal R+G+B por separado, podría estar aplicando diferentes valores de gamma https://en.wikipedia.org/wiki/Gamma_correction a cada canal por ejemplo, o buscando una curva logarítmica diferente.
RómuloPBenedetti
RómuloPBenedetti
rec 709
coeficientes, pero creo que no sería una buena idea mezclar en un espacio así, ya que tenemos variaciones de contraste demasiado amplias, especialmente en los extremos de la luminosidad. rango.joojaa
RómuloPBenedetti
joojaa
RómuloPBenedetti
RómuloPBenedetti