Photoshopスタイルのブラシ(例: http ://designblurb.com/wp-content/uploads/2008/11/grungy-watercolor-brushes.jpg)に似たテクスチャを使用して、ユーザーがそのための色なので、画面に描画されると、ユーザーの選択によって灰色の黒が色付けされます。
誰かがこれを達成するための最良の方法を知っていますか?これを行うことができるテクスチャ環境変数はありますか?
どんな情報でも大歓迎です。
ええと、それはテクスチャの色を一定の色と組み合わせることに帰着します。つまり、グレースケールテクスチャがあります(GL_RGB
同じ値を持つ色のすべてのコンポーネントを持つテクスチャか、テクスチャだけかGL_LUMINANCE
)。両方の色の実際の組み合わせは、OpenGLESのバージョンによって異なります。
ES 1では、GL_MODULATE
テクスチャ環境を使用して、テクスチャの色にオブジェクトの/頂点の色を掛けます(照明によって計算されるglColor
かglColorPointer
、照明が無効になっている場合に設定されます)。
glColor(...);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
//draw a textured object
ES 2では、もちろん、フラグメントシェーダーで自分で行う必要があります。
uniform sampler2D tex;
uniform vec4 color;
varying vec2 texCoord;
void main()
{
gl_FragColor = color * texture2D(tex, texCoord).r;
}
これらすべてが(バージョンによっては)何もわからない場合は、OpenGL ESの基本を少し掘り下げて、テクスチャと一定の色を組み合わせることが最も問題が少ないと思われます。