Expecificación formato FNT 32 bits

Started by izubiaurre, February 03, 2009, 06:54:17 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

DCelso

#30
drumpi, he probado tu conversor con mi fuente de 8 bits y me pasa lo mismo consigo obtenerla convertida en 16 bits pero con los colores cambiados.
el resultado de bgdi fconv fuente8bits.fnt

Compresion = 1
Formato = 1
Bpp = 16
Error de lectura: 0
Datos convertidos.
Error de escritura: 0

luego si usas la fuente 8bit y la fuente convertida en un programa prg de 32bits de profundidad no se ven del mismo color.
Y además si intentas usar la fuente de 16 bits en un prg de 16 bits, el programa se queda colgado

Edit: parece ser que es culpa de la versión que tengo de bennu, así que repetiré la prueba con la siguiente versión de bennu. Mientras ignora el post :D
Monstruos Diabólicos

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

splinter_work

muchas gracias drumpi, volvere a revisar esto, hoy por la noche... saludos.

Drumpi

Raro, porque ya he dicho que he convertido una fuente 8 bits div-mode a 16 bits fenix-mode, y de momento no me ha dado problemas de cuelgues en modo 16 bits... aunque claro, sólo la he usado en Fenix ^^U (ya sabeis que estoy en periodo de transición, dadme unos meses).
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)

Windgate

He estado jugando a World of Warcraft estos días, ¿Créeis que las fuentes que usa en la ventana de son de 32 bits? Lo digo por la transparencia y nitidez que tienen... ¿O es que es una Arial y nunca uso fuentes "normales" en mis juegos?


Me ha llamado la atención que se trata de una letra minúscula, pero se lee perfectamente... Aunque como os digo no soy capaz de distinguir si son 16 o 32 bits ;D
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

DCelso

No parece que tenga transparencias.El rosa, morado y azul siempre es el miso independientemente de la imagen de atrás.
Puede que sean muchas letras (una para cada color) de  32 bits pero con canal alfa a 255 excepto en los píxeles transparente que está a 0.
O puede que sea una letra de 1 bit a la que cambian el color del bit a mostrar. Si ves última la imagen que adjunté en el post de acerca de fnt y los 8 bits, verás una fuente de un bit en dos colores distintos usando settextcolor.
Monstruos Diabólicos

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

Windgate

No me refiero a transparencias totales, me refiero a que no hay pixelado en los bordes de esas fuentes, parece que los pixels del borde de las fuentes tienen una transparencia parcial para lograr más nitidez, desde luego son nítidas de narices y aunque la captura es un poco caca en el juego es soberbio lo bien que se lee.

Voy a mirar la imagen que dices, en temas de fuentes de 1 bit no estoy muy puesto... Y set_text_color nunca lo he usado :-\
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

Creo que eso es un añadido del sistema operativo llamado "suavizado de bordes" (si no es del operativo será de alguna librería o similar) Creo que es una de las ventajas de usar formatos de fuentes a las que luego se les puede especificar el tamaño. Fijate que la ttf.dll genera FNT a partir de una fuente y un tamaño, y que se puede escribir en word en cualquier tamaño (como si el formato de las fuentes fuera como las imágenes vectoriales).
No es lo mismo que en los FNT, donde cada letra en realidad es una imagen.
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)

Windgate

Cierto, ya me había percatado que las TTF se comportan como gráficos vectoriales, de hecho con InkScape puedes hacer una letra del tamaño de una casa y los bordes se mantienen suaves e inmaculados.

Quizás en el World of Warcraft hayan puesto alguna especie de soporte para TTF o algún formato similar, eso permitiría incluso realizar zoom a los textos... :D

La verdad, lo comento todo desde una capa muy superficial ya que no conozco cómo están implementados los ficheros .fnt de Bennu, sólo me quedo con la idea de que son gráficos, pero la idea de poder usar fuentes en 32 bits con una relativa sencillez me atrae muy mucho.

(Hablando de gráficos vectoriales, alguien ya comentó algo de una librería libre que soportaba .svg, se llamaba Cairo y le eché un vistazo en su día, aunque la idea de portarlo a Bennu me resulta demasiado compleja)
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

