0
我正在嘗試使用OpenGL爲iPad製作2D遊戲。我一般都是新手,所以這個混合的東西是新的。在OpenGL ES中重疊2個透明Texture2Ds
我的繪製代碼如下所示:
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) 所有我需要知道如何做的是讓這個圍繞着一個藍色的盒子紋理不掩飾另一個。
我100%確定圖像(http://i55.tinypic.com/34rsv9l.png)是完全透明的。 – milo
你說我可能使用32位顏色。這會影響到什麼嗎? – milo
不錯,32位應該不錯。你說你看到藍色,你的意思是你看到你的背景藍色的顏色應該是透明的而不是另一個?如果是這種情況,我懷疑這是你的抽籤順序。有了透明度,你需要首先渲染最遠的多邊形,所以當新的透明區域與背景混合時,後面的透明區域已經在幀緩衝區中,否則你會與背景混合,然後在背後畫另一個但它會被應該透明的區域所掩蓋。 –