3D描画時の初期設定
この章ではSharpDX(DirectX)の3D初期化部分について解説します。
このページの内容は、スワップチェーン設定まで終わっていることが前提です。
SharpDXのDirectX11を関連付け
必要なパッケージをインストール
- 「NuGet」を使った同じやり方で「SharpDX.D3DCompiler」「SharpDX.Mathematics」をインストールします。
Direct3Dの設定
レンダーターゲット設定
- Direct3Dを設定するために必要なファイルを関連付けます。
using SharpDX.D3DCompiler;
- 3D描画用のレンダーターゲットを宣言します。
// レンダーターゲット3D private RenderTargetView _RenderTarget3D;
- 3D描画用のレンダーターゲットを生成します。
// バックバッファーからレンダーターゲットを生成する _RenderTarget3D = new RenderTargetView(_device, _BackBuffer);
Shader設定
- 頂点シェーダーとピクセルシェーダーの2つを設定します。
// 頂点シェーダーを設定する var vertexShaderByteCode = ShaderBytecode.CompileFromFile("MiniTri.fx", "VS", "vs_4_0", ShaderFlags.None, EffectFlags.None); var vertexShader = new VertexShader(_device, vertexShaderByteCode); // ピクセルシェーダーを設定する var pixelShaderByteCode = ShaderBytecode.CompileFromFile("MiniTri.fx", "PS", "ps_4_0", ShaderFlags.None, EffectFlags.None); var pixelShader = new PixelShader(_device, pixelShaderByteCode);
- 「MiniTri.fx」ファイルを実行ファイルであるexeと同じディレクトリ(フォルダ)内に入れます。
ファイルの中身はページ下記に全文が載っていますのでテキストエディタでコピペして「MiniTri.fx」で保存してください。
ここで使われるシェーダー用のファイル「MiniTri.fx」はSharpDXサンプルに付属していたものを使用してします。大元は、SlimDX時の流用(MITライセンス)となっています。
シェーダーの細かい解説は省略しますが、おおまかに言えば「入力された色・位置データを加工せずそのまま出力する」というコードになっています。
Layoutを定義・生成
- DirectX用のデバイスやシェーダーの設定など描画関連の設定を行います。
コード
Program.cs
GameForm.cs
MiniTri.fx
長かった下準備もようやく終わりました。この設定で「3D描画処理」に入れます。次からはポリゴンの描画などに移っていきます。