質問

私は描画のための質感、そのときに同一の画像のようで、まるように暗くなります。このイメージ:

http://img24.imageshack.us/img24/8061/87993367.png

私はレンダリング左上角の色 (1, 1, 1, .8) への質感、そしてレンダリング風の中スクエア(同色)の他の食感、そして最後にこの質感がプラスのスクエア(同色)の画面になります。

してきた描画するために質感も少しずつ暗くなります。

私の描画のためにテクスチャーコードを次のように記述されています。(私が使っているOpenGL ESのiPhone)

// gen framebuffer
GLuint framebuffer;
glGenFramebuffersOES(1, &framebuffer);
glBindFramebufferOES(GL_FRAMEBUFFER_OES, framebuffer);

// gen texture
GLuint texture;
glGenTextures(1, &texture);

glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, texture);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
glBindTexture(GL_TEXTURE_2D, 0);
glDisable(GL_TEXTURE_2D);

// hook it up
glFramebufferTexture2DOES(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_TEXTURE_2D, texture, 0);
if(glCheckFramebufferStatusOES(GL_FRAMEBUFFER_OES) != GL_FRAMEBUFFER_COMPLETE_OES))
   return false;

// set up drawing
glBindFramebufferOES(GL_FRAMEBUFFER_OES, framebuffer);
glViewport(0, 0, Screen::Width, Screen::Height);

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, Screen::Width, 0, Screen::Height, -1, 1);

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glColor4f(1, 1, 1, 1);

// do whatever drawing we'll do here
Draw();

glBindFramebufferOES(GL_FRAMEBUFFER_OES, 0);

ものは何もないのになっている間違った。だが必要なコードです。どのようになる。

役に立ちましたか?

解決

んだ推測:

描画の質感を与えま204(0.8*255)のRGBおよびアルファチャネルです。それは第二回目(GL_BLEND有効にしてしまうと思),いただけます(ライトグレー204RGB80%アルファの中灰色となっております。

【解決使用 glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA) とpremultiplyお色をします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top