2017-05-18 1 views
0

간단한 OpenGL 응용 프로그램을 만들었습니다. 텍스처가있는 쿼드를 확대하면 텍스처가 흐릿하게 표시되지 않고 픽셀 화됩니다. 내가 밉맵을 놓친 것 같은데?텍스처가 흐리게 처리되는 대신 픽셀 화 됨

glGenTextures(1, &mTexture); 
    glBindTexture(GL_TEXTURE_2D, mTexture); 
    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); 

를 그리고 난 이런 PBO에서 업데이트 :

나는이처럼 내 텍스처를 만들

glBindTexture(GL_TEXTURE_2D, mTexture); 
    glBindBuffer(GL_PIXEL_UNPACK_BUFFER_ARB, mPboIds[mPboIndex]); 

    glTexSubImage2D(
    GL_TEXTURE_2D, 
    0, 0, 0, 
    frame->GetWidth(), 
    frame->GetHeight(), 
    GL_RGB, 
    GL_UNSIGNED_BYTE, 
    0); 

내가 GL_TEXTURE_MAG_FILTER과 GL_TEXTURE_MIN_FILTER이 밉맵을 생성하기 위해 OpenGL을 말할 것이라고 생각했다. 그게 아닌가? 텍스처에 밉맵 생성을 사용하려면 어떻게해야합니까?

당신이 텍스처 줌을 증가하고,이 개 값을 가질 수있을 때 배율 필터를 사용

답변

1

:

  • GL_NEAREST 일 -에 (맨하탄 거리에서) 가장 가까운 질감 요소의 값을 돌려줍니다 지정된 텍스처 좌표.

  • GL_LINEAR - 지정된 텍스처 좌표에 가장 가까운 텍스처 요소의 가중 평균을 반환합니다. GL_TEXTURE_WRAP_S 및 GL_TEXTURE_WRAP_T의 값과 정확한 매핑에 따라 텍스처의 다른 부분에서 래핑되거나 반복되는 항목을 포함 할 수 있습니다.

잘못된 배율 필터를 사용하고 있습니다. 픽셀 효과를 최소화하려면 GL_LINEAR 여야합니다.

밉맵 (MipMaps)은 확대/축소를 줄이고 텍스처가 뷰어에서 너무 멀리 떨어져있을 때 부드러운 전환을 원할 때 사용됩니다. MipMaps에 대한 자세한 정보를 얻으려면 glTexParameter 매뉴얼 페이지, GL_TEXTURE_MIN_FILTER 섹션, glGenerateMipmap 매뉴얼 페이지를 생성하는 방법을 참조하십시오.

관련 문제