먼저 ppm 파일을 읽으려고 시도했지만 텍스처에 사용하려고했지만 문제가 (파일 읽기에서) 어디에 있는지는 확실하지 않았습니다. 그래서 작은 4x4 이미지 (임의의 색상)를 하드 코딩하여 사용했습니다. 나는 아직도 그것을 작동시킬 수 없다. 누구든지 어떤 통찰력을 가지고 있습니까?OpenGL에서 밉맵 텍스처링
data2, x2, y2는 모두 하드 코딩 된 이미지 속성입니다.
glPushMatrix();
FILE *inFile;
char dump[3];
int max, k = 0;
inFile = fopen("mountains.ppm", "r");
int x;
int y;
fscanf(inFile, "%s", dump);
//printf("%s", dump);
fscanf(inFile, "%d %d", &x, &y);
fscanf(inFile, "%d", &max);
int arraySize = y*(3*x);
int data[arraySize];
for (int i = 0; i < x; i++) {
for (int j = 0; j < y; j++) {
fscanf(inFile, "%d", &data[k++]);
fscanf(inFile, "%d", &data[k++]);
fscanf(inFile, "%d", &data[k++]);
}
}
int data2[] = { 100 , 50, 50, 40, 30, 70, 70, 30, 40, 155, 50, 215,
50 , 40, 30, 60, 15, 77, 70, 70, 70, 70, 70, 70,
50 , 40, 30, 20, 110, 210, 20, 15, 47, 40, 40, 30,
15 , 40, 15, 40, 30, 40, 30, 20, 80, 80, 40, 20};
int x2 = 4;
int y2 = 4;
fclose(inFile);
glGenTextures(1,&texture);
glBindTexture(GL_TEXTURE_2D,texture);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST);
gluBuild2DMipmaps(GL_TEXTURE_2D,3,x2,y2,GL_RGB,GL_UNSIGNED_BYTE,data2);
glEnable(GL_TEXTURE_2D);
glTexEnvf(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_REPLACE);
glBindTexture(GL_TEXTURE_2D,texture);
glTexCoord2d(0,0); glVertex3f(0,0.0,0);
glTexCoord2d(0,1); glVertex3f(0,0.0,80);
glTexCoord2d(1,1); glVertex3f(80,0.0,80);
glTexCoord2d(1,0); glVertex3f(80,0.0,0);
glDisable(GL_TEXTURE_2D);
glPopMatrix();
당신이 얻은 행동에 대한 설명을 주시겠습니까? 그것은 untextured 쿼드를 표시합니까, 전혀 아무것도 표시되지 않습니다? 또한,이 코드 섹션 밖에서 행렬 조작이 있습니까? 쿼드가 보이지 않는 것처럼 보이는 것 같습니다. – nonVirtualThunk
"아직 작동하지 않습니다"라는 말은 ...? – genpfault
죄송합니다. 아무 것도 나타나지 않을 것을 의미했습니다. 그리고 저는 예견과 모든 것을 설정했습니다. 나는 모든 코드를 여기에 포함하면 코드가 길어질 것이라고 느꼈다. 나는 중요한 부분일지도 모른다고 생각했다. – jaiesh