FPG Edit 2009

Started by DCelso, June 08, 2009, 05:13:51 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Drumpi

#30
¿Los FPGs de 1 bit llevan la cabecera f01? Según lo que yo he leido llevan la cabecera f16, común a todos los formatos nuevos de Fenix, y sustituyen el campo "versión" por el de profundidad.
Y respecto a FPG-MAP el cambio no es tan dramático, yo lo he hecho con código Fenix y apenas cambia (sólo la cabecera):
http://www.fenixworld.com/e107_plugins//depot/files/fw75.ccolor.zip
Busca el fichero export.inc

De todas formas, me interesa ver el formato 1 bit, si tu lo has conseguido, voy a revisar tu código, a ver por qué me falla a mi.
PD: LOL, no has incluido el código fuente en esta version, snif (mejor, así me pongo a estudiar).
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)

DCelso

Eso de f01 lo extraje del código SVN de bennu en el load_fpg. Lo que tú dices es un poco paradógico, ¿profundidad en una imagen de un bit?
De todas formas el formato 32 sí es f32, no hace eso que dices de usar la versión ni nada. Probado y corroborado, a lo mejor estás confundido con otra historia en otro proyecto, por ejemplo gem..., este, no dije nada. :D.

En cuanto al fuente, :D, tas quedao to partío eh, bueno a la siguiente a ver si limpio la porquería y lo subo, ahora me da nosequé de que se vea :D.

A ver si me da un poco de luz esto que comentas para los maps, gracias.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

Drumpi

Pues habrá cambiado el formato en las últimas versiones de Bennu, pero te aseguro que lo que yo he dicho está extraido del código fuente de Fenix 092a. En fin, si ves el código del editor de FNT que te he puesto en el otro lado, con eso he hecho una fuente de 16 bits, y la rara que comento de 1 bit.
Juer, que manera de postear.
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)

panreyes

Quote from: DCelso on June 11, 2009, 03:47:27 PM
Pixel, ya quisiera yo que grabase pngs, estoy contigo en ello, pero bueno, ahora exporta a tga que es parecido y a bmp, a las malas usas un conversor externo para retocarlas, pero vamos es tontería, lo suyo sería tener la imagen original antes metida en tu fpg para retocar, eso de extraer imágenes de un fpg es un poco ingeniería inversa, para "robar" sprites de fpgs externos :D. Actualmente no exporta a PNGs porque eliminé las librerías externas que usaba ya que era una para gifs y otra para pngs sin soporte a 32 bits, solo engancho con un componente pascal llamado graphicsext que lee muchos formatos de imagen pero solo guarda en formato tga, el autor dice que con el tiempo exportará a todos los tipos, así que yo prefiero esperar a que lo haga el tío que es que soy muuuy vago yo para esos menesteres de programación interna de protocolos complejos :D.
Sin problema :)
Cuando necesite un fpg en pngs utilizaré fpg2png xD

Quote
Lo que comentas de no usar el negro como transparente es factible, al igual que hace bennu, cuando vea un r=0 g=0 b=0 puedo guardar un byte 1 en vez de 0.

Lo veo un poco tonto porque sin color transparente en fpgs de 16 bits los juegos serían un tanto en cuanto cuadráticos :D. Te tocaría posprocesar las imágenes en código bennu para poner cosas transparentes :D.

No me entendiste xD
(tengo entendido)Los png suelen utilizarse de 24 bits, de los cuales 16 bits son colores y 8 son de alpha. Supongo que esto lo sabrás mejor que yo xD
El problema que tengo con fpg edit es que, cuando añado al fpg un png de 24 bits, coge la transparencia del color alpha y también del color rgb(0,0,0). Fenix y Bennu, cuando les cargas un png de 24 bits directamente (o también si creas el fpg con png2fpg) no cogen como transparente el color rgb(0,0,0), sólo les interesa el canal alpha. No sé si me entiendes :)

Haz la prueba: crea un gráfico de 16 bits, ponlo totalmente negro #000, y fíjate que fpg edit lo verá transparente y fenix nop.

También es probable que la gente que no entienda de canal alpha utilice este método para las transparencias, así que consideraría añadirlo como una opción.

Windgate

Cierto, el negro (0,0,0) el FPG Edit lo convierte en transparente. Algunas veces he lidiado con Windows 98 y ante la imposibilidad de usar un programa de diseño gráfico decente que soporte PNGs y/o canal alpha optaba por pintar con negro (0,0,0) usando el Paint de Windows de toda la vida. El resultado -> Transparente.

