문제

나는 방법을 찾고의 배경을 제거하는 24 비트 비트맵을 유지하면서,주요 이미지 완전히 불투명하고,지금까지 혼합하는 제공을 목적으로 언제나 유지하는 주요 조금 불투명합니다.나는 검색이 구글에서는 아무것도 발견하지 못했는 데 도움이 생각 나는 아마 검색에 대한 잘못된 조건이지만,그렇게 어떤 도움을 주시면 감사하겠습니다.

편집:예약 나도를 사용하여 블랙으로 지금의 배경입니다.

도움이 되었습니까?

해결책

을 만드는 경우에는 질감에 대한 OpenGL,를 만들려고 합니다 질감으로 32-bit RGBA 질감입니다.Create 버퍼의 내용을 붙들기 위하여 이 새로운 32 비트감과 반복을 통해 귀하의 24 비트 비트맵.때마다 당신이 당신의 배경 색상 설정파로에서의 새로운 32 비트 비트맵.

struct Color32;
struct Color24;

void Load24BitTexture(Color24* ipTex24, int width, int height)
{
   Color32* lpTex32 = new Color32[width*height];

   for(x = 0; x < width; x++)
   {
      for(y = 0; y < height; y++)
      {
         int index = y*width+x;
         lpTex32[index].r = ipTex24[index].r;
         lpTex32[index].g = ipTex24[index].g;
         lpTex32[index].b = ipTex24[index].b;

         if( ipTex24[index] == BackgroundColor)
            lpTex32[index].a = 0;
         else
            lpTex32[index].a = 255;
      }
   }

   glTexImage2D(GL_TEXTURE_2D, 0, 4, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, lpTex32);

   delete [] lpTex32;
}

다른 팁

당신이 필요합니다드 질감으로 GL_RGBA 형식으로 호출에 glTexImage2D.당신이 할 경우 다음을 사용 혼:

    /* Set up blend */
glEnable(GL_BLEND);
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

이 소리를 혼란스럽습니다.24 비트 이미지가 없는 투명도,그것은 단순히 배열의 RGB 값입니다.당신은 무엇을 의미하"유지하는 주요 조금 불투명한"?당신이 원하는 모든 픽셀을 특정한 색상 예를 들어 모든 검은 픽셀을 투명하지?이것이 무엇을 원할 수 있습 google opengl 투명성 마스크 (참조 치치하얼 시#20 예를 들어).

당신이 정말로 필요한 알파 채널에서 당신의 이미지입니다.이후 그 24 비트,당신은 하나도 없지만,만들 수 있습 중 하나에 당신의 이미지를 로드하여 설정하는 알파로 모든 블랙(0x000000)픽셀

처럼 들리는 당신이 찾고있는 스텐실 버퍼에 사용되는 단지 이런 작업의 제한 그리기 영역입니다.

버퍼에 저장 값에 관련된 각 픽셀의 1 이후에 도면 렌더링됩니다 어디 그것의 0 것 마스크.일반적으로 버퍼를 스텐실용으로 멀티 렌더링 기법을 만들기 같은 것들을 반사하고 머리를 표시합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top