Ich möchte Multi-Sampling aktivieren, wenn Dreiecke wie auf dem folgenden Bild zeichnen: Multisampling funktioniert nicht im exklusiven Modus
ich einen Weg mit SlimDX in another question zu tun gefunden, aber es funktioniert nicht im exklusiven Modus.
Hier ist mein Code:
void Form1_Load(object sender, EventArgs e)
{
Direct3D d3d = new Direct3D();
PresentParameters presentParams;
presentParams.Windowed = false;
presentParams.BackBufferFormat = Format.X8R8G8B8;
presentParams.BackBufferWidth = 800;
presentParams.BackBufferHeight = 600;
presentParams.FullScreenRefreshRateInHertz = 60;
presentParams.SwapEffect = SwapEffect.Copy;
presentParams.BackBufferCount = 1;
presentParams.PresentationInterval = PresentInterval.One;
int multisampleQuality;
Result result;
if (d3d.CheckDeviceMultisampleType(adaptor, DeviceType.Hardware, Format.X8R8G8B8, false, MultisampleType.FourSamples, out multisampleQuality, out result))
{
if(multisampleQuality > 4)
{
presentParams.Multisample = multisampleType;
presentParams.MultisampleQuality = 4;
}
}
// Device creation
Device device = new Device(d3d, adaptor, DeviceType.Hardware, this.Handle, CreateFlags.HardwareVertexProcessing, presentParams);
}
Die letzte Zeile alway Crashs mit einem D3DERR_INVALIDCALL Fehler, auch wenn die CheckDeviceMultisampleType Rückkehr immer wahr ohne Fehler und 8 für multisampleQuality.
Es funktioniert, wenn ich den Fenstermodus verwende oder wenn ich die Multisample-Option entferne.
Kann mir jemand sagen, was los ist?
Es funktioniert wie ein Charme !!! Vielen Dank :) –
Hallo @catflier! Hast du eine Erklärung dafür? Ich erkannte, dass ich tatsächlich diesen aktuellen Parameter auf * SwapEffect.Copy * ... setzen muss ... –
@tinmaru: Ja, es gibt einige Gründe, warum Sie das nicht tun können, vor allem da swapeffect.copy Pixel pro Pixel kopieren muss , so würde es nicht mit Msaa funktionieren (da Sie Sub-Pixel-Samples haben). Warum brauchen Sie auch SwapEffect.Copy? Verwerfen ist ziemlich Brei der Standard – catflier