2012-10-15 12 views
5

में काम नहीं करता मैं जब की तरह त्रिकोण ड्राइंग निम्न चित्र पर multisampling सक्षम करना चाहते हैं: enter image description hereMultisampling अनन्य मोड

मैं another question में SlimDXके साथ क्या करना एक रास्ता मिल गया है, लेकिन यह काम नहीं करता विशेष मोड में।

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); 
} 

अंतिम पंक्ति alway एक D3DERR_INVALIDCALL त्रुटि के साथ crashs भले ही CheckDeviceMultisampleType वापसी हमेशा और कोई त्रुटि के साथ सच 8 multisampleQuality के लिए:

यहाँ मेरी कोड है।

यह काम करता है अगर मैं खिड़की वाले मोड का उपयोग करता हूं या यदि मैं multisample विकल्प को हटा देता हूं।

क्या कोई मुझे बता सकता है कि क्या गलत है?

उत्तर

1

presentParams.SwapEffect = SwapEffect.Discard; 
+0

यह एक आकर्षण की तरह काम करता साथ प्रयास करें !!! बहुत बहुत धन्यवाद :) –

+0

हाय @catflier! क्या आपके पास इसके लिए स्पष्टीकरण है? मुझे एहसास हुआ कि वास्तव में मुझे इस वर्तमान पैरामीटर को * स्वैपफेक्ट.कॉपी * पर सेट करने की आवश्यकता है ... –

+0

@ टिनमारू: हां, ऐसा कुछ कारण हैं कि आप ऐसा क्यों नहीं कर सकते हैं, क्योंकि ज्यादातर swapeffect.copy को पिक्सल प्रति पिक्सेल कॉपी करने की आवश्यकता है , इसलिए यह msaa के साथ काम नहीं करेगा (क्योंकि आपके पास उप पिक्सेल नमूने हैं)। इसके अलावा आपको SwapEffect.Copy की आवश्यकता क्यों होगी? त्याग मानक मशरूम है – catflier

संबंधित मुद्दे