【C++】 DirectX初心者質問スレ Part25 【C】
■ このスレッドは過去ログ倉庫に格納されています
0620558
2009/10/05(月) 15:36:49修正した点は、
・BeginPass後にSetTextureを呼んでいたのをその前に置く
・そもそも、シェーダの処理はエフェクトをかけたテクスチャを出力しているので
エフェクトの描画を行う必要が無かったので
テクスチャの描画に変更
・シェーダの記述を変更
シェーダの記述は以下の通りです
float4 EffectColor;// : COLOR;
float4 TextureColor;// : COLOR;
// テクスチャにサンプラーの設定を適用させた色を取得
EffectColor = tex2D(EffectSampler, TexUV);
TextureColor = tex2D(TextureSampler, TexUV);
// α値が0.0より大きい個所のみエフェクト適用
if (0.0 < (TextureColor.a * EffectColor.a))
{
TextureColor.r = TextureColor.r * 0.5 + EffectColor.r * 0.5 * EffectColor.a;
TextureColor.g = TextureColor.g * 0.5 + EffectColor.g * 0.5 * EffectColor.a;
TextureColor.b = TextureColor.b * 0.5 + EffectColor.b * 0.5 * EffectColor.a;
}
■ このスレッドは過去ログ倉庫に格納されています