DirectX11 VS DirectX12 VS Vulkan - Was ist besser?

3 Antworten

DirectX11 ist bis jetzt der standard gewesen bei dem es eine Line an Informationen zum Austausch von der Grafikkarte gab.

Bei DirectX12 ist nun der Unterschied, dass Multithreading genutzt wird und somit mehr Daten auf mehreren Lines geschickt werden kann. Das hat zufolge, dass die Grafikkarte und CPU mehr ausgelastet werden können. Das muss nur richtig programmiert werden sonst kommt ein Ergebnis wie bei Battlefield V raus und ist somit schlechter als DirectX11.

MarcelHD40 
Fragesteller
 23.02.2022, 12:19

Kann ich das Programmieren oder ist das die Aufgabe der Unity-Engine selber?

0
HairyHodendini  23.02.2022, 12:56
@MarcelHD40

In der UnityEngine kannst du unter den Einstellungen einstellen wie gerendert werden soll, habe auch schon mit dieser Engine gearbeitet und meines Wissens nach ist DirectX11 als Default eingestellt.

0
MarcelHD40 
Fragesteller
 23.02.2022, 15:02
@HairyHodendini

Ich weiß, aber wie mache ich dass es mit der Performance nicht wie bei Battlefield endet auch wenn ich wie gesagt es sehr leicht umwechseln kann?

Bzw. Was meinst du mit das muss richtig programmiert sein, wenn es nur ein Klick in den Unity Einstellungen ist?

0
HairyHodendini  23.02.2022, 15:28
@MarcelHD40

Nein bei einer bestehenden Engine musst du nichts mehr machen. Dachte du willst alles komplett von selbst Programmieren.

0
MarcelHD40 
Fragesteller
 23.02.2022, 22:28
@HairyHodendini

Wie mache ich aber nun das Vulkan von unity, mehr von der modernen hardware des nutzers effizenter nutzt, wenn sogar dx11 schneller ist, als die auf hardware direkt ansprechende vulkan api?

0

Na solange du keine wirklich graphisch aufwendigen Spiele programmierst solltest du tatsächlich DirectX12 benutzen, Vulcan ist veraltet und DirectX12 overkill.

;)

Woher ich das weiß:eigene Erfahrung
Elwag12  22.02.2022, 21:12

Sorry, du solltest tatsächlich DirectX11!!! benutzen, ups!🤣

1
MarcelHD40 
Fragesteller
 22.02.2022, 21:19

Warum ist Vulkan veraltet? Ich dachte Vulkan ist die neueste Technik und best optimierteste?

Zum glück muss ich nicht vulkan programmieren, weil das die hölle sein soll, dafür ist es aber auch so hoch effizent. Warum aber soll es veraltet sein?

1
Elwag12  22.02.2022, 21:21
@MarcelHD40

Es ist nicht wirklich veraltet, es wird nur eher weniger Benutzt und ist halt schwieriger zum Programmieren. Falls ich jetzt selbst komplett auf dem Schlauch stehe korrigiert mich gerne!

0
MarcelHD40 
Fragesteller
 22.02.2022, 21:22
@Elwag12

Die graphicAPI ist doch schon programmiert worden und ich als entwickler, muss sie nur aktivieren mit einem häkchen.

0
Elwag12  22.02.2022, 21:23
@MarcelHD40

Na denn... Ich kann halt trotzdem nur für DirectX 11/12 sprechen 😅 Sorry, nur Vulkan ist halt weniger bekannt und liefert oft weniger fps. Viel Spaß ;)

0
MarcelHD40 
Fragesteller
 22.02.2022, 21:24
@Elwag12

DirectX12 läuft am schlimmsten mit der FPS.

1

https://www.anandtech.com/show/11223/quick-look-vulkan-3dmark-api-overhead

Die Performance ist abhängig von der Grafikkarte, somit kann je nach Test auch Vulkan die höchste Performance bieten.

Allerdings ist es deutlich schwieriger, Programme zu schreiben, die Vulkan verwenden, da die Schnittstelle im Gegensatz zu OpenGL/Direct3D nur eine minimale API für die plattformunabhängige Kommunikation mit der GPU bereitstellt.

Woher ich das weiß:Recherche
MarcelHD40 
Fragesteller
 23.02.2022, 12:30

Also meine engine biezet sie an und moderne grafikkarte haben einen vulkan 1.2 standard uns für den fall, das vulkan nicht untertürzt wird, kann ich noch immer directx11 als backup support einstellen.

Meinst du damit das?

Oder was meinst du mit, minimale API?

Bei windows exports kann ich vulkan verwenden und sogar bei linux ebenfalls, mit opengl core als backup anstatt directx11...

0
HugeGameArtGD  23.02.2022, 15:01
@MarcelHD40
Oder was meinst du mit, minimale API?

Wenn man Vulkan direkt zum Programmieren von Spielen verwendet, d. h. ohne Game Engine. Mit OpenGL ist es mit relativ wenig Aufwand möglich, ein farbiges Dreieck zu zeichnen, mit Vulkan sind das schon mehrere 100 Zeilen Quellcode.

0
MarcelHD40 
Fragesteller
 23.02.2022, 15:07
@HugeGameArtGD

Ich nutze ja die Unity engine und Wolken ist dort eine fertige graphicAPI, die ich in den Einstellungen nur auszuwählen brauche... ich habe auch eine asset installiert womit ich dir erkannte Hardware anzeigen lassen kann im Spiel und da funktioniert auch alles richtig z.b. das Vulkan 1.2 ausgewählt ist bei meiner Grafikkarte.

Was ich aber wie gesagt nicht verstehe ist warum dann die Bildrate niedriger ist als mit direct X11, was ja nicht so gut optimiert sein soll wie Vulkan...

Hat hier die Unity-Engine einfach nur rein geschissen, als sie die vulkan graphic API in die Engine, in denn Einstellungen verbaut hatten? Oder warum ist die Performance schlechter als mit dx11, bei einer directx12 und vulkan 1.2 fähigen grafikkarte??

0
HugeGameArtGD  23.02.2022, 15:16
@MarcelHD40

DirectX 11 ist wahrscheinlich in Unity auf Performance optimiert, während DirectX 12 und Vulkan neuere Techniken für eine bessere visuelle Qualität nutzen. Natürlich könnte ein Grafik-Backend auch schlechter implementiert worden sein, sodass manche Grafikkarten im Benchmark-Test mit Unity ggf. weniger Punkte erzielen als mit anderen Engines.

0