Windgate, los FNT son básicamente FPG, sólo que tienen información distinta en la cabecera y sólo soportan 255 gráficos. De hecho, y como ya llevo demasiado tiempo retrasándolo y seguramente no lo haga, estuve pensando en diseñar el motor de tiles sustituyendo los procesos que manejan los tiles por cadenas de texto, usando como "fuente" un FNT que guardase los tiles, lo cual hubiese ahorrado la carga de manejar procesos, las variables asociadas, y permitiría una forma completamente sencilla de cambiar los gráficos "in the fly"... pero como tuve problemas raros generando las fuentes y me puse de parto... estooo, de exámenes, pues quedó relegado a una posición poco prioritaria de mi pila.

Respecto a añadir soporte SVG a Bennu, podría ser el inicio de la invasión de los programadores flash :D aunque no se qué es más sencillo, si flash o bennu.
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)

SplinterGU

fijate la palabra "moment", la "nt", eso tiene alphas... mira como la parte superior se ve el fondo...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

Quote from: Drumpi on July 29, 2009, 11:17:32 PM
Windgate, los FNT son básicamente FPG, sólo que tienen información distinta en la cabecera y sólo soportan 255 gráficos. De hecho, y como ya llevo demasiado tiempo retrasándolo y seguramente no lo haga, estuve pensando en diseñar el motor de tiles sustituyendo los procesos que manejan los tiles por cadenas de texto, usando como "fuente" un FNT que guardase los tiles, lo cual hubiese ahorrado la carga de manejar procesos, las variables asociadas, y permitiría una forma completamente sencilla de cambiar los gráficos "in the fly"... pero como tuve problemas raros generando las fuentes y me puse de parto... estooo, de exámenes, pues quedó relegado a una posición poco prioritaria de mi pila.

Respecto a añadir soporte SVG a Bennu, podría ser el inicio de la invasión de los programadores flash :D aunque no se qué es más sencillo, si flash o bennu.

Jejeje... es buena idea... como experimento... pero yo no te sugiero que hagas eso, los textos consumen muchisimo... muchisimo...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Windgate

¿Los textos consumen muchísimo...? Me acuerdo de mi carrera en la que durante los 4 primeros años no hicimos más que trabajar con textos, hicimos un par de juegos pero 100% basados en caracteres con mil complicaciones para luego llegar a Bennu y descubrir que todo es muuucho más fácil y que existen librerías gráficas.

No sé si flash es más sencillo que Bennu, sólo sé que me puse con flash en su día y me pareció aburridísimo, apenas logré dibujar un cuadrado y moverlo, y me rendí. Después de 2 años programando en Bennu y en prácticamente nada más para mí Bennu es tan sencillo como el lenguaje hablado xD

Dar soporte a .svg me parecería un punto fuerísimo para Bennu, ya que los efectos de zoom (La variable size en particular...) no tienen nada que ver con lo que permitiría un dibujo vectorial.

Y si vienen flasheros que vengan xD

Me estoy saliendo del hilo... Ahora me viene a la mente que alguien habló recientemente de dar soporte a los textos para poder rotarlos. Nunca he probado el "write_text_in_map" o como se llame, pero con eso debería valer, ¿No? Clonando el mapa base y escribiendo sobre la copia cada vez no le veo mayor complicación.
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

obviamente que me refiero a los textos de bennu...

los textos en fenix/bennu consumen muchisimo, porque hacen blit de caracter a caracter... lo que representa recalcular cada uno de los mismos, calcular posiciones, dibujarlos, etc...
es una de las cosas mas costosas del motor...

Drumpi

Hombre, pero eso tambien se hace si cada tile usa un proceso. Pero vamos, buscaba formas de optimizar el motor de tiles en GP2X sin usar código C, y tenía que tirar por la vertiente de usar herramientas Fenix/Bennu. Ahora he pensado en usar el scroll con un gráfico grande (640x480 por ejemplo), una técnica similar al graph_tscroll, pero con un mapa más pequeño y sólo modificando parte del gráfico (la fila o columna que está a punto de verse).
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)