0
OpenGL을 사용하여 iPad 용 2D 게임을 만들려고합니다. OpenGL을 처음 접했을 때 새로운 점이 있습니다.OpenGL ES에서 2 개의 투명한 Texture2D 겹치기
내 그리기 코드는 다음과 같습니다
이static CGFloat r=0;
r+=2.5;
r=remainder(r, 360);
glLoadIdentity();
//you can ignore the rotating and scaling
glRotatef(90, 0,0, -1);
glScalef(1, -1, 1);
glTranslatef(-1024, -768, 0);
glClearColor(0.3,0.8,1, 1.0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glEnable(GL_TEXTURE_2D);
glEnable (GL_BLEND);
glBlendFunc (GL_ONE,GL_ONE_MINUS_SRC_ALPHA);
[texture drawInRect:CGRectMake(512-54, abs(sin(((r+45)/180)*3.14)*500), 108, 108)];
[texture drawInRect:CGRectMake(512-54, abs(sin((r/180)*3.14)*500), 108, 108)];
("텍스처"투명한 배경을 가진 Texture2D입니다) 내가하는 방법을 알아야 모든 그것을 만들되도록 주위에 파란색 상자 텍스처가 다른 하나를 덮지 않습니다.
저는 이미지 (http://i55.tinypic.com/34rsv9l.png)가 완전히 투명하다는 것을 100 % 확신합니다. – milo
당신은 아마도 32 비트 컬러를 사용하고 있다고 말했습니까? 그게 어떤 영향을 미칠까요? – milo
아니, 32 비트가 좋을거야. 파란색을 본다고했는데 다른 파란색 배경보다 투명해야하는 배경에 파란색 배경색이 보입니다. 그게 네 추첨 명령 인 것 같아. 투명도를 사용하면 가장 먼 쪽의 폴리곤을 먼저 렌더링해야합니다. 따라서 새로운 투명 영역이 배경과 블렌드 될 때 프레임 버퍼에 프레임 버퍼가 이미 존재합니다. 그렇지 않으면 배경과 혼합되어 다른 배경을 그립니다 하지만 투명해야하는 영역에 의해 가려집니다. –