C# 在XNA 3.0中启用MSAA

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

我使用的是XNA 3.0,我想对具有多个3d对象的3d场景使用抗锯齿。我去了msdn站点并实现了MSAA,但我仍然看到锯齿状的边缘。是因为我没有为每个对象渲染反别名吗

这是cose代码段:

     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;
}
返回;
}