Използвам XNA 4.0 форма контрола на този примерен проект в приложение, което пиша: http://creators.xna.com/en-US/sample/winforms_series1
Работи страхотно и направих доста с визуализации и анимация. Основният проблем, по който си блъскам главата, е 3D моделът и примитивните 3D форми (цилиндри с мозайка 30), които визуализирам, имат много назъбени ръбове, сякаш са с ниска разделителна способност.
Опитах се да разбера как да активирам множествено вземане на проби, но всички примери, които мога да намеря онлайн, изглежда не се отнасят за този нов начин за използване на XNA в потребителския контрол на формуляр.
Вътре в конструктора GraphicsDeviceService() има създаден обект PresentationParameters, но единственото налично свойство е parameters.MultiSampleCount от тип integer. Опитах да го настроя без ефект.
Също така се опитах да направя задния буфер два пъти по-голям от размера на контролата (GraphicsDeviceService.cs):
GraphicsDeviceService(IntPtr windowHandle, int width, int height) { parameters.BackBufferWidth = width * 2; parameters.BackBufferHeight = height * 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 като цяло, така че всякакви предложения биха били много полезни.
Благодаря