2014-05-25 2 views
0

저는 지금 ETC1 (특히 PKM 파일)을 사용하여 텍스처 압축을 시도하고 있습니다. OpenGL ES 2로 업그레이드하지 않고도이 작업을 수행하려고 노력 중이므로 멀티 텍스처링을 사용하고 있습니다.OpenGL ES 1.1을 사용하여 멀티 텍스쳐를 적용 할 때 텍스처의 RGB 채널을 알파 채널로 사용하는 방법이 있습니까?

저는 멀티 텍스쳐 작업을 마쳤습니다. (마침내) 문제는 그것이 예상대로 행동하지 않는다는 것이고, 나는 그 이유를 알아 냈다고 생각합니다. PKM을 만들 때 색 구성 요소 만있는 PKM과 알파 구성 요소 만있는 PKM으로 끝납니다. 문제는 알파 PKM이 RGB 채널에 알파 값을 저장하는 것 같습니다. 검은 색은 완전한 투명성을 나타내고 흰색은 완전한 불투명도를 나타냅니다.

내 질문은 : 멀티 텍스처링을 사용할 때 이러한 RGB 값을 결합하여 알파 값으로 변환 할 수있는 방법이 있습니까? 그렇지 않다면 OpenGL ES 1.1에서 ETC1 및 지원 알파를 사용하는 옵션이 표시되지 않습니다 (잘못된 경우 올바른 값을 입력하십시오).

답변

0

다른 포럼에서도이 질문을 올렸습니다. 일반적인 합의는 이것이 가능하지 않다는 것입니다. 따라서 알파를 처리하는 ETC1 압축을 구현하려면 먼저 OpenGL ES 2로 업그레이드하고 FragmentShaders를 사용하십시오.

나는 이것을하지 않기로 결정했습니다. 정말 잘 된 점은 알파 채널이 중요하지 않은 이미지에 ETC1 압축을 사용하는 것이 었습니다. 문제가되는 다른 이미지의 경우 양자화를 사용하여 PNG의 크기를 크게 줄였습니다. tinypng.org를 사용하거나 pngquant를 로컬에 설치할 수 있습니다. 나는 후자를 수행하고 특정 이미지에 대해 ETC1 압축을 사용하고 다른 이미지에 대해서는 pngquant를 사용하여 my assets 디렉토리에 복사하는 bash 스크립트를 작성했습니다. 따라서 단일 스크립트 만 실행하면됩니다.

+0

누군가를 돌보는 경우를 위해서, ETC1 압축을 위해 나는 etcpack을 사용했습니다. – brent777

관련 문제