Página 4 de 5

Re: Leer paleta de un BMP

Publicado: Lun, 26 Ene 2015, 08:31
por na_th_an
Es que nicepal sólo genera esa paleta, no hace nada más. Mira bien mi post. Cada utilidad hace una cosa.

gennice.exe sólo saca un PNG con esa paleta fija (nicepal.png), que la necesitaba para hacer mis pruebas. Carece de utilidad.
genpal.exe coge una cadena hexadecimal con los colores que has elegido de la ULA+ y te genera un PNG con esos colores, tal y como los calcula el conversor. Esto es única y exclusivamente para que puedas usar esos colores para dibujar los gráficos y que luego no haya problemas de conversión.
radspr.exe es el conversor que te convertirá tus sprites al formato que sea usando la paleta en hex que le especifiques.

Lo mejor para usar esto es

1.- Hacer la paleta ULA+ y obtener los valores en hexadecimal. Pegarlos todos en un chorizo de 32 caracteres. Vaya, sería como coger los valores que me pusiste tú para el ejemplo y pasarlos a hex.
2.- Usar genpal.exe para obtener un png con los colores de esa paleta en hex.
3.- Usar ese png para coger los colores y dibujar tus gráficos en un set. Grabar como png de altura/anchura múltiplos de 8.
4.- Usar radspr.exe para obtener los sprites de tu png, especificando la paleta en hex.

Sobre los colores, ya te digo que lo que hago es multiplicar, simplemente. Por lo que nunca se llega al máximo, por las razones explicadas. No sé qué algoritmo se aplicará realmente para llevar al máximo el valor máximo tras la multiplicación. Si hay otra forma, decidmela y se la podemos poner al conversor.

Como ya te dije, si tú me dices que tienes 3 bits para "R", eso significa que los valores pueden ser 0-7. Para convertir yo eso a RGB y poder usarlo en los png y eso, tengo que multiplicar para obtener un valor de 8 bits, o sea, tengo que multiplicar por 32. El problema de esto es que el mayor valor posible es 11100000, y por tanto la intensidad más clara no queda "la más clara". Supongo que el hard usa otra forma para escalar, o no, o hay una corrección, o ni idea. No lo sé.

Re: Leer paleta de un BMP

Publicado: Lun, 26 Ene 2015, 10:29
por Metalbrain
na_th_an escribió:Como ya te dije, si tú me dices que tienes 3 bits para "R", eso significa que los valores pueden ser 0-7. Para convertir yo eso a RGB y poder usarlo en los png y eso, tengo que multiplicar para obtener un valor de 8 bits, o sea, tengo que multiplicar por 32.


¿Y por que no por 36?
255/7 = 36.42

Re: Leer paleta de un BMP

Publicado: Lun, 26 Ene 2015, 10:32
por na_th_an
Por lo que me digáis que multiplique. Lo que no voy a hacer es adivinarlo :D no he diseñado yo el modo este ni cómo usa las paletas.

Re: Leer paleta de un BMP

Publicado: Lun, 26 Ene 2015, 11:10
por iforeve
na_th_an escribió:Por lo que me digáis que multiplique. Lo que no voy a hacer es adivinarlo :D no he diseñado yo el modo este ni cómo usa las paletas.


Las paletas se usan en la playa. Lo sabe tor mundo :lol: :lol:

Re: Leer paleta de un BMP

Publicado: Lun, 26 Ene 2015, 13:01
por na_th_an
Aquí están las versiones con la nueva escala aplicada. En vez de hacer shift left el número de veces que sea necesario (5 para R y G, 6 para B) se multiplica por una escala de 255/7 para R y G y 255 / 3 para B, ya que 7 es el valor máximo de R y G y 3 el de B en las paletas de ULA+, tal y como ha propuesto Metalbrain.

Supongo que servirán mejor. Los programas se llaman igual pero tienen un "ad" de "adjusted" al final:

gennicead.exe sólo saca un PNG con esa paleta fija (nicepal.png), que la necesitaba para hacer mis pruebas. Carece de utilidad.
genpalad.exe coge una cadena hexadecimal con los colores que has elegido de la ULA+ y te genera un PNG con esos colores, tal y como los calcula el conversor. Esto es única y exclusivamente para que puedas usar esos colores para dibujar los gráficos y que luego no haya problemas de conversión.
radsprad.exe es el conversor que te convertirá tus sprites al formato que sea usando la paleta en hex que le especifiques.

Como dije, radspr/radsprad son capaces de convertir cualquier imagen con cualquier número de colores, sean de la paleta de ULA+ o no, haciendo aproximaciones lineales - pero siempre se obtienen mejores resultados si se usan los colores correctos. Por eso es buena idea empezar eligiendo los colores ULA+, generando el png con la paleta con genpal/genpalad y luego dibujando con esos colores.

Re: Leer paleta de un BMP

Publicado: Lun, 26 Ene 2015, 13:45
por nacho
iforeve escribió:
na_th_an escribió:Por lo que me digáis que multiplique. Lo que no voy a hacer es adivinarlo :D no he diseñado yo el modo este ni cómo usa las paletas.


Las paletas se usan en la playa. Lo sabe tor mundo :lol: :lol:


:lol: :lol: :lol:

Yo siempre he sido más de paletilla, ibérica a ser posible :lol:

Re: Leer paleta de un BMP

Publicado: Lun, 26 Ene 2015, 14:15
por iforeve
nacho escribió:
iforeve escribió:
na_th_an escribió:Por lo que me digáis que multiplique. Lo que no voy a hacer es adivinarlo :D no he diseñado yo el modo este ni cómo usa las paletas.


Las paletas se usan en la playa. Lo sabe tor mundo :lol: :lol:


:lol: :lol: :lol:

Yo siempre he sido más de paletilla, ibérica a ser posible :lol:


JUAS!!!

Re: Leer paleta de un BMP

Publicado: Lun, 26 Ene 2015, 14:20
por na_th_an
He modificado un poco radspr/radsprad para que generen etiquetas antes de cada sprite, que puede venir muy bien.

Re: Leer paleta de un BMP

Publicado: Lun, 26 Ene 2015, 19:06
por radastan
Asias.

Re: Leer paleta de un BMP

Publicado: Jue, 19 Nov 2015, 12:01
por radastan
Buenas,

Ahora que he podido poner orden en mi vida he sacado nueva versión del kit Z88DK para ZX Uno. Voy a sacar una tercera versión con las herramientas de Na_Th_An incluyendo un tuto de uso.

Gracias por la paciencia, sobre todo a Na_Th_An.