『漢字字庫』同 『ASCII字庫』原理同, 字庫『竪排』, 漢字『32*32』pixel, 『竪』32漢字.
由上至下,由右至左排列.可填1024字符,每色8Bit. 即『索引色』『調色板』.
准備庫位圖
- 白紙黑字,
- 白色係透明色. 黑色係變換色.
Photoshop轉為『索引色』
- 『影像』->『模色』->『索引色』
- 『色盤』揀『正確』.
- 『顏色』量3
- 『强制』揀『黑白』
- 『透明』勾選
- 存為『.pcx』或『.bmp』
止時圖檔『調色板』共有三色『黑』『白』『透明』.
IMAGE-SIZE | 1024*1024 |
FONT-SIZE | 30pt |
FONT | 衡山毛筆フォント |
FONT-PIXEL | 32pixel*32pixel |
影像-模色 | 索引色 |
色盤 | 正確 |
顏色 | 3 |
强制 | 黑白 |
透明 | 勾選 |
『調色板』結构同DirextX唔同, 將flags存alpha『透明值』0~255,0係『透明』,255係『實心』
typedef struct PALETTE_TYP {
BYTE red; BYTE green; BYTE blue; BYTE flags;//alpha } PALETTE,COLOR,* PALETTE_PTR,*COLOR_PTR; |
設置『調色板』顏色
#define INIT_PALETTE(palette,r,g,b,a) {(palette).red=(r); (palette).green=(g); (palette).blue=(b); (palette).flags=(a);} |
黑字『調色板』設置
index | red | green | blue | Alpha |
253 | 0xff | 0xff | 0xff | 0x00 |
255 | 0x00 | 0x00 | 0x00 | 0xFF*0.5f |
白字『調色板』設置
index | red | green | blue | Alpha |
253 | 0x00 | 0x00 | 0x00 | 0x00 |
255 | 0xff | 0xff | 0xff | 0xFF*0.5f |
半透明,激活混合
glEnable(GL_BLEND); |
設混合模式, 渲染時Alpha值混合.
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); |
激活透明测试
glEnable(GL_ALPHA_TEST); |
Alpha=0時, 過濾背影色
glAlphaFunc(GL_GREATER, 0); |