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

  • »Sebastian Müller« ist der Autor dieses Themas

Beiträge: 369

Wohnort: Freilingen [Rheinland-Pfalz]

Beruf: Schüler

  • Private Nachricht senden

1

05.04.2014, 18:10

DirectX11 und Videomodes

Liebe Leser.

Mir ist etwas aufgefallen.

Im meinem Buch wird beschrieben, das man doch in der SwapChain Struktur angibt, mit welcher Auflösung D3D Rendern soll,
Welches Farbformat es nehmen soll und welche Refreshrate. oder?

Jedoch ist es doch so, das DX 11 wie seine Vorgänger mit Videoformaten arbeitet. oder?
kann mir einer mal einen Stichwort geben, nachdem ich recherchieren kann?

Die Kantenglättung (MSAA) funktioniert außerdem nur im Fenstermodus.
Das Bild was D3D rendert ist im Vollbildmodus oder Fenstermodus ebenso verzehrt. (von den Seitenverhältnissen)

Egal welchen Konfiguration ich angeben

bsw
Aufläsung -> 245 x 375
RefreshRate -> 47
Fabformat -> DXGI_FORMAT_R8G8B8A8_UNORM

D3D Rendert danach. Ich dachte, dass man erst Checken muss, ob ein Video Format kompatibel ist.



Außerdem bekomme ich ein Warnung die damit zu tun haben kann. Sie kommt nur, wenn ich im Vollbildmosdus rendere.

C-/C++-Quelltext

1
DXGI WARNING: IDXGISwapChain::Present: Fullscreen presentation inefficiencies incurred due to application not using IDXGISwapChain::ResizeBuffers appropriately, specifying a DXGI_MODE_DESC not available in IDXGIOutput::GetDisplayModeList, or not using DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH.DXGI_SWAP_CHAIN_DESC::BufferDesc = { 1980, 1080, { 60, 1 }, R8G8B8A8_UNORM, 0, 0 }; DXGI_SWAP_CHAIN_DESC::SampleDesc = { 4, 0 }; DXGI_SWAP_CHAIN_DESC::Flags = 0; [ MISCELLANEOUS WARNING #98: ]

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

2

05.04.2014, 19:23

Du solltest immer prüfen ob es für deine Swap Chain Einstellungen einen validen Anzeigemodus gibt. IDXGIOutput bietet dir dafür eine handvoll Funktionen, z.B. kannst du unterstützte Modi über IDXGIOutput::GetDisplayModeList abfragen. Grundsätzlich ist es wichtig die Swap Chain 'richtig' zu konfigurieren, im schlimmsten Fall wird versucht Probleme auf kosten von Performanz zu kompensieren. Care and Feeding of the Swap Chain solltest du dir auf jeden Fall mal durchlesen.
@D13_Dreinig

  • »Sebastian Müller« ist der Autor dieses Themas

Beiträge: 369

Wohnort: Freilingen [Rheinland-Pfalz]

Beruf: Schüler

  • Private Nachricht senden

3

05.04.2014, 21:53

Ok. Danke

:D

  • »Sebastian Müller« ist der Autor dieses Themas

Beiträge: 369

Wohnort: Freilingen [Rheinland-Pfalz]

Beruf: Schüler

  • Private Nachricht senden

4

06.04.2014, 12:00

Aber das mit der Verzerrung des Bildes und das die Kantenglättung nur im Fenstermodus läuft, hat damit zu tun. Oder?

  • »Sebastian Müller« ist der Autor dieses Themas

Beiträge: 369

Wohnort: Freilingen [Rheinland-Pfalz]

Beruf: Schüler

  • Private Nachricht senden

5

06.04.2014, 13:51

OK. Ich habe eine D3D 11 Klasse geschrieben.

Jedoch überlege ich grade wie ich das verwirkliche. Einen Konfigurationsdialog wie bei der Tribase Engine soll es bei mir nicht geben.

Aktuell habe ich es so wie im Buch beschrieben. Man übergibt der D3D klasse eine Konfigurationsstruktur wo Infos wie (Width / Height / Refreshrate ...) enthalten sind. Jedoch ist das ja auch schlecht, weil man nicht weiß ob das Format kompatibel ist.

Wie könne man es ohne Konfigurationsdialog aufbauen?

vielleicht eine Struktur mit verschiedenen Formaten, die man dann an die Engine übergibt und danach testet ob es kompatibel ist?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

6

06.04.2014, 14:35

Lass einfach die Finger davon eine Engine bauen zu wollen und bau ein Spiel. Bei den Fragen sollte doch auch Dir bewusst werden, dass eine Engine das falsche Thema ist und Du noch deutlich mehr Erfahrung brauchst.
Nimm eine bestehende Engine oder ein Framework (TriBase, SFML, SDL) und bau ein Spiel. Und dann noch eins. Und noch eins.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

  • »Sebastian Müller« ist der Autor dieses Themas

Beiträge: 369

Wohnort: Freilingen [Rheinland-Pfalz]

Beruf: Schüler

  • Private Nachricht senden

7

06.04.2014, 15:18

Ja. Jedoch interessiert es mich auch, was hinter den Kulissen passiert.
Deswegen habe ich mir ja auch dieses Buch über DirectX 11 gekauft.

Wenn ich in unity oder anderen Engines programmiere ist ja alles ziemlich automatisch.
wenn ich eine Textur habe möchte, muss ich sie einfach auf ein Material zuweisen. (3 klicks)
Mich interessiert auch, was dahinter steckt, wie es funktioniert. Verstehst du mich?

Was würdest du mir den als erstes-Spiel empfehlen. (von den Dimensionen).

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

8

06.04.2014, 19:08

Egal was. Es sollte aber fertig werden. Komplett. In der Größenordnung von Tetris, Tic-Tac-Toe oder Pac Man. Inklusive Menüführung, nicht einfach nur ein Prototyp des Gameplays.
Du kannst das auch ohne eine Engine direkt mit DirectX11 bauen. Eine Engine ist weitaus mächtiger und größer als das, was ein einzelnes Spiel benötigt. Es ist aber kein Problem so ein simples Spiel direkt ohne Engine zu bauen. Da lernst Du dann auch das, was Du lernen wolltest mit Deinem Buch über DX11. Nimm halt eine Auflösung, die eh jedes Zielgerät kann. Für die kleinen Spiele ist Windowed Mode auch total ausreichend und Fullscreen unpassend. Ehrlich gesagt spielen immer mehr Leute ohnehin nicht mehr im Fullscreen Modus.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »BlueCobold« (06.04.2014, 19:15)


  • »Sebastian Müller« ist der Autor dieses Themas

Beiträge: 369

Wohnort: Freilingen [Rheinland-Pfalz]

Beruf: Schüler

  • Private Nachricht senden

9

06.04.2014, 19:33

Ok. Danke.

Ich denke bei D3D11 kann ich ja schon meine bestehende klasse benutzten, Den Rest mache ich ohne Engine.

Ich denke das 640 x 480 bei 60hz auf allen Geräten läuft.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

10

06.04.2014, 19:45

Ich denke unter 1024x768 gibt's eh keine Bildschirme mehr da draußen.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige