2019年4月11日 星期四

呼呼呼 電腦圖學的世界 Week-08 主題:貼圖 Texture

(1)主題:貼圖 Texture

(2)範例

http://www.cmlab.csie.ntu.edu.tw/~0/jsyeh/3dcg1網站下載source、data、win32、glut32.dll這四個檔案

開啟Texture.exe 

執行Texture.exe


glTexCoord2f(tx,ty)可改變Texture space view(上方視野)座標
4個點的依序順序是按照右手座標系統




(3)實作:OpenGL
上網搜尋OpenGV2.1找到這個'網站
下載win32-vs2008.exe版本
安裝到C:\OpenCV2.1目錄

接下來一樣freeglutwindows 網頁下載
freeglut3.0.0  MinGW
                                             解壓縮後將libfreeglut.a檔複製並改名為libglut32.a
                                                到codeblock裡開啟glut 並儲存   


開始打開啟圖片的程式碼


#include <GL/glut.h>
#include <opencv/highgui.h>///貼圖需要
void display()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
        glutSolidTeapot(0.3);
    glutSwapBuffers();

}
int main(int argc,char**argv)
{
    IplImage * img=cvLoadImage("earth.jpg");///貼圖需要
    cvShowImage("opencv Window", img);///貼圖需要
    cvWaitKey(0);///貼圖需要
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("week08");
    glutDisplayFunc(display);
    glutMainLoop();



}
若只打程式碼不能編譯,須更改目錄
先在檔案上按滑鼠右鍵,點擊Build option
更改Search direction complier目錄
更改更改Search direction  Linker目錄

更改Linker setting
都改完後即可執行




(4)實作:OpenCV+OpenGL貼圖









(5)期中考:10行OpenGL程式
glPushMatrix();//備份矩陣10%
glRotatef(angle,x,y,z);//旋轉40%
glTranslatef(x,y,z);//移動40%
glScalef(x.y,z);//縮放50%

glBegin(GL_POLYGON);開始畫60%
  glColor3f(r,g,b);////顏色、色彩70%
glTexCoord2f(tx,ty);貼圖座標80%
            glNormal3f(nx,ny,nz);//打光的法向量90%
glVertex3f(x,y,z);//頂點 100%

glEnd();
glPopMatrix();還原矩陣30%
glTexCoord2f(tx,tv);//貼圖座標









沒有留言:

張貼留言