Multisampling eksklyuziv rejimda ishlamaydi

Quyidagi rasmdagi kabi uchburchaklar chizilganda multisampleni yoqmoqchiman: rasm tavsifini shu yerga kiriting

Men boshqa savolda SlimDX bilan qanday ishlashni topdim. lekin u eksklyuziv rejimda ishlamaydi.

Mana mening kodim:

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

Oxirgi satr har doim D3DERR_INVALIDCALL xatosi bilan ishlamay qoladi, hatto CheckDeviceMultisampleType har doim xatosiz rost va multisampleQuality uchun 8 boʻlsa ham.

Agar men oyna rejimidan foydalansam yoki multisample opsiyasini olib tashlasam ishlaydi.

Kimdir menga nima bo'lganini ayta oladimi?


person Martin Delille    schedule 15.10.2012    source manba


Javoblar (1)


bilan harakat qilib ko'ring

 presentParams.SwapEffect = SwapEffect.Discard;
person mrvux    schedule 17.10.2012
comment
Salom @catflier! Buning uchun tushuntirishingiz bormi? Men tushundimki, men ushbu parametrni SwapEffect.Copyga o'rnatishim kerak... - person Martin Delille; 06.11.2012
comment
@tinmaru : Ha, buni qila olmasligingizning ba'zi sabablari bor, asosan swapeffect.copy har bir piksel uchun pikselni nusxalashi kerak, shuning uchun u msaa bilan ishlamaydi (chunki sizda pastki piksel namunalari mavjud). Shuningdek, nima uchun sizga SwapEffect.Copy kerak bo'ladi? Tashlab ketish juda standartdir - person mrvux; 09.11.2012