2017-05-14 17 views
0

Android에서 OpenGL ES 3을 사용하고 있으며 sRGB 텍스처를로드하고 밉맵을 생성하려고합니다. 내부 형식으로 GL_SRGB8 사용하고, glGenerateMipmap (GL_TEXTURE_2D) 함께 밉맵을 생성하고 GL_LINEAR_MIPMAP_LINEAR 사용하십시오. 사용하려고하면 검은 색 텍스처가 나타납니다.OpenGL ES 3에서 GL_SRGB8을 사용하는 glGenerateMipmap은 검은 질감을 나타냅니다.

대신 GL_RGB8을 사용하면 작동합니다. 밉맵을 사용하지 않으면 GL_SRGB8이 작동합니다. 필자는 데스크톱 OpenGL에서 동일한 코드를 실행했으며 작동합니다. 이것이 OpenGL ES에서 작동하도록하는 방법이 있습니까?

답변

0

GPU에서 밉맵을 생성하려면 색상 형식을 필터링 할 수 있어야하며 (다운 샘플을 만들기 위해) 렌더링 가능 (출력 이미지를 작성)해야합니다. sRGB는 사양에서 렌더링 가능한 형식으로 보장되지 않습니다 (GLES 3.2 사양의 표 8.10).

CPU에서 밉맵을 생성하고 수동으로 업로드해야합니다.