前提
DirectX12で虹色三角形を描画したいと考えています。VisualStudioのバージョンは2017
Windowの作成はできている前提です。
三角形の描画もできています。
実現したいこと
塗りつぶされてしまっている三角形を虹色(上座標:R 右座標:G 左座標:B)にしたい
発生している問題・エラーメッセージ
なし
該当のソースコード
HLSL
1VertexShader 2 3float4 main(float4 pos : POSITION) : SV_POSITION 4{ 5 return pos; 6}
HLSL
1PixcelShader 2 3float4 Color; 4float4 main() : SV_TARGET 5{ 6 return Color; 7}
試したこと
HLSL
1struct VSOutput { 2 float4 Position : SV_POSITION; 3 float4 Color : COLOR; 4}; 5 6VSOutput main( 7 float4 pos : POSITION, 8 float4 color : COLOR 9) 10{ 11 VSOutput vsout = (VSOutput)0; ///この部分1 12 vsout.Position = pos; 13 vsout.Color = color; 14 return vsout; 15}
HLSL
1struct VSOutput { 2 float4 Position : SV_POSITION; ///この部分2 3 float4 Color : COLOR; 4}; 5 6float4 main(VSOutput vsout) : SV_TARGET 7{ 8 return vsout.Color; 9}
上記のようにシェーダーを書き直したら自分で作成した色情報が正常に表示されるようになりました。このコードはまず頂点シェーダーで座標だけでなく色も渡すようにして次にピクセルシェーダーで渡された座標をもとに色を出力しているという風に解釈しました。この認識で合っていますか?
また、試したことに載っているコードでVSOutput vsout = (VSOutput)0; ///この部分1
という部分があります。見慣れない書き方なのでどういう意味なのかが知りたいです。
最後に、float4 Position : SV_POSITION; ///この部分2
はピクセルシェーダーで受け取っていますがSV_とつけることでどのように意味が変わるのかについて教えていただきたいと思います。
補足情報(FW/ツールのバージョンなど)
VisualStudio2017
VisualC++
DirectX12
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。