私はアルファを持つテクスチャがあります。そして、私はいくつかの色で着色したいので、色のアルファ値に応じて着色されますが、オーバーオールの不透明度はテクスチャアルファによってのみ定義されます。OpenGL ES:テクスチャテクスチャの色を使用して
これは、マルチテクスチャに似ていますが、2番目のテクスチャの代わりにカラーを使用しています。 どうすればいいですか?
(更新済み) テクスチャコンバイナを設定しようとしました。色はうまく色づけされていますが、アルファに問題があります - それは(マスクのような)テクスチャからは価値がありません。 この時点でマイコード:
glActiveTexture (GL_TEXTURE0); // do we need stage #1?
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_INTERPOLATE);
glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, (GLfloat*) &tintColor_);
glTexEnvi(GL_TEXTURE_ENV, GL_SRC0_RGB, GL_TEXTURE);
glTexEnvi(GL_TEXTURE_ENV, GL_SRC1_RGB, GL_CONSTANT);
glTexEnvi(GL_TEXTURE_ENV, GL_SRC2_RGB, GL_CONSTANT);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND2_RGB, GL_ONE_MINUS_SRC_ALPHA);
// this doesn't work for alpha:
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_REPLACE);
glTexEnvi(GL_TEXTURE_ENV, GL_SRC0_ALPHA, GL_TEXTURE);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA, GL_SRC_ALPHA);
スクリーン:
無着色:RGBAと
色合い=(0、0.5、1、0.5):
あなたのコードは、私には正しいようです。アルファ号のスクリーンショットを添付するか、それとも悪いことを記述してください。 – iHunter
テクスチャ自体をアップロードできますか? –
また、レンダリングコード? –