우리는 프로그램에서 메모리 사용을 최적화하려고 노력 중입니다. 우리는 텍스처 중 일부는 RGB 값으로 모두 저장 될 때 알파 값을 갖는 그레이 스케일로 저장 될 수 있다는 것을 알았습니다.openGLES 2 - 32 비트 RGBA로 확장하지 않고 8 비트 회색조 및 8 비트 알파 텍스처를로드하려면 어떻게합니까?
그레이 스케일 및 알파 (둘 다 8 비트) 채널을 2 개만 저장하면 디스크 공간과 메모리를 절약 할 수 있습니다. 따라서 32 비트 RGBA보다 디스크와 메모리 모두에서 50 % 절약 할 수 있습니다.
그러나 우리가 겪은 장애물은이 정보를 OpenGL에 제공하는 방법을 찾지 못한다는 것입니다. 우리는 디스크에 이미지를 두 개의 8 비트 채널이있는 하나의 이미지로 또는 두 개의 이미지로 각각 한 개의 8 비트 채널로 저장할 수 있습니다. OpenGL이 이것을 회색 음영 이미지로 볼 수있는 방법을 찾을 수 없기 때문에 Red와 Green 같은 특정 색상으로 보지 않고 메모리에이 두 채널 만 있습니다. GL_RG8이 올바른 번호를 가진 것으로 밝혀졌습니다. 오른쪽 비트 수는 있지만 잘못된 색상은 채널 수입니다.
OpenGLES 2에서도이 기능을 사용할 수 있습니까? 우리는 OpenGL에 2 개의 채널을주고 그들이 Red와 Green이 아니라 Gray와 Alpha라고 말할 수 있습니까?
나는이 질문을 보았습니다 : Can I use a grayscale image with the OpenGL glTexImage2D function?하지만 그것은 다소 오래되었고 GL_LUMINANCE는 이제 무시되었습니다.