OpenGL的紋理顯示 筆記

2021-07-29 22:11:55 字數 789 閱讀 1197

定義頂點陣列vertex array:-1到1之間及紋理座標(0到1之間)

生成紋理: glgentextures

繫結紋理: glbindtexture: 引數gl_texture_2d告訴opengl,這應該被作為乙個二維紋理對待

載入紋理到opengl: teximage2d,把點陣圖資料複製到當前繫結的紋理物件

增加vertex shader: 頂點座標(-1到1之間),紋理座標(0到1之間,s座標和t座標,二維陣列)

增加fragment shader:著色:gl_fragcolor = texture2d(紋理單元id, 紋理座標 ):讀出紋理中那個紋理座標處的顏色值

將頂點和紋理座標陣列分別繫結到vertex shader和fragment shader中去

啟用紋理單元0(glactivetexture),並把紋理繫結到這個紋理單元0(glbindtexture),告訴片段著色器使用紋理單元0(gluniform1i(utexture->unitlocation, 0))

渲染:gldrawarrays

使用buffer的改變:

將資料傳到gpu buffer: glbufferdata(gl_array_buffer...)

設定shader的attribute:

繫結buffer: glbindbuffer

glvertexattribpointer

glenablevertexattribarray

解除繫結: glbindbuffer

索引緩衝區:gl_element_array_buffer

opengl紋理單元

可以這樣簡單的理解為 顯示卡中有n個紋理單元 具體數目依賴你的顯示卡能力 每個紋理單元 gl texture0 gl texture1等 都有gl texture 1d gl texture 2d等,如下 cpp view plain copy print struct textureunit te...

openGL 紋理使用

最近找了點資料學習了下opengl 紋理的使用 先有個 整體把握,然後再去看大部頭中的細節講解,感覺這樣的學習方式好些 總結下紋理使用總體流程 1 啟用紋理 glenable gl texture 2d 2 載入紋理 3 紋理 的顯示 載入紋理 1 讀取紋理影象高寬和畫素資料到記憶體中,老版本 op...

OPENGL紋理基礎

對於vbo道理是一樣的 1.紋理座標 在繪製一條線段時,我們設定其中乙個端點為紅色,另乙個端點為綠色,則opengl會自動計算線段中其它各畫素的顏色,如果是使用glshademode gl smooth 則最終會形成一種漸變的效果 例如線段中點,就是紅色和綠色的中間色 類似的,在繪製一條線段時,我們...