在OpenGL輸出文字可用繪畫好的文本位圖,再繪畫上屏幕.也是遊戲製作通用手法.將基本ASCII文本存為16Bit*16Bit(32Byte)二進制點陣字體
指定位圖的繪畫位置
void glRasterPos2i(GLint x, GLint y);
繪畫位圖
void WINAPI glBitmap(
GLSizei width, GLSizei height, ASCII文本的寬和高這裡均為16
GLfloat xorig, GLfloat yorig,當前繪畫位置的偏移
GLfloat xmove, GLfloat ymove, 下次繪畫位置的增量
const GLubyte *bitmap); 二進制點陣字體
以位畫字符B的函式為例:
- const unsigned char BITMAPFONT_B[] //16Bit * 16Bit 點陣字體={ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x66,0x00,0x66,0x00,0x66,0x00, 0x66,0x00,0x7C,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0xFC,0x00,0x00,0x00,0x00,0x00};
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);// 對齊像素字節
- glColor3f(1.0f, 1.0f, 1.0f);// 顏色
- glRasterPos2i(x, y);// 設定位圖的位置
- glBitmap(16, 16, 0, 0, 16, 0, BITMAPFONT_B);// 渲染字符B
點陣字體的程序示例:下載
- 把輸入法設為英文
- 通過WM_CHAR接收ASCII碼並在屏幕繪畫
- 在遊戲設計中此方法也適用漢字渲染,只要把漢字轉換為點陣字體