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螢幕想象成一張很大的畫紙,後面...