2010-08-14 10 views
6

Sé que puedo hacerlo con GLUT. Pero tengo un gran proyecto y tuve problemas para agregar GLUT (estoy usando Delphi).¿Cómo dibujar un texto (escribir en la pantalla) usando las funciones estándar de OpenGL?

Entonces, ¿qué otras opciones tengo?

+0

Estoy usando Delphi para escribir OpenGL, así que básicamente no puedo usar archivos de encabezado. Si hay una biblioteca externa, tengo que tener un archivo .dll para poder usarlo. – Mahm00d

+0

¿Esto te ayuda? http://wiki.delphigl.com/index.php/wglUseFontBitmaps – Lars

Respuesta

6

No puede hacerlo con las funciones estándar de OpenGL, a menos que tenga básicamente texturas con texto en ellas, o una lista de caracteres en una textura que extraiga. Pero no reinvente la rueda: recomendaría FTGL para representar texto en una vista OpenGL. Tiene varios métodos de representación diferentes y se ocupa de cosas como el interletraje, admite Unicode y también tiene buenas características de métricas de texto.

+0

¿Tiene FTGL un archivo .dll? Porque todo lo que veo en su sitio son los archivos de encabezado. Estoy usando Delphi y necesito agregar un archivo .dll para poder usarlo. – Mahm00d

+0

Tiene vínculos DLL y estáticos disponibles, consulte los documentos del sitio para obtener más información. – AshleysBrain

1

Utilice FreeType para generar un mapa de bits dado su texto.

Edit: Es una biblioteca madura multiplataforma que ofrece una completa capacidad de visualización de texto basada en fuentes, incluidas las fuentes normales Windows TrueType. Aquí es su definición de Wikipedia:

FreeType es una biblioteca de software escrito en C que implementa un motor de rasterización de fuente . Se usa para rasterizar caracteres en mapas de bits y proporciona soporte para otras operaciones relacionadas con fuentes .

+0

¿Puedes explicarnos cómo funciona eso? Quiero decir, ¿FreeType es un procedimiento o una unidad para usar? – Mahm00d

+0

@FlomEnol, verifique la respuesta actualizada. – mmonem

1

Si haces decide implementar su propio sistema de fuentes asegúrese de usar un texture atlas, que he visto demasiadas demostraciones de OpenGL que usan una textura por glifo, lo que conduce a un rendimiento atroz (debido a los gastos incurridos en el caché de texturas y el controlador OpenGL).

Cuestiones relacionadas