NVIDIA Quadro 카드를 넣을 때 ATI 카드에서 잘 작동하는 OpenGL 응용 프로그램이 작동을 멈췄습니다. 텍스처는 전혀 작동하지 않습니다! 무엇을하는 흰색 쿼드OpenGL Nvidia Driver 259.12 질감이 작동하지 않습니다.
void glutDispCallback()
{
//ALLOCATE TEXTURE
unsigned char * noise = new unsigned char [32 * 32 * 3];
memset(noise, 255, 32*32*3);
glEnable(GL_TEXTURE_2D);
GLuint textureID;
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
glGenTextures(1, &textureID);
glBindTexture(GL_TEXTURE_2D, textureID);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glPixelStorei(GL_PACK_ALIGNMENT, 1);
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_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 32, 32, 0, GL_RGB, GL_UNSIGNED_BYTE, noise);
delete [] noise;
//DRAW
glDrawBuffer(GL_BACK);
glViewport(0, 0, 1024, 1024);
setOrthographicProjection();
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glDisable(GL_BLEND);
glDisable(GL_LIGHTING);
glBindTexture(GL_TEXTURE_2D, textureID);
glColor4f(0,0,1,0);
glBegin(GL_QUADS);
glTexCoord2f(0,0);
glVertex2f(-0.4,-0.4);
glTexCoord2f(0, 1);
glVertex2f(-0.4, 0.4);
glTexCoord2f(1, 1);
glVertex2f(0.4, 0.4);
glTexCoord2f(1,0);
glVertex2f(0.4,-0.4);
glEnd();
glutSwapBuffers();
//CLEANUP
GL_ERROR();
glDeleteTextures(1, &textureID);
}
결과는 파란색 쿼드 (또는 무엇이든은 glColor4f()에 의해 지정됩니다), 그리고 : 나는 작동하지 않는 하나의 디스플레이 기능에 내 프로그램을 줄였다 텍스처입니다. 나는 OpenGL 사이트에 FAQ를 따라왔다. 텍스처가 블렌딩 된 경우 블렌딩을 비활성화했습니다. 조명이 꺼져 있습니다. glGetError()를 통해 보았습니다 - 오류가 없습니다. 또한 glTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE)를 설정했습니다. 및 GL_DECAL. 같은 결과. 나는 또한 다각형 와인딩 - CW와 CCW를 시도했다.
누구든지이 문제가 발생합니까?
새로운 텍스처 데이터를 업로드하는 대신 모든 프레임에서 텍스처 개체를 만들고/파괴하고있는 이유는 무엇입니까? – genpfault
문제를 재현하는 코드가 있습니다. 나는 현실에서 그렇게하지 않는다. – Budric