我正在编写的应用程序中使用此示例项目的 XNA 4.0 表单控件:http: //creators.xna.com/en-US/sample/winforms_series1
它工作得很好,我在视觉和动画方面做了很多。我头疼的主要问题是我渲染的 3d 模型和原始 3D 形状(镶嵌为 30 的圆柱体)具有非常锯齿状的边缘,就好像它们是低分辨率的一样。
我试图弄清楚如何启用多重采样,但是我可以在网上找到的所有示例似乎都不适用于在自定义表单控件中使用 XNA 的这种新颖方式。
在 GraphicsDeviceService() 构造函数中创建了一个 PresentationParameters 对象,但唯一可用的属性是整数类型的 parameters.MultiSampleCount。我尝试设置它没有效果。
我还尝试将后台缓冲区设置为控件大小的两倍(GraphicsDeviceService.cs):
GraphicsDeviceService(IntPtr windowHandle, int width, int height) { 参数.BackBufferWidth = 宽度 * 2; 参数.BackBufferHeight = 高度 * 2; ... }
然后我改变了这个函数(GraphicsDeviceControl.cs):
无效结束绘制() { 矩形 sourceRectangle = new Rectangle(0, 0, ClientSize.Width * 2, ClientSize.Height * 2); 矩形destinationRectangle = new Rectangle(0, 0, ClientSize.Width, ClientSize.Height); GraphicsDevice.Present(sourceRectangle, destinationRectangle, this.Handle); }
但这并没有正常工作。我渲染到屏幕上的对象被降级为窗口的 1/4 并被剪裁。不过,它看起来确实没有那么锯齿……
所以在这一点上,我不确定我可以做些什么来使用这种方法(窗口中的 XNA 控件)获得高质量的图形。一般来说,我对 XNA 很陌生,所以任何建议都会很有帮助。
谢谢