0

一連のテクスチャ ジオメトリを 1 つの FBO にレンダリングしてから、その FBO をシーンにレンダリングしようとしています。問題は、そのジオメトリの重なり合う半透明の領域が正しくレンダリングされないことです。それらは不透明すぎて暗くなります。ジオメトリをシーンに直接レンダリングすると正しくレンダリングされますが、最初に FBO にレンダリングする必要があります。

ちなみに、私はブレンドに次のものを使用しています(openglによると - framebuffer の以前の内容とのブレンド):

  • FBO へのジオメトリのレンダリング:glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE)
  • FBO をシーンにレンダリングします。glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA)

私はこれを OpenGL ES 2.0 で行っています。

4

1 に答える 1

0

実際、問題はジオメトリを FBO にレンダリングするために使用されるブレンディング関数にあることがわかりました。

それ以外の:

glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE)

私は使用する必要があります:

glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE_MINUS_SRC_ALPHA)

これで、ジオメトリをシーンに直接レンダリングしているかのように機能します。

于 2013-06-05T11:27:08.743 に答える