OpenGL入門筆記(十三)

2021-09-22 11:12:11 字數 1087 閱讀 3640

int copengldemoview::drawglscene()                                   

int copengldemoview::loadgltextures()                                    

if (textureimage[0])                                    // if texture exists

free(textureimage[0]);                                // free the image structure }

return status;                                        // return the status }

glvoid copengldemoview::buildfont(glvoid)

glvoid copengldemoview::glprint(const char *text)                    // custom gl "print" routine

loadgltextures中的幾行**將為我們繪製在螢幕上的任何物體自動生成紋理座標。gl_s和gl_t是紋理座標。預設狀態下,gltexgen被設定為提取物體此刻在螢幕上的x座標和y座標,並把它們轉換為頂點座標。你會發現到物體在z平面沒有紋理,只顯示一些斑紋。正面和反面都被賦予了紋理,這些都是由gltexgen函式產生的。(x(gl_s)用於從左到右對映紋理, y(gl_t)用於從上到下對映紋理。

gl_texture_gen_mode允許我們選擇我們想在s和t紋理座標上使用的紋理對映模式。你有3種選擇:

gl_eye_linear - 紋理會固定在螢幕上。它永遠不會移動。物體將被賦予處於它通過的地區的那一塊紋理。

gl_object_linear - 這種就是我們使用的模式。紋理被固定於在螢幕上運動的物體上。

gl_sphere_map - 每個人都喜歡。建立一種有金屬質感的物體。

OpenGL入門筆記(十三)

int copengldemoview drawglscene intcopengldemoview loadgltextures if textureimage 0 iftextureexists free textureimage 0 freetheimagestructure return s...

OpenGL入門筆記(十三)

int copengldemoview drawglscene intcopengldemoview loadgltextures if textureimage 0 if texture exists free textureimage 0 free the image structure ret...

OpenGL入門筆記(四)

前面一直在畫二維圖形,其實三維圖形的繪製就是以其為基礎,可以說二維不過是三維的一種特例 相當與z 0 比如說要畫乙個正方體,它有上下左右前後共六個面組成,也就是要畫出六個正方形就可以了,只是要注意繪製時應該按逆時針繪製 好像是進行紋理對映時需要的。我們必須將opengl螢幕想象成一張很大的畫紙,後面...