High LevelShaderLanguageとDirectX9マネージドライブラリを使用して単純なグロー/ブラーシェーダーを作成するのに役立つリソースを見つけるのに何日も苦労してきました。
私がする必要があるのは、CustomVertex.TransformedColored
頂点の配列を単純な線として描画し、HLSL効果によってぼかし/光らせることだけです。
私はインターネットを約3日間検索していくつかの結果を出しましたが、本当に良いチュートリアルや例を見つけることができません。私はHLSLの基本的な知識を持っていますが、このシェーダーの書き方を理解するのに十分な理解はありません(3冊のDirectXブックのHLSLの章も読んだことがあります)。
ここにいくつかの(要約された)コードがあります:
CustomVertex.TransformedColored[] glowVertices = new CustomVertex.TransformedColored[4];
glowVertices[0] = new CustomVertex.TransformedColored(random.Next(this.render.Width), random.Next(this.render.Height), 1, 1, Color.Cyan.ToArgb());
glowVertices[1] = new CustomVertex.TransformedColored(random.Next(this.render.Width), random.Next(this.render.Height), 1, 1, Color.Blue.ToArgb());
glowVertices[2] = new CustomVertex.TransformedColored(random.Next(this.render.Width), random.Next(this.render.Height), 1, 1, Color.Cyan.ToArgb());
glowVertices[3] = new CustomVertex.TransformedColored(random.Next(this.render.Width), random.Next(this.render.Height), 1, 1, Color.Blue.ToArgb());
this.device.BeginScene();
int passes = this.glowEffect.Begin(0);
for (int i = 0; i < passes; i++)
{
this.glowEffect.BeginPass(i);
this.device.DrawUserPrimitives(PrimitiveType.LineStrip, glowVertices.Length - 1, glowVertices);
this.glowEffect.EndPass();
}
this.glowEffect.End();
this.device.EndScene();
投稿する必要のある質問の数とコードの量を考えると、HLSLの特定の部分に関するヘルプをあまり探していないと思います。実際には、リソースを見つけるためのヘルプを探しています。