No controlo demasiado sobre formatos de imagen así que no creo que pueda ayudaros demasiado. Lo que sí he hecho es un pack con el FPG Edit 2009 completo y funcional, no sólo el "parche" que hay en MegaUpload:

http://www.mediafire.com/?mnndjakmdjz

La mierda es que no he puesto el soporte para FPGs de 1 bit, he llegado tarde... Pero vamos, sería cambiar el .exe y ya.

Repito que este FPG Edit 2009 debe ir al Bennupack de cabeza, es un pequeño paso para Bennu pero un gran paso para la humanidad.
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

splinter_work

el atajo al fatal gdm stop, es ctrl+alt+backspace.


splinter_work

NONONONO!
Error, eso del 50% es solo para modo 16 bits (fpg16)... los graficos de 32 bits (fpg32) se cargan como tal, no se hace ninguna conversion... no hacer conversion sobre mapas de 32 bits porque perdemos la magia.

splinter_work

Es correcto lo que dice Dcelso, es f01 para fpg de 1 bit... y el numero de version o se usa para la profundidad, quizas ahi esta el error.

splinter_work

Quote from: PiXeL on June 11, 2009, 07:46:29 PM
Quote from: DCelso on June 11, 2009, 03:47:27 PM
Pixel, ya quisiera yo que grabase pngs, estoy contigo en ello, pero bueno, ahora exporta a tga que es parecido y a bmp, a las malas usas un conversor externo para retocarlas, pero vamos es tontería, lo suyo sería tener la imagen original antes metida en tu fpg para retocar, eso de extraer imágenes de un fpg es un poco ingeniería inversa, para "robar" sprites de fpgs externos :D. Actualmente no exporta a PNGs porque eliminé las librerías externas que usaba ya que era una para gifs y otra para pngs sin soporte a 32 bits, solo engancho con un componente pascal llamado graphicsext que lee muchos formatos de imagen pero solo guarda en formato tga, el autor dice que con el tiempo exportará a todos los tipos, así que yo prefiero esperar a que lo haga el tío que es que soy muuuy vago yo para esos menesteres de programación interna de protocolos complejos :D.
Sin problema :)
Cuando necesite un fpg en pngs utilizaré fpg2png xD

Quote
Lo que comentas de no usar el negro como transparente es factible, al igual que hace bennu, cuando vea un r=0 g=0 b=0 puedo guardar un byte 1 en vez de 0.

Lo veo un poco tonto porque sin color transparente en fpgs de 16 bits los juegos serían un tanto en cuanto cuadráticos :D. Te tocaría posprocesar las imágenes en código bennu para poner cosas transparentes :D.

No me entendiste xD
(tengo entendido)Los png suelen utilizarse de 24 bits, de los cuales 16 bits son colores y 8 son de alpha. Supongo que esto lo sabrás mejor que yo xD
El problema que tengo con fpg edit es que, cuando añado al fpg un png de 24 bits, coge la transparencia del color alpha y también del color rgb(0,0,0). Fenix y Bennu, cuando les cargas un png de 24 bits directamente (o también si creas el fpg con png2fpg) no cogen como transparente el color rgb(0,0,0), sólo les interesa el canal alpha. No sé si me entiendes :)

Haz la prueba: crea un gráfico de 16 bits, ponlo totalmente negro #000, y fíjate que fpg edit lo verá transparente y fenix nop.

También es probable que la gente que no entienda de canal alpha utilice este método para las transparencias, así que consideraría añadirlo como una opción.

#000 no uses rgb, pon en vez de rgb(0,0,0) el valor 0, y vas a ver como fenix lo trata de transparente.

DCelso

#39
En primer lugar, las imágenes png de 24 bits por pixel son siempre de 3 canales RGB de 8 bits por canal. El tipo de imagen de 24 bits por pixel que comentas sería de 3 canales RGB con 5 bits para el canal R, 6 para el G, 5 para el B y 8 para el canal alfa, esto no lo soporta el PNG standar, no se si alguna ampliación lo llevará, tampoco conozco ningún formato que lo use. Mi fpg24 bits es igual 3 canales RGB de 8 bits por canal. A efectos prácticos es exactamente igual que el modo 16 bits pero de mayor precisión en color.
Mira la siguiente tabla de formatos permitidos para PNGs http://es.wikipedia.org/wiki/PNG

En segundo lugar a ver, siempre volvemos al mismo sitio cuando hablamos de transparentes :D. No queda muy claro para algunos :D, intenté hacer el documento para evitar esto mismo. En resumen

