私は現在、フォントを提供するテクスチャを持っています。これは、iPhone用のOpenGLの最上位(最後)レンダリングにあります。テクスチャは透明なサラウンドの白いグリフです。私の目的は、効果的にフォントの色を変更する、テクスチャにオーバーレイされた別の色を持つことです。OpenGL ES 1.1フォントオーバーテクスチャ
アルファ値が255に設定されている場合、下のコードを使用してテクスチャに無地の色を付けることができます。私の目的は、プログレッシブな色をフェードアウトさせることです。色(0,0,255,127) 。これは、部分的に透明な青色でなければなりません。しかし、私はglTexEnv()設定で何度も試してみましたが、非単色のオーバーレイを作ることはできません。
glBlendFunct(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, fontTexture);
glColorub(0,0,255,255);
...
glDrawElements(...);
私はのタイトルの下に、OpenGLのwikiページhttp://www.opengl.org/wiki/Texture_Combinersでの提案を試してみました:「例tex0のアルファに基づいてブレンドtex0とTEX1」。また私はここに見つけた考えを試みたOpenGL ES 1.1: How to change texture color without losing luminance?。
フォント/文字のアウトラインを失うことなく、色(0,0,255,127)を作ることができる設定があれば、
PS。もう1つのアイデアは、前の例では(0,0,255 *(127/256)、127)などの事前に乗算されたアルファ色を渡すことでしたが、これはあまり優雅ではないようです。
EDIT:明確にするために、文字のテクスチャが完全な不透明度を維持し、変更するためにオーバーレイを塗りつぶすことを意図しています。したがって、例はフル・ブルーからフル・ホワイトに変わるはずです。
答えてくれてありがとうございます。残念ながら、これは上記と同様の結果をもたらす。試してみると(0,0,255,40)、テクスチャ全体がほぼ透明になります。可能であれば、必要な結果は背景のテクスチャ(完全な255アルファ)で、明るい青が上に表示されます。したがって、ユーザーには、色は薄い青ですが、文字は完全に不透明です。 – Overflowed
Mmm ...私はまだあなたがglBlendFuncを通してあなたの目標を達成すべきだと思います。他の可能なパラメータで遊んだことがありますか? – Beppe