OpenGL畫素預設畫素儲存格式

2021-07-11 23:19:33 字數 1177 閱讀 8898

opengl的畫素儲存格式是有glpixedstore來設定的,預設情況下相鄰兩行的儲存的位置是相差4的整數倍,

也就是一行的儲存要用4的整數倍的位元組,不夠的情況下要補充。舉例說明:

(255,0,0),(255,0,0)_ _

(255,0,0),(255,0,0)_ _

這裡(255,0,0)表示三個連續的byte,「_」表示乙個byte,這樣一行就是「(255,0,0),(255,0,0)_ _」,正好是8個byte,這裡「_」表示補充的byte。

用**來測試一下:讀取rgba,然後再提取其中的rgb,在畫到螢幕上:

#include #include #include #includeusing namespace std;

int winx = 512, winy = 512;

void initialize()

int para;

glgetintegerv(gl_pack_alignment, ¶);

cout << para << endl;

glgetintegerv(gl_unpack_alignment, ¶);

cout << para << endl;

glclearcolor(0., 0., 0., 1);

}void reshape(int w, int h)

void display()

glend();

vectorimage(winx*winy * 4);

glreadpixels(0, 0, winx, winy, gl_rgba, gl_unsigned_byte, image.data());

vectordata;

int len = winx*3 ;

if (len % 4) len += 4 - (len % 4);

data.resize(len*winy);

for (int i = 0; i < winy; i++) }

glclear(gl_color_buffer_bit);

gldrawpixels(winx, winy, gl_rgb, gl_unsigned_byte, data.data());

glfinish();

}void main(int argc,char **argv)

OpenGL畫素操作

簡單的opengl畫素操作 opengl提供了簡潔的函式來操作畫素 glreadpixels 讀取一些畫素。當前可以簡單理解為 把已經繪製好的畫素 它可能已經被儲存到顯示卡的視訊記憶體中 讀取到記憶體 gldrawpixels 繪製一些畫素。當前可以簡單理解為 把記憶體中一些資料作為畫素資料,進行繪...

OpenGL畫素格式

前文中描述了opengl的影象格式,本文接著描述畫素格式 影象格式可以理解為對gpu中資料的解釋,那麼對於cpu端 也就是記憶體中 的資料解釋就是畫素格式的內容。畫素資料一般會在cpu和gpu中進行傳輸,如果傳輸過程是從gpu到cpu一般稱為壓包 pack 從cpu到gpu的傳輸稱為解包 unpac...

OPENGL 單位長度對應螢幕畫素

fovy 視角,指定視景體的視野的角度,以度數為單位,y軸的上下方向 x軸的視角可以由y軸視角和視景體的寬高比計算出 aspect 視景體的寬高比 視窗的縱橫比,即x y znear 指定觀察者到視景體的最近的裁剪面的距離 必須為正數 zfar 指定觀察者到視景體的最遠的裁剪面的距離 必須為正數 在...