OpenGL之點陣字體

OpenGL之點陣字體

在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的函式為例:

  1. 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};
  2. glPixelStorei(GL_UNPACK_ALIGNMENT, 1);// 對齊像素字節
  3. glColor3f(1.0f, 1.0f, 1.0f);// 顏色
  4. glRasterPos2i(x, y);// 設定位圖的位置
  5. glBitmap(16, 16, 0, 0, 16, 0, BITMAPFONT_B);// 渲染字符B

點陣字體的程序示例:下載

  1. 把輸入法設為英文
  2. 通過WM_CHAR接收ASCII碼並在屏幕繪畫
  3. 在遊戲設計中此方法也適用漢字渲染,只要把漢字轉換為點陣字體

評論