Problema del color transparente al añadirlos al fpg16bits

Started by simulatorone, January 16, 2010, 03:58:01 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

simulatorone

Hola!

Estoy pasando graficos de 32bit(algunos son de 24) y otros del altiguo 8bits con paletas.
A un FPG de 16bits compatible con Fenix/Bennu, usando el FPG EDIT 2009(bulid 0.12).
Es para la consola Wiz, em modo 16bits.ok?

El problema y duda es que no se como me aplicara el negro transparente...
Que graficos recomiendan importar?? PNG con canal alpha(32bits), TGA...

Uso el photoshop Cs2 y el IfranView, para editar y conversar graficos.

Es que el FPG Edit me confunde, y no se cual es el fondo transparente real que Bennu me interpretará en el juego.
Si no voy probando... pero me gustaria saber, que formato se recomienda para añadir graficos, con color transparente negro o con canal aplha, y que calidad de colores y formato.

Teng graficos de 32bits png con su canal alpha y otros graficos antiguos de 8 bits con paleta.

Ayuda!
Super SMASH KeI (Wiz-PC)-V:0.05- Adaptacion a 16bits :)
PUSH (Wiz-PC)-V:0.83b- Multijugador! :)

Windgate

Yo te recomiendo usar el método de mi tutorial, los abres con Paint.NET (O similar), seleccionas el color de fondo con la varita mágica (Magic wand) y le das a la tecla Supr para convertir ese color en transparente. Al meterlos en un FPG de 16 bits lo tendrás correcto.

Otra opción menos recomendable es usar el Paint de Windows y el cubo de pintura con el color negro (0,0,0). En 16 bits se comporta como el transparente.

¿Te sirve así?

En 32 bits uso Gimp, y en la pestaña colores uso Color a Alpha, para convertir cierto color a transparente. Por ejemplo en un cielo con nubes, si haces esto último eliminas el cielo azul y dejas sólo las nubes, en 32 bits, muy lindo resultado :P
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

Drumpi

Yo trabajo con el paint y uso el negro absoluto como transparente, y un color cercano al negro como negro (0,0,5).
Pero lo más aconsejable y que funciona muy bien en FPGEdit (antiguo) es usar PNG con canal alpha.

Si no, es muy fácil hacer un código que cargue un FPG, ponga un fondo de un color, y vaya mostrando imágenes de ese FPG para ver si están bien las transparencias.
Yo tuve ese mismo problema y acabé por crearme una utilidad que me intercambiaba colores de forma masiva con varios formatos de imágenes, que recuerde ahora bmp, y map, y creo que unas cuantas de la image.dll, pero no recuerdo la efectividad. Sé que lo usé para crear las animaciones de ¡AH!, ya que a partir de un GIF obtenía las imágenes con un color de fondo diferente al negro.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Futu-block

y la compatibilidad a la hora de pasarlo a wiz??

o con poner ''320, 240, 16'' ya nos corrije solo ???

Windgate

Si usas fpgs de 16 en Wiz funcionará igual, pero si usas fpgs de 32 bits ahora mismo no sabría decirte... En Wiz hará lo mismo que en PC si pones set_mode ( 320 , 240 , 16 ), eso seguro.
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

SplinterGU

nop, no se pueden usar graficos de mayor resolucion que la resolucion destino... eso aplica para todo y ya lo dije muchas veces... estaria bueno poner estos tips en alguna seccion de la wiki...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

simulatorone

OK,
Ya lo pille. en parte hice pruebas :) todo bien!

en modo 16bits, se usa el color 100% negro RGB(0,0,0) y eso seria el transparente.
y en modo 32bits, usando el canalaplha con png.

ok, yo esk uso el photshop y puedo hacer cualquier cosa y formato.

PEro megustaria saber que valor RGB minimo seria al 100%negro o el 99%negro.
No quiero que se me note casi nada, si es posible.

Tu Drumpi dices de 0,0,5 por ejemplo, puede ser 0,0,1??


Pues si cargas un fpg de 32bits en modo 16bits NO te lo cargará nada, de echo no te da error ninguno.

Y si usamos el modo de 32bits y usamos graficos de 32,16 y 8 bits, si que lo carga perfectamente :)

Pero si cargais un png de 32bits, en modo de 16 bits, creo que lo tienes que pasarlo a un New_MAP de 16bits y hacer un map_put o un comando similar para converir esos 32bits del png a 16bits de forma automatica...

