Q&A
前提・実現したいこと
ポイントライトを実装してある球に対してブラー処理を実現したい
発生している問題・エラーメッセージ
エラーメッセージ エラー X3017 cannot implicitly convert from 'const float2' to 'float4'
該当のソースコード
HLSL
1ソースコード 2struct PS_IN 3{ 4 float4 pos : SV_POSITION; 5 float2 uv : TEXCOORD0; 6}; 7 8Texture2D tex : register(t0); 9SamplerState samp : register(s0); 10 11cbuffer Parameter : register(b0) 12{ 13 float2 texSize;// サイズ 14 float2 blurDir;// 方向 15}; 16 17float4 main(PS_IN pin) : SV_TARGET 18{ 19 float4 color = float4(0.0f, 0.0f, 0.0f, 1.0f); 20 21 float2 movePixel = 1.0f / texSize; 22 23 movePixel *= blurDir; 24 25 // ぼかし処理をかける 26 color = tex.Sample(samp, pin.uv); // 自分自身のピクセル 27 // 正方向(右、上)の隣のピクセル///ここでエラーが出る 28 color += tex.Sample(samp, pin.uv)+ movePixel * 1.0f; 29 color += tex.Sample(samp, pin.uv)+ movePixel * 2.0f; 30 color += tex.Sample(samp, pin.uv)+ movePixel * 3.0f; 31 color += tex.Sample(samp, pin.uv)+ movePixel * 4.0f; 32 // 負方向(左、下)の隣のピクセル 33 color += tex.Sample(samp, pin.uv)- movePixel * 1.0f; 34 color += tex.Sample(samp, pin.uv)- movePixel * 2.0f; 35 color += tex.Sample(samp, pin.uv)- movePixel * 3.0f; 36 color += tex.Sample(samp, pin.uv)- movePixel * 4.0f; 37 // 足し合わせたピクセルの平均を求める 38 color / 9.0f; 39 40 return color; 41}
試したこと
color += tex.Sample(samp, pin.uv),+ movePixel * 1.0f;
//コンマを付けたら動きましたが色がついているポイントライトが白飛びしてしまいます。
//あと表示はされたのですがブラーがかかっていません。
// 動く方向に1,動かない方向に0を設定して掛け算すれば求められるはずなのですがどう式を
//立てたらよいか分かりません。
補足情報(FW/ツールのバージョンなど)
VisualStudio2017
Visualc++
SDKバージョン:10.0.17763.0
回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2022/02/14 02:03