Top > XNA XNA †このページの情報は古いです。 初期設定 †XNAのバージョン2.0くらい。
Vsync同期をOFFにする †GraphicsDeviceManager.SynchronizeWithVerticalRetrace = false; パフォーマンス計測 †System.Diagnostics.Stopwatch Stopwatch = new System.Diagnostics.Stopwatch(); Stopwatch.Start(); /// コード Stopwatch.End(); float time = Stopwatch.ElapsedTicks / (float)(System.Diagnostics.Stopwatch.Frequency * (1.0f / 60.0f)) * 100.0f; カリング面の変更 †GraphicsDevice.RenderState.CullMode = ; // モードの種類 CullMode.CullCounterClockwiseFace; CullMode.CullClockwiseFace; CullMode.None; 深度バッファ(Zバッファ)をONにする †GraphicsDevice.RenderState.DepthBufferEnable = true; ポリゴンの描画 †
シェーダ †Contentで生成 †Effect effect = i_Content.Load("shader/test"); // ./Shader/test.fxをロード effect.CurrentTechnique = effect.Techniques["main"]; // Technique:mainを使用 EffectParameter uniform = effect.Parameters["WVP"]; // Uniform値を取得 文字列から生成 †string src = "..." // ここにソース文字列 CompiledEffect compiledEffect = Effect.CompileEffectFromSource(src, null, null, CompilerOptions.Debug, TargetPlatform.Windows); Effect effect = new Effect(GraphicsDevice, compiledEffect.GetEffectCode(), CompilerOptions.Debug, null); effect.CurrentTechnique = effect.Techniques["main"]; EffectParameter uniform = effect.Parameters["WVP"]; 使用 †uniform.SetValue(Matrix); effect.Begin(); foreach(EffectPass pass in effect.CurrentTechnique.Passes) { pass.Begin(); // 描画 pass.End(); } effect.End(); 生成時のエラー:X3000 †なにやら文字コードの関係で、日本語を使用すると発生する可能性有り。 CONTENT †外部リソースデータをコンパイルして使用できるようにする物です。 一番簡単な生のtxtをstringに落とし込む事を。 †1.ソリューション エクスプローラ
2.できた.csに以下の記述を。 //======================================== // インポーター //======================================== // Attributeで拡張子と、説明文を設定する [ContentImporter(".txt", DisplayName = "TextFileImporter")] public class TextContentImporter : ContentImporter { // 読み込みメソッドのオーバーライド public override string Import(string hfilename, ContentImporterContext hcontext) { string ret = ""; using (StreamReader reader = File.OpenText(hfilename)) { ret = reader.ReadToEnd(); } return ret; } } 3.ビルド 4.実行プロジェクトの方へ戻る
で読み込めているはず。 RenderTexture †初期化 †GraphicsDevice device = getDevice(); // デバイス RenderTarget2D target = null; RenderTarget last_target = null; target = new RenderTarget2D(device, i_Width, i_Height, 1, // mip level SurfaceFormat.Bgr565); // format 設定 †last_target = device.GetRenderTarget(0); device.SetRenderTarget(0, target); // 0番のターゲットを device.Clear(ClearOptions.Target, Color.CornflowerBlue, 0, 0); 設定した後は普通にモデル描画 解除 †device.SetRenderTarget(0, last_target as RenderTarget2D); last_target = null; テクスチャとして、描画したものを取得 †Texture2D tex = target.GetTexture(); Tips † |