0

OpenGLを使ってiPad用の2Dゲームを作ろうとしています。私は一般的にOpenGLに慣れていないので、このブレンドは新しいものです。

私の描画コードは次のようになります。

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です)テクスチャの周りの青いボックスが他のボックスを覆わないようにする方法を知る必要があります。

4

1 に答える 1

0

お気に入りの画像エディタでテクスチャ画像を開き、アルファチャネルで青い領域を0%不透明(つまり0)に設定する必要があるようです。のSRC_ALPHA部分はGL_ONE_MINUS_SRC_ALPHA、ソーステクスチャのアルファ値を意味します。

32ビットカラーを使用している可能性があります。その場合、赤、緑、青、アルファ用に8ビットの4つのチャネルがあります。

于 2011-08-18T03:51:26.640 に答える