-1

どのアルファを変更する必要がありますか? ディフューズ、スペキュラー、またはアンビエント?

4

2 に答える 2

0

GL_SRC_ALPHA , GL_ONEパラメータとして使用glBlendFunc();

元:

glColor4f(1.0,1.0,1.0,alpha_value);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA , GL_ONE);

必要に応じて alpha_value を置き換えてください....`

于 2015-02-06T17:57:12.800 に答える
0

何をしているのか正確には語っていないので、オブジェクトの色をglLightParameterテクスチャから取得するのではなく、 で直接設定していると仮定します。

単一の数値でオブジェクトの透明度を完全に制御するという目的を達成するには、アンビエント、ディフューズ、スペキュラー カラーのアルファをゼロに設定します。次に、エミッシブアルファを使用して透明度を設定します。

テクスチャを使用している場合は、さらに作業を行う必要があります。修正なしで固定関数ライティングから直接アルファを取得する、適切なテクスチャ環境モデルを使用する必要があります。

または、シェーダーを使用して、この固定機能のナンセンスをすべて捨てることもできます。それはあなたに多くの頭痛を救います。

于 2012-01-14T02:06:41.940 に答える