Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Tracert

Treue Seele

  • »Tracert« ist der Autor dieses Themas

Beiträge: 108

Wohnort: Braunschweig

Beruf: Student

  • Private Nachricht senden

1

28.09.2003, 16:23

CreateDevice misslingt mit Multisampling...

Hallo!

Ich schreibe gerade die Funktion, die mein Device erstellt. Die DIRECT3DPRESENT_PARAMETERS sind so gefüllt:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ZeroMemory(&d3dpp, sizeof(d3dpp));
    d3dpp.BackBufferWidth = 800;
    d3dpp.BackBufferHeight = 600;
    d3dpp.FullScreen_RefreshRateInHz = 144;
    d3dpp.hDeviceWindow = mWndHandle
    d3dpp.MultiSampleType = D3DMULTISAMPLE_4_SAMPLES;
    d3dpp.MultiSampleQuality = 0;
    d3dpp.Windowed = false;
    d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
    d3dpp.EnableAutoDepthStencil = true;
    d3dpp.AutoDepthStencilFormat = D3DFMT_D24S8;
    d3dpp.BackBufferFormat = D3DFMT_A8R8G8B8;
    d3dpp.BackBufferCount = 1;
    d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
    d3dpp.Flags = 0;


So, wenn ich dann folgendermaßen CreateDevice aufrufe:

Quellcode

1
2
DGObject->CreateDevice(0, D3DDEVTYPE_HAL, mWndHandle, 
        D3DCREATE_HARDWARE_VERTEXPROCESSING, &d3dpp, &DGDevice);

dann misslingt das ganze da DGDevice == NULL. Wenn ich Multisampling auf D3DMULTISAMPLE_NONE setze, funktioniert alles. Frage also: Wieso funktioniert das mit Multisampling nicht?

Info: Grafikkarte ist eine GF4TI4200, laut DX9-SDK Capsviewer wird 4-Sample Multisampling mit A8R8G8B8 und D24S8 einwandfrei unterstützt.

Bin jetzt etwas ratlos...

TR

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

28.09.2003, 16:43

Neuerdings muss man D3DMULTISAMPLE_NONMASKABLE benutzen, und die Qualitätsstufe (MultiSampleQuality) entscheidet dann über die Anzahl der Samples. Keine Ahnung, warum - aber es klappt nur noch so. Achte darauf, dass Du die maximale Qualitätsstufe nicht überschreitest.

Tracert

Treue Seele

  • »Tracert« ist der Autor dieses Themas

Beiträge: 108

Wohnort: Braunschweig

Beruf: Student

  • Private Nachricht senden

3

28.09.2003, 17:16

Hm, soll heißen mit Nonmaskable schaltet man das Multisampling quasi ein, und eine Qualität von 3 ist dann gleichbedeutend mit dem (alten) 4_Samples. Soweit richtig? Wenn ich jetzt aber die Qualitätsstufe auf 2 Stelle müsste das ja gleichbedeutend mit 3_Samples sein, was aber nicht unterstützt wird. (?) Muss man da aufpassen, oder hat das eine jetzt mit dem anderen gar nichts mehr zu tun?

PS: Jup, mit Nonmaskable klappt es auf jeden Fall schonmal. Danke!

TR

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

4

28.09.2003, 18:24

0 bedeutet die erste Anzahl von Samples, die unterstützt wird.
Die Qualitätsstufe sagt nicht direkt aus, wieviele Samples es sind.
0 könnte 1x sein, 1 könnte 2x sein, 2 könnte 4x sein etc..

Werbeanzeige