だから私はテクスチャの色をその下の色で乗算したいのですが、これは glBlendFunc() でどのように行うことができますか?
たとえば、テクスチャの色 (0.31、0.51、0.124) があり、その下に色 (0.83、0.64、0.12) がある場合、結果の色は 0.31*0.83、0.51*0.64、0.124*0.12 になります。これを行う方法?
だから私はテクスチャの色をその下の色で乗算したいのですが、これは glBlendFunc() でどのように行うことができますか?
「テクスチャ カラー」とは、「glTexEnv プロセスによるカラー出力」を意味すると仮定します。または、より厳密な OpenGL 仕様言語であるフラグメント カラーを使用します。
いずれにせよ、これは単純なブレンドの問題です。OpenGL 2.1 以降を使用している場合:
glBlendEquationSeparate(GL_FUNC_ADD, GL_FUNC_ADD); //No, that's not a typo. Read the wiki article.
glBlendFuncSeparate(GL_DST_COLOR, GL_ZERO, GL_DST_ALPHA, GL_ZERO);
これにより、デスティネーション カラー (フレーム バッファにあるもの) がソース カラー (glTexEnv から出力されるもの) で乗算され、ゼロに加算されます (技術的には、デスティネーション カラーのゼロ倍)。