Problema con mod_ttf

Started by Outlaw, July 18, 2013, 04:37:42 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Outlaw

#45
Yo estoy de acuerdo con lo que decís DCelso, nada más acertado! Pero lo que yo buscaba era tener fuentes que se vean bien, sin pixelarse. Es por eso que pensaba que una fuente true type sería la solución. De hecho, nunca antes se me había pasado por la cabeza por el hecho de que las .fnt tienen mucha más personalización.
Pero, volviendo al tema, lo que necesito es una fuente que no pixele, ¿hay alguna manera de hacer esto con las .fnt?



Y edito: ¿Hay alguna manera de aplicar antialiasing a una .fnt? Claro, una vez cargada en memoria, en pleno procesamiento del programa...
"Life is cheap when the bounty is high"

SplinterGU

podrias hacerlo dibujando varias veces el texto con alpha, 1 pixel corrido.

ya no recuerdo si se puede escribir textos con alphas, creo que si.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

master

#47
Puedes dentro del fnt puedes poner los gráficos de cada caracter de tu fuente para el tamaño que quieras con el efecto de antialiasing, yo lo que hago es escribir en un programa de dibujo como Inkscape y luego mas tarde lo exporto a png y las inserto en el fnt Con el FPGeditor 4 r81 de DCelso, las letras se verán con el efecto de antialiasing con todo y transparencia (esto si estas usando 32 bits. También se puede hacer esto mismo para fuentes de 16, pero necesitas saber el color de fondo para simular el efecto)
Tal ves sea tardado, pero ya no dependes de los ttf y el efecto es el mismo

Outlaw

Gracias por sus respuestas. De hecho pensé que había una forma más fácil de hacerlo, pero bueno capaz que haya que esperar a la nueva versión de Bennu, tal vez haya algo para estos menesteres.
Mientras tanto estuve leyendo mucho sobre algoritmos de anti-aliasing, tal vez con un poco de tiempo me anime a tratar de hacer algo con eso... Pero bueno, creo que lo mejor sería quitar la mod_ttf de las librerías, y cerrar este hilo. Saludos y gracias a todos!
"Life is cheap when the bounty is high"

SplinterGU

igual tengo entendido que la mod_ttf no te dibuja las fuentes vectorizadas, las convierte a bitmaps y se manejan como fonts normales pixelados de bennugd, supongo que tendran antialias, pero tu tambien puedes crear las fonts normales con antialias con el fntedit (o eso creo)
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Outlaw

Tal cual Splinter, creo que la única persona que pensó que se vectorizaban fui yo  :P
De cualquier manera, creo que lo ideal es que me ponga a ver si puedo hacer una función que imprima texto en pantalla pero con un proceso de anti-aliasing. Igual, es algo que le tengo que dedicar tiempo, tal vez me salga o tal vez no. Si tengo algún avance ya lo postearé por acá!
Saludos!
"Life is cheap when the bounty is high"

DCelso

outlaw. No se lo que pretendes hacer pero quizás no estés empleando bien el término antialiasing.

Con la antialiasing lo que se hace es "suavizar" los bordes de una imagen, para ello se entremezclan (a traves de transiciones de color) los bordes poco a poco con los colores del fondo, en formatos inferiores a 32 bits es un diseño manual dependiente del color de fondo ya que hay que generar los colores intermedios entre el fondo y los bordes.

En formatos de 32 bits ello se hace con transiciones alfas del color del borde por lo que sirve para cualquier fondo que pongas ya que la componente alfa será la que se encargue de mezclar y sacar los colores intermedios.

Quizas tu texto se vea pixelado porque sea extraído de un tipo de letra pequeño y luego ampliado sin aplicar filtros de redimensionado.

Necesitaría un ejemplo exacto, pantallazo o lo que sea, para ver más a fondo lo que mencionas.

Pero el truco de master es buenísmo para sacar .fnts de 32 bits con antialiasing integrado.

Creas tu texto, los 256 caracteres que permite un fnt, con inkscape con la opcion antialiasing marcada y tu fuente truetype que quieras, luego lo exportas a png y finalmente lo conviertes a fnt con fpgedit 4.0 (es lento, hay que hacerlo letra a letra, o sea 256 veces, pero es eficaz)

No se si el editor de fuentes de fpgedit puede crear letras con antialiasing, porque yo directamente no se lo he añadido, pero creo recordar que vi algo de ello en las opciones de selección de fuente, por lo que quizás puedas hacerlo del tirón.

Te recomiendo que pruebes todas las opciones de generar fnts del fpg editor 4.0 (para el que no lo sepa os recuerdo que fpg editor 4.0 es un IDE basado en el propio de DIV que intenta dar todas las opciones que éste tenía, por lo que no solo sirve para editar fpgs, sino también para editar .prgs y .fnts, retocar gráficos modo pixel art, y lanzar la compilación o ejecución de .prgs, osea que va completito)

Monstruos Diabólicos

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

Erkosone

En bennu se pueden modificar los gliphs de una fuente?


Me suena haber leido algo al respecto, si la respuesta es si, te recomiendo que te mires el algoritmo Square/Diamond, es super sencillo de implementar en bennu y te permite hacer suavizados de todo lo que quieras, interior, contornos, exterior, contornos interiores etc..

Outlaw

Gracias por tan útil información DCelso, y a vos también Erko. Saludos!
"Life is cheap when the bounty is high"

Drumpi

Respondiendo a erkosone: sí, se pueden editar las fuentes desde Bennu mediante get_glyph y set_glyph. Creo que existe una new_fnt, pero la profundidad de color no recuerdo si va en la función o adopta los bpp del primer gráfico que se le añada.
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)