私が書いているアプリケーションでこのサンプル プロジェクトの XNA 4.0 フォーム コントロールを使用しています: http://creators.xna.com/en-US/sample/winforms_series1
うまく機能しており、ビジュアルとアニメーションでかなりの作業を行いました。私が頭を悩ませている主な問題は、レンダリングする 3D モデルとプリミティブ 3D 形状 (30 のテッセレーションを持つ円柱) が、低解像度であるかのように非常にギザギザになっていることです。
マルチサンプリングを有効にする方法を見つけようとしましたが、オンラインで見つけることができるすべての例は、カスタム フォーム コントロールで XNA を使用するこの斬新な方法には当てはまらないようです。
GraphicsDeviceService() コンストラクター内には、PresentationParameters オブジェクトが作成されていますが、使用可能な唯一のプロパティは、整数型の parameters.MultiSampleCount です。私はそれを設定しようとしましたが、効果はありませんでした。
また、バック バッファーをコントロールのサイズ (GraphicsDeviceService.cs) の 2 倍の大きさにしようとしました。
GraphicsDeviceService(IntPtr windowHandle, int width, int height) { parameters.BackBufferWidth = 幅 * 2; parameters.BackBufferHeight = 高さ * 2; ... }
次に、この関数 (GraphicsDeviceControl.cs) を変更しました。
void EndDraw() { Rectangle sourceRectangle = new Rectangle(0, 0, ClientSize.Width * 2, ClientSize.Height * 2); Rectangle destinationRectangle = new Rectangle(0, 0, ClientSize.Width, ClientSize.Height); GraphicsDevice.Present(sourceRectangle, destinationRectangle, this.Handle); }
しかし、それは適切に機能しませんでした。画面にレンダリングされたオブジェクトは、ウィンドウの 1/4 に追いやられ、クリップされました。少しギザギザが少なく見えましたが...
したがって、この時点で、この方法 (ウィンドウ内の XNA コントロール) を使用して高品質のグラフィックスを取得するために何ができるかわかりません。私は一般的にXNAにはかなり慣れていないので、どんな提案でも最も役に立ちます。
ありがとう