在屏幕上渲染圖檔與模型貼上紋理總會令人興奮,幸好在OpengGL繪畫圖像文檔也並不困難,並且實現左示例程式.下載:
- 載入並解釋圖像文檔如『.bmp』『.tga』『.pcx』
- 設置圖像左下角繪畫在屏幕位置glRasterPos2f(x, y);
- 設置圖像的縮放比glPixelZoom(xfactor,yfactor);縮放因子=屏幕尺寸/圖像尺寸
- 繪畫圖像glDrawPixels(width,height,format,type,pixels);與『DirectDraw』相比稍複雜點, 『DirectDraw』支持32Bit、16Bit、256色.而OpenGL卻直接支持32Bit、24Bit、256色、但要將像素『Pixel』倒轉排成RGB/RGBA順序
Format | 簡介 |
GL_RGB | 24Bit |
GL_RGBA | 32Bit |
GL_COLOR_INDEX | 調色板索引 |
type | 簡介 |
GL_UNSIGNED_BYTE | 像素『Pixel』分量的尺寸 |
GL_BITMAP | 點陣位圖1位『Bit』1像素『Pixel』 |
常見圖檔格式讀取與分析 | RLE解碼 |
Bitmap文檔 | 8Bit的bitmap支持RLE編碼 |
Targa圖檔 | 索引模式、RGB模式、灰度模式均支持RLE編碼 |
PCX圖檔 | 8Bit的PCX支持RLE編碼 |
PNG圖檔 |
渲染位圖C代碼演示:
- glPixelStorei(GL_UNPACK_ALIGNMENT, 4);// 4字節對齊
- glRasterPos2f(x, y);// 設定圖像左下角在屏幕的位置
- glPixelZoom((float)screen_width/(float)image_width, (float)screen_height / (float)image_height); // 設置全屏縮放
- glDrawPixels(image_width,image_height,format,type,image); // 繪畫