PNGs de 8 bits: estos tienen una paleta de 256 colores posibles, el formato PNG permite seleccionar un color de esta paleta como transparente y éste color no será representado por los visores que soporte esto. Bennu no lee ésta información adicional del png, siempre usará el primer color de la paleta como color transparente independientemente de cual sea este, esto es porque el primer color de la paleta corresponde a la posición cero  y bennu cuando lee un 0 en los datos de pixel de la imagen lo trata como transparente, es decir no lo dibuja, esto hace que el color de la posición 0 de la paleta no se lea nunca.

No existen pngs de 16 bits con tres canales (RGB), así que no podemos tratar este tema.

Pngs de 24 bits: usa tres canales (RGB) cada uno de 8 bits. Un pixel viene representado por un entero de 24 bits donde sus 8 primeros bits representan la componente roja, los 8 siguientes la componente verde y los 8 últimos la componente azul, el entero de 24 bits con valor igual a 0 corresponde a R=0 G=0 B=0. Hablo a nivel de información de PNG que quede claro. Este valor 0 en el entero de 24 bits de un pixel de la imagen es el que usa bennu para usarlo como transparente, es decir no dibujará los píxeles de la imagen que tengan como valor de 24 bits un 0.Esto implica que no podemos ver nunca el negro puro. Aqui es donde entra el truco que hace bennu internamente, cuando  usas la función RGB(0,0,0) en realidad guarda un 1 en vez de un 0 como hacen los programas de imagen. Esto hace que ese pixel se vea.

Si creas con FPG Edit un fpg de 16 bits y le añades una imagen, como fpg edit no hace esa conversión, el negro no se verá en Bennu, ya que éste sí que graba un 0 en los 16 bits que representan al pixel.
AQUI ES DONDE ESTÁ EL MISTERIO DEL NEGRO DE FENIX.

Ahora viene lo Guapo. Imágenes PNG de 32 bits. son 3 canales (rgb) de 8 bits por canal y un canal alfa de 8 bits.
Aquí el negro es negro y siempre lo será :D, el canal alfa es el que indica cómo de transparente es cada pixel, permitiendo semitransparentes. Claro para ello necesitamos que bennu esté en modo 32 bits sino se produce lo que probablemente haya liado a Pixel.
En modo 16 bits bennu puede cargar imágenes PNG de 32 bits como peculiaridad usa el canal alfa de la imagen para saber si un pixel es transparente (del 0 al 128 Sí es transparente del 128 al 256 no es transparente), así que en modo 16 bits usando imágenes de 32 bits podemos usar el negro como negro y no como transparente.

El problema que te pasa a ti pixel, es que usas fpgs de 16 bits, actualmente en fpg edit, si metes en este tipo de fpg una imagen de 32 bits pasa lo que comentas ya que usa el canal alfa para ver si es transparente y mete un negro puro para que bennu lo use como transparente, El problema está en que si usaste negro en tu imagen de 32 bits pues también se verá transparente, tendré que meterle un filtro a este tipo de imágenes para convertir a priori el negro puro en 1. Lo apunto como tarea
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

panreyes

Mmm... me acabo de dar cuenta de que siempre he utilizado PNGs de 8 y de 32 bits (no sé sumar 8+8+8+8=24 xD)

Luego, cuando decía PNGs de 24 bits me refería a 32 bits xD

De todas formas, veo por tu último párrafo que has entendido mi problema :)

DCelso

Neng, estoy que no paro. Post inicial actualizado con nueva versión. Espero que última y refinitiva :)
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

syous

 ;D karma up eres un crack
Un Saludo
EL dia que la humanidad aprenda a mirar y sentir con los ojos del alma, recuperara su humanidad
http://sodonline.net/
http://darknessage.ayudaprogramacion.net/
http://www.ayudaprogramacion.net/

Proyecto: MMORPG
Completado: 2%
Estado: En Desarrollo...

syous

Quote from: splinter_work on June 11, 2009, 08:32:50 PM
el atajo al fatal gdm stop, es ctrl+alt+backspace.



a mi me va bien como lo uso pues a veces como tu dices ni caso ;D
Un Saludo
EL dia que la humanidad aprenda a mirar y sentir con los ojos del alma, recuperara su humanidad
http://sodonline.net/
http://darknessage.ayudaprogramacion.net/
http://www.ayudaprogramacion.net/

Proyecto: MMORPG
Completado: 2%
Estado: En Desarrollo...

DCelso

Hi, de nuevo, bueno ya que splinter me explicó las peculiaridades del formato de un bit en bennu, me he puesto manos a la obra para que fpgedit lo haga igual.
Quedaré a la espera de que salga la nueva versión de bennu para probarlo.
He actualizado el post inicial con la última versión.
Ya me parece que no sacaré versión nueva en largo tiempo, esta la veo estable y bastante funcional.
Saludos.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/