1

EAGLContext を CAEAGLLayer に描画しました (iPhone SDK の標準の GLGravityView の例を使用)。

私がやろうとしているのは、ビューを別のビューの上に配置し、OpenGL でレンダリングしたものを使用して、基になるビューをマスクすることです。

下のビューが花の写真で、OpenGL ビューを上に置き、OpenGL のクリア カラーを不透明な黒に設定してから、球体をレンダリングするとします。球体が黒を切り裂き、花の絵の円形部分だけが露出するようにします。さらに良いのは、球体 (半透明) と花の両方を表示して、黒を切り開くことです。

電話しました

glView.backgroundColor = [UIColor clearColor];
glClearColor(0.0, 0.0, 0.0, 1.0);

ビューを設定して呼び出したとき

glColor4f( 1.0, 1.0, 1.0, 0.5 );

球をレンダリングする直前。

球がオフホワイトになるだけで、下にある花は表示されません。これにはあまり驚かない。

代わりにマスクを作成する方法を知っている人はいますか?

ご協力ありがとうございました。

4

2 に答える 2

1

もう諦めているかもしれませんが、念のため…

Alpha = の「不透明な黒」ではなく、Alpha = 0 の「透明な黒」にビューをクリアしたいので、 glClearColor(0.0, 0.0, 0.0, 1.0) は glClearColor(0.0, 0.0, 0.0, 0.0) にする必要があると思います1.

また、OpenGL ビューが不透明としてマークされていないことを確認する必要があります。

于 2009-06-24T20:50:44.517 に答える