OpenGL의 최신 버전을 사용하고 있습니다. 그러나 나는 다음과 같은 기능을 C++로 작성하여 텍스처를 만들 때 :텍스처가 불투명 한 OpenGL 렌더링
GLuint Texture::Generate2dTexture(int width, int height, char* data, int length)
{
GLuint textureIndex;
glGenTextures(1, &textureIndex);
glBindTexture(GL_TEXTURE_2D, textureIndex);
gluBuild2DMipmaps(GL_TEXTURE_2D, 3, width, height, GL_BGR_EXT, GL_UNSIGNED_BYTE, data);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
return textureIndex;
}
및 사용 렌더링 :
void Renderer::DrawRectangle(GLuint textureID, RECTD rect)
{
glBindTexture(GL_TEXTURE_2D, textureID);
glBegin(GL_QUADS);
{
glTexCoord2f(0.0f, 1.0f);
glVertex2d(rect.left, rect.top);
glTexCoord2f(0.0f, 0.0f);
glVertex2d(rect.left, rect.bottom);
glTexCoord2f(1.0f, 0.0f);
glVertex2d(rect.right, rect.bottom);
glTexCoord2f(1.0f, 1.0f);
glVertex2d(rect.right, rect.top);
}
glEnd();
}
그들은 렌더링 후 불분명 나타납니다. 그것은 M $에 의해 만들어진 이미지 뷰어의 외관과는 상당히 다른 것처럼 보입니다.
그 원인과 위험을 피하는 방법은 무엇입니까?
최신 버전이며 여전히 직접 렌더링을 사용하고 있습니까? –
나는 "불분명하다"라는 말은 "흐릿한"것을 의미한다고 생각합니다. 이 경우, OpenGL에 의한 쌍 선형 보간법 때문입니다. 보간을 원하지 않으면 GL_LINEAR 대신 GL_NEAREST를 사용하십시오. 그러나 픽셀로 텍셀을 정렬하지 않으면 텍스쳐가 매우보기 흉하게 보일 것입니다. – Tibo
@ratchetfreak idk, 방금 그런 코드로 사용했습니다 – PENGUINLIONG