C# 在XNA 3.0中启用MSAA
我使用的是XNA 3.0,我想对具有多个3d对象的3d场景使用抗锯齿。我去了msdn站点并实现了MSAA,但我仍然看到锯齿状的边缘。是因为我没有为每个对象渲染反别名吗 这是cose代码段:C# 在XNA 3.0中启用MSAA,c#,3d,xna,shader,xna-3.0,C#,3d,Xna,Shader,Xna 3.0,我使用的是XNA 3.0,我想对具有多个3d对象的3d场景使用抗锯齿。我去了msdn站点并实现了MSAA,但我仍然看到锯齿状的边缘。是因为我没有为每个对象渲染反别名吗 这是cose代码段: public Game1() { graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; graphics.PreferMultiSampli
public Game1()
{
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
graphics.PreferMultiSampling = true;
graphics.PreparingDeviceSettings +=
new EventHandler<PreparingDeviceSettingsEventArgs>(graphics_PreparingDeviceSettings);
}
void graphics_PreparingDeviceSettings(object sender, PreparingDeviceSettingsEventArgs e)
{
int quality = 0;
GraphicsAdapter adapter = e.GraphicsDeviceInformation.Adapter;
SurfaceFormat format = adapter.CurrentDisplayMode.Format;
// Check for 4xAA
if (adapter.CheckDeviceMultiSampleType(DeviceType.Hardware, format,
false, MultiSampleType.FourSamples, out quality))
{
// even if a greater quality is returned, we only want quality 0
e.GraphicsDeviceInformation.PresentationParameters.MultiSampleQuality = 0;
e.GraphicsDeviceInformation.PresentationParameters.MultiSampleType =
MultiSampleType.FourSamples;
}
// Check for 2xAA
else if (adapter.CheckDeviceMultiSampleType(DeviceType.Hardware, format,
false, MultiSampleType.TwoSamples, out quality))
{
// even if a greater quality is returned, we only want quality 0
e.GraphicsDeviceInformation.PresentationParameters.MultiSampleQuality = 0;
e.GraphicsDeviceInformation.PresentationParameters.MultiSampleType =
MultiSampleType.TwoSamples;
}
return;
}
公共游戏1()
{
graphics=新的GraphicsDeviceManager(此);
Content.RootDirectory=“Content”;
graphics.PreferMultiSampling=真;
图形.准备设备设置+=
新的事件处理程序(图形\准备设备设置);
}
无效图形\u准备设备设置(对象发送方、准备设备设置事件参数e)
{
int-quality=0;
GraphicsAdapter=e.GraphicsDeviceInformation.adapter;
SurfaceFormat格式=adapter.CurrentDisplayMode.format;
//检查4xAA
if(适配器.检查设备多采样类型)(设备类型.硬件,格式,
错误,多采样类型。四个采样,输出质量)
{
//即使返回的质量更高,我们也只需要质量0
e、 GraphicsDeviceInformation.PresentationParameters.MultiSampleQuality=0;
e、 GraphicsDeviceInformation.PresentationParameters.MultiSampleType=
多样本类型。四个样本;
}
//检查2xAA
else if(适配器.检查设备MultiSampleType(设备类型.硬件,格式,
false,MultiSampleType.TwoSamples,out quality)
{
//即使返回的质量更高,我们也只需要质量0
e、 GraphicsDeviceInformation.PresentationParameters.MultiSampleQuality=0;
e、 GraphicsDeviceInformation.PresentationParameters.MultiSampleType=
MultiSampleType.TwoSamples;
}
返回;
}