작업/opengl

Lesson 5: Textures

한종서 2012. 7. 25. 19:47

 

imageloader.cpp

 

imageloader.h

 

main.cpp

 

GLuint _textureId; //The id of the texture

Image* image = loadBMP("vtr.bmp");  //이미지 파일을 읽어온다.
 _textureId = loadTexture(image);  // 텍스쳐로부터 이미지를 만들고, 텍스쳐의 id를 리턴한다.

 

 glEnable(GL_TEXTURE_2D);     //텍스쳐 활성화
 glBindTexture(GL_TEXTURE_2D, _textureId); //텍스쳐Id와 결속시킨다.

 

 //텍스쳐가 우리로 부터 멀리 떨어져 있을 때, blocky mapping을 사용
 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
 //텍스쳐가 가까이 있을 때,  blocky mapping을 사용.
 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);


//blurry mapping을 사용하고 싶다면 GL_LINEAR를 사용한다.
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

 

 //텍스쳐 좌표는 각각의 버텍스 맵 이미지에 포인트를 표시한다.
 //택스쳐 좌표는 (a + b, c + d), a,c는 정수형이고, b는 높이, d는 너비이다.

glTexCoord2f(0.0f, 0.0f);

 

 glDisable(GL_TEXTURE_2D);   //텍스쳐 비활성화