es asi?

o no es necesario hacer esa conversion? si estamos en modo 16bits y cargarmos un png de 32.
pregunto.


y es por curiosidad :)


PD: y el fpg editor 2009, ya me sivre, aun que no me muestra el color transparente correctamente como se veria en bennu. y eso me confunde y no puedo fiarme de el.
Cual fpg editor recomiendan usar?? y donde lo puedo descargar?
Super SMASH KeI (Wiz-PC)-V:0.05- Adaptacion a 16bits :)
PUSH (Wiz-PC)-V:0.83b- Multijugador! :)

SplinterGU

#7
cuidado, rgb(0,0,0) no es transparente... 0 es transparente.

no, no se puede hacer un put de un grafico de 32 en uno de 16... repito... "nop, no se pueden usar graficos de mayor resolucion que la resolucion destino... eso aplica para todo y ya lo dije muchas veces... estaria bueno poner estos tips en alguna seccion de la wiki..."

si estas en 16 podes cargar graficos de 32, pero no los vas a ver...

el alpha solo te hara el color transparente, pero ese grafico tendra colision en las zonas transparentes si no son 0.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

simulatorone

pues yo en mi juego esta en modo 16bits
y me deja cargar un png de 32 bits ,no los veré, vale... pero si puedo pasarlo a 16bits por comandos

los variables BO son locales y estan a 0.

FUNCTION CARGAR_MAPA_FX(NUMERO_DE_FX,STRING ARCHIVO_MAP,INT ANCHO_NUM_DE_FX,TOP_GRAFICOS);
BEGIN
GRAPH=LOAD_PNG(ARCHIVO_MAP);
REPEAT
IF(GRAFICOS_FX_MAP[NUMERO_DE_FX].GRAFICO[BO]);UNLOAD_MAP(0,GRAFICOS_FX_MAP[NUMERO_DE_FX].GRAFICO[BO]);END
GRAFICOS_FX_MAP[NUMERO_DE_FX].GRAFICO[BO]=NEW_MAP(192/2,192/2,CALIDAD_GRAFICA_BITS);
map_block_copy(0,GRAFICOS_FX_MAP[NUMERO_DE_FX].GRAFICO[BO],0,0,GRAPH,(192/2)*BO,(192/2)*BO[1],192/2,192/2,128);
BO++;
BO[2]++;
IF(BO[2]=>ANCHO_NUM_DE_FX);
BO[1]++;
BO[2]=0;
END
UNTIL(BO=>TOP_GRAFICOS);
GRAFICOS_FX_MAP[NUMERO_DE_FX].TOP_GRAFICOS=TOP_GRAFICOS;
UNLOAD_MAP(0,GRAPH);
END
Super SMASH KeI (Wiz-PC)-V:0.05- Adaptacion a 16bits :)
PUSH (Wiz-PC)-V:0.83b- Multijugador! :)

Futu-block

y hay alguna opción en el fpg editor para que te los pase a 16bits ????

panreyes

Es cierto, se "pueden" cargar PNGs de 32 bits en 16 bits, pero tiene más historia detrás xD

Luego, eso de que las partes 100% negras (0,0,0) del gráfico en 16 bits son transparentes es relativo. Eso ocurre al meter los gráficos con el FPG Edit xD

Por eso yo tengo un método alternativo en el que sólo y únicamente cuenta el canal alpha.
Si le pegas un vistazo a cualquiera de mis proyectos verás como se generan los, fpgs desde los pngs, en el momento de compilar.

Drumpi

Simulatorone, ten cuidado, porque como dicen, un alpha de 0 en un pixel no significa que sea transparente, no se ve, pero hace collision, no es lo mismo.

Y no, no puedes usar un rgb=(0,0,1) como valor no-transparente, porque al hacer la conversión a 16 bits se pierde resolución. Es decir, rgb usa 3 valores entre 0 y 255, que se representan como 3 bytes (8bits cada uno), sin embargo, la representación 16 bits en Bennu usa 5 bits para el rojo, 6 para el verde y 5 para el azul. esa diferencia de bytes hace que se "redondeen" los valores a lo más cercano representable por Bennu, por eso digo de usar rgb=(0,0,5).
Puede que sea más, puede que sea menos, no se el valor exacto, pero prefiero usar el azul porque es la componente más oscura de las tres, y esa diferencia apenas se nota.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)