OPENGL 텍스쳐맵핑 관련 질문입니다
찬늘봄
컴퓨터그래픽스 2번째 프로그램 과제는 3차원으로 지구를 그리는 것입니다. 다음과 같은 내용이 필요합니다.1. GLUT를 이용하여 윈도우를 열고 구를 그린다.
2. 구에 첨부되어있는 earth.rgb를 텍스쳐 매핑한다. (earth.rgb는 2048x2048크기이며 왼쪽 위의 픽셀 부터 r,g,b 값이 각각 unsigned byte로 저장되어있다.)
3. 적당한 위치 (directional light로 (x,y,z) = (1,0,0))에 라이트를 지정하고 phong shading 한다.
4. 광원이 공전축에 일치되어 있기 때문에 구는 자전축 방향에 맞게 기울인다.
5. 프레임 마다 자전축을 중심으로 구를 회전시킨다. (glutTimeFunc를 활용한다.)위의 내용이 과제 내용이고요 ㅠ.ㅠ구를 그리고 텍스쳐 맵핑 관련 함수들 썼는데 맵핑이 안되네요 ㅠㅠ( 사실 어떻게 하는지 잘 모르겠네요........)다른 글을 보니까 구에 좌표를 줘서 맵핑 해야한다는데 어떻게 해야할지 몰라서 질문합니다 ㅠㅠ도와주세요!!!! ㅠ.ㅠ.................................#include windows.h
#include glut.h
#include gl/gl.h
#include gl/GLU.h
#include stdio.h
#include stdlib.h
GLuint tex;
GLubyte my_texels[2048][2048][4];void myReshape (int w, int h){glViewport (0, 0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45,w/(float)h,0.1,100);
}void display (void){glClearColor(0,0,0,0);
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glEnable(GL_TEXTURE_2D);
glGenTextures(1,&tex);
glBindTexture(GL_TEXTURE_2D,tex);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 2048, 2048, 0, GL_RGBA, GL_UNSIGNED_BYTE, my_texels);
glLoadIdentity();
glColor4f(1,0,0,1);
glTranslatef(0,0,-4);
glRotatef(angle,0,1,0);
glutSolidSphere(1,18,36);glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
FILE *file = fopen(earth.png,rb);
unsigned char *data = new unsigned char[2048*2048*4];
fclose(file);
delete data;
glutSwapBuffers();
}
void main (int argc, char **argv){glutInit (&argc, argv);
glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(500,500);
glutInitWindowPosition(0,0);
glutCreateWindow (201120988_KANGBOKYUNG);
glutReshapeFunc (myReshape);
glutDisplayFunc (display);
glutMainLoop();}