Notiz DirectX 8.0: Vor 20 Jahren begann das Zeitalter der Shader

aklaa schrieb:
Mafia 1 war DX 8.0 :daumen:
ach ja deswegen spiele ich diese olle <DX 8.0 Games nicht, da wird mir nach einigen Stunden schwindelig 🤢
Zum Glück kommen die alten Games als Remastered raus.
Die Grafik von Mafia I ist doch vollkommen ok. Auch heute hat das Spiel immer noch eine super Atmosphäre.

Erst bei noch älteren Spielen wie Half-Life 1 finde ich die Grafik problematisch... und die fehlende Physik. Da ist Black Mesa echt ein Segen. Ist auch besser als der Mafia Remake.
 
  • Gefällt mir
Reaktionen: EntelodonX
Ah ja, das alte DX 8.. Hab's übersprungen.

Die Vorgänger hatten auch so einige Highlights.
Ab DirectX 3 ging es erst so richtig los.

DirectX 6.x war dann der Hammer! 😎
MMX, Bump Mapping, Multi Texturing..
Windows NT 4 wurde auch unterstützt (inoffiziell?)

Mit DirectX 7 (Win Me=7.1 exklusiv) kam dann Transform & Lightning. 🥳
War mit das beste IMHO. DX7 war das letzte, alte DirectX über das auch die DirectDraw API initialisiert wurde (auch wenn DX8/9 installiert ist, wird die 7er API dafür noch genutzt).

Ab DirectX 8 kam dann die Shader Generation.

Daher denke ich, mann könnte in 3 Gruppen einteilen:

Klassisches DirectX (DX 1 bis 7.1)
Altes DirectX (DX 8 bis 9c)
Aktuelles DirectX (DX 10 bis 12)
 
  • Gefällt mir
Reaktionen: aklaa
ich hatte ne gf3 ti200 von Elsa. War total begeistert und freute mich auf mehr FPS in quake 3 und musste aber feststellen, dass ich teilweise sogar weniger hatte als vorher. War voll enttäuscht und weiß bis heute nicht wieso das so war. Evtl wegen treibern oder so xD
 
mibbio schrieb:
@caruniomOder als Indie nutzt man halt UnrealEngine oder Unity3D
Stimmt, oder, so wie ich, bleibt man als Indie dann auf seiner alten fixed function sitzen und lässt die APIs das ganze in Shader/Vertex Code "umwandeln".
Da Apple jedoch vor ein paar Jahren OpenGL ES als "deprecated" markiert hat, wird es wohl nicht mehr lange dauern und man muss dann Apples Metal API nuten oder sonstiges was darauf aufbaut.
 
Speziell über die Wassereffekte, die mit den Shadern möglich wurden, habe ich damals mächtig gestaunt. Das sah plötzlich so echt aus.

Interessanterweise hat sich seit dem aber scheinbar nicht mehr so viel getan, was das angeht. Z.B. das Wasser in World of Warships oder auch brandaktuellen AAA-Titeln wie Flight Simulator sieht noch immer so aus, wie damals in Morrowind und Co. Alles nur leicht gekräuselte, platte Flächen.

Mal sehn, wie lange es dauert, bis die ersten Spiele richtig realistisches Wasser haben, mit hohen, brechenden Wellen, Schaumkronen usw.
 
Herdware schrieb:
Mal sehn, wie lange es dauert, bis die ersten Spiele richtig realistisches Wasser haben, mit hohen, brechenden Wellen, Schaumkronen usw.
Naja, man muss halt auch unterscheiden, ob es offenes Meer oder ein Binnengewässer. Letzteres hat ja eine eher ruhige Oberfläche. Und seit Morrowind hat sich schon einiges getan bei der Wasserdarstellung. Beispiele wären Assassins Creed Origins für Binnengewässer oder Sea of Thieves für offene See. Oder auch FarCry 5, wo es auch einen 48min GDC-Vortrag gibt, der sich nur um die Technik hinter der Wasserdarstellung dreht.
 
  • Gefällt mir
Reaktionen: Christi und Herdware
Die Wasseroberfläche bei Morrowind war ja nicht durchsichtig. Ich kann mich noch blass an die Diskussionen und Erklärungen erinnern, dass es halt nicht möglich war dynamische Wellen UND die schönen Reflexionen UND Transparenz darzustellen.
4402_returntomorrowind_seydaneen.jpg
4402_returntomorrowind_seydaneen.jpg
 
Teralios schrieb:
Was aber auch daran liegt, dass DX11 zum Teil einfach ein anderes »Konzept« verfolgt, als DX12.
Nichts für ungut aber DX11 ist technisch schon seit Jahren veraltet udn das es dennoch so fleißig eingesetzt wurde liegt vor allem an 2 Dingen. Man muss nicht in neue Engines investiren und beim Marktführer lief es dennoch schnell genug, weshalb der sich herzlich wenig darum schert die Entwicklung voran zu treiben.
Das gleiche Prinzip wie bei der singlethread lastigen Software im CPU Bereich.
Kaum wird am Thron dieser Domäne gewackelt....
 
Herdware schrieb:
Speziell über die Wassereffekte, die mit den Shadern möglich wurden, habe ich damals mächtig gestaunt. Das sah plötzlich so echt aus.

Interessanterweise hat sich seit dem aber scheinbar nicht mehr so viel getan, was das angeht. Z.B. das Wasser in World of Warships oder auch brandaktuellen AAA-Titeln wie Flight Simulator sieht noch immer so aus, wie damals in Morrowind und Co. Alles nur leicht gekräuselte, platte Flächen.

Mal sehn, wie lange es dauert, bis die ersten Spiele richtig realistisches Wasser haben, mit hohen, brechenden Wellen, Schaumkronen usw.
Google mal

sea of thieves water

Das ist sehr gut umgesetzt.
 
5clowne schrieb:
Hatte damals glaube ne Geforce 4 440MX dann irgendwann, die hatte dann keinen Pixelshader 3.0 oder so und konnte manche Games nicht wiedergeben... das war echt ärgerlich damals. Bei nem Kumpel mit ner Geforce 4 Ti ging das...
Da wirfst du etwas durcheinander.
Die MX440 hatte gar keine Shader und war eigentlich im Kern noch eine GeForce2 und beherschte daher auch nur DX7.
Pixelshader 3.0 kam viel später mit der GeForce 6 und bei Ati sogar erst ab der 1000er-Serie.
Das PS3.0 Vorzeigespiel damals war Splinter Cell Chaos Theory.
 
Wadenbeisser schrieb:
Nichts für ungut aber DX11 ist technisch schon seit Jahren veraltet udn das es dennoch so fleißig eingesetzt wurde liegt vor allem an 2 Dingen.
1. Dein »Nichts für Ungut« kannst du dir an der Stelle sparen, das baut eher unnötig direkt ein Aggressionslevel auf, besonders, wenn man anschließend, wie du nun hier, Argumente anbringt, die recht pauschal sowie einfach polemisch sind. Wenn du jemanden »belehren« willst, solltest du mehr Substanz liefern, statt einfach nur so einen flachen Inhalt.

2. Du bringst keine Argumente an, warum DX11 veraltet ist, sondern nur, dass man wegen NVIDIA die »Entwicklung« nicht voranbrachte und nicht investieren wollte, das ist aber irrelevant, ob DX11 veraltet ist oder nicht.

Hast du dir jemals DirectX11 als auch DirectX12 angesehen, wie man Grafikobjekte aufbaut, wie man die Renderpipeline ansteuert und Co? Weißt du auch, welche elementare Unterschiede es zwischen DX11 und DX12 es gibt, warum zum Beispiel so manche »High-Level«Funktionen aus DX12 bisher sowohl in DX11.3 und DX11.4 auch auf DX11 zurückportiert wurde?

Mal eine wichtige Aussage eines AMD-Ingenieurs in einem Interview bei Techradar: » But interestingly that doesn’t mean that it is needed by everyone. The extra level of control brings with it a certain amount of extra complexity – and that means that some developers might be reluctant to move to DirectX 12 – indeed«.

DX12 stellte bisher die Entwickler vor größere Hürden und die meisten »Features« von DX12_0 sowie die 12_1 zielen primär darauf ab, wie man die GPU anspricht, wie man die Ressourcen verwaltet, wie man Assets aufbaut, diese an die GPU übermittelt usw. Also alles, um mehr Kontrolle über die Hardware zu haben, gleichzeitig aber auch mehr Verantwortung für die Entwickler bedeutet.

Die Features, die für die »Bildsynthese« wichtig waren, kamen auch unter DirectX11 als Feature_Level 12_0 und 12_1 auch. DX12 wurde Anfangs auch erst nur mit Shader Model 5.1 ausgeliefert und ist hier »Minimum«.

Shader Model 6.0 wiederum kam auch erst 2016, nur auch hier waren die Features primär erst mal mehr Kontrolle und Flexibilität und damit Verbunden Verantwortung für Entwickler. Erst 2017 mit 6.1 kamen dann Features hinzu, die eine funktionale Erweiterung darstellen und »grafische« Erweiterungen kamen erst mit 6.3 und damit Verbunden DXR hinzu.

Und genau das ist der Punkt, warum DX12 eben lange Zeit nicht wirklich aus den Pötten kam. Funktionell, was die Möglichkeiten bei der »Grafik« anging, bot DX12 genau das, was auch DX11 bot. Man konnte die Aufgaben/Lasten besser verteilen, dass benötigte aber mehr Knowhow und ebenso hatte man mehr Verantwortung.

Auch das Shader Model 6.0 bot anfangs - funktionell was die Grafik angeht - nicht mehr als Shader Model 5.0, nur jedoch wieder mehr Kontrolle und die Möglichkeit die Lasten besser zu verteilen. Wirkliche Funktionen für die »Grafik« kamen mit 6.3 - DXR - und nun eben 6.5 - MeshShaders - hinzu.

Erst jetzt - okay seit Ende 2018 - bietet DX12 mit 12_2 auch einen funktionellen grafischen Mehrwert, der allgemein einen Umstieg lohnenswert macht. Vorher war der »Mehrwert« von DX12 spezieller und man musste schon gegen eine Wand rennen und natürlich hat »NVIDIA« mit ihrem Wundertreiber 2013 ein paar »Bremsen« von DX11 »gelöst«, nur hat sich seit damals auch bei DX11 noch einiges getan und AMD hatte mit GCN eher eine »DX11« Schwäche allgemein, ich hab es in unzähligen Themen nun auch ein paar mal erklärt, wen es interessiert: Da schauen oder mal in die White-Papers von AMD!

Lange Rede, kurzer Sinn: Der Mehrwert von DX12 war bis vor kurzem einfach noch zu speziell.
 
  • Gefällt mir
Reaktionen: MR2007 und Colindo
Zuletzt bearbeitet von einem Moderator:
  • Gefällt mir
Reaktionen: Hayda Ministral
joshy337 schrieb:
DX 12 war eine Notlösung, da MS durch AMD's Mantle im Zugzwang war.
Von einer Notlösung möchte ich da nicht schreiben, dass AMD aber MS als auch die Khronos Group unter Zugzwang setzte? Sicherlich.

joshy337 schrieb:
DX 11 war wesentlich bedeutender, finde ich, da es Tesselation einführte.
Kommt jetzt darauf an. Vergleicht man das ursprüngliche DX12 mit den Feature Level 12_0 und 12_1 sowie eben Shader Model 5.1 und Anfangs Shader Model 6.0, stimme ich dir da vollkommen zu. Nette Randnotiz: Bereits DX9 bot schon Tesselation, war nur komplizierter anzuwenden. DX11 brachte

Jetzt mit DX12 Ultimate mit Feature Level 12_2 ist es schon wieder anders. Auch wenn die grafische Qualität durch RT nicht sofort ins Auge fällt, sondern subtiler sind.

Man wird mal schauen müssen, was in den nächsten Jahren nun passiert.
 
  • Gefällt mir
Reaktionen: Colindo
@Teralios

Und doch ändert es nichts daran das DX11 ganz einfach hoffnungslos veraltet ist und keinen richtigen Nachfolger erhalten hat weil DX12 in die low(er) Level ebene geht die mehr Eigenarbeit von den Entwicklern fordert.
Es besitzt keinen Support für aktuelle Features und über die Multicore Unterstützung schweigen wir mal besser ganz.
Die API ist 11 Jahre alt und hat vor 8 Jahren das letzte Feature Update erhalten. Die API stammt aus Zeiten von AMDs Phenom 2 und Intels Nehalem Architektur, also vielleicht bis 4-6 Kernen, dafür wurde die seinerzeit auch entwickelt und daher kommen auch deren Probleme mit aktuellen Prozessoren.

Ob es dir nun passt oder nicht, das Ding ist so hoffnungslos veraltet das es mit aktueller Hardware komplett überfordert ist. Beklage dich bei Microsoft wenn du einen zeitgemäßen Technik Nachfolger haben willst.
 
Wadenbeisser schrieb:
Die API ist 11 Jahre alt und hat vor 8 Jahren das letzte Feature Update erhalten.
… na, da war aber einer wohl wieder zu bequem mal kurz Google zu benutzen um zu prüfen, ob die eigene Aussage auch stimmt.

Dumm nur, dass DirectX 11 mit Version 11.3 2015, also vor 5 Jahren ein Update erfahren hat und es noch mal ein Update auf DirectX 11.4 gab, das war dann 2016 und damit kam das letzte Feature-Update vor 4 Jahren.

Wie ich schon mal jemanden schrieb: Wenn man eines auf Besserwisser machen will, dann sollte man sich mal Mühe geben und sich mit der Thematik befassen. Das ist dann etwas Arbeit, aber so ist es einfach nur traurig, auch oder gerade weil ich die Hinweise auf DX 11.3 und DX 11.4 in meinem Beitrag schon geliefert habe und dass diese Updates mit DX12 kamen.

Zudem solltest du besser lesen, was ich geschrieben habe: Ich habe nie geschrieben das DX11 nicht verwaltet ist, oder dass ich damit ein Problem habe. Das sind Aussagen, die du mir andichtest, weil du irgendwie versuchst im Recht zu bleiben. Lesen ist doch nicht so schwer und man sollte alles Lesen, gerade wenn man dann versucht andere zu belehren und im Recht zu bleiben, ansonsten macht man sich schnell angreifbar.

Ich habe dir nur gesagt, dass die Argumente, die du anbringst, allgemein und polemisch sind und keine Argumente dafür sind, warum DX11 veraltet ist und auch jetzt bringst du keine wirklichen Argumente, bis auf die pauschale Kritik, dass DX11 aus der Zeit von »Phenom« und der ersten Core i-Generation stammt, nicht mehr und nicht weniger.

Damit kannst du bei Menschen landen, die sich noch weniger als du mit der Materie auskennen oder nicht wirklich dafür interessieren und die das dann einfach abnicken. Jeder der jedoch ein wenig mehr von Computern sowie Software-Entwicklung versteht und auch ein wenig Interesse hat sich mal in ein Thema einzulesen, bevor man eine unfundierte Behauptung - wie du sie hier ablieferst - ablässt, kann über deine Beiträge nur Müde lächeln.

Ich habe mir zudem die Mühe gemacht zu erklären, warum eben DX11 immer noch sehr oft verwendet wurde und wird und welchen Hintergrund es hat und dein Fingerzeig auf NVIDIA als auch, dass man ja nicht Investieren möchte eben nur platt und pauschal sind.

Ehrlich, wenn du schon eines auf Oberschlau machen willst, dann gib dir gefälligst Mühe. Ja ich weiß, Recherche kann anstrengend sein, vor allem wenn man nicht genug Ahnung von der Materie hat um zu wissen wonach man suchen muss, aber auch hier gilt: Übung macht den Meister.
 
  • Gefällt mir
Reaktionen: MR2007, Colindo und xexex
@Teralios

Und ich hatte in Wikipedia nachgesehen wo noch der 11.2 Stand vermerkt war.
Und hat es nun endlich mal vernünftiges Multithreading gelernt das nicht mehr am Main Thread für die Last Verteilung verhungert und wie steht es nochmal um aktuelle Funktionen wie Raytracing und Co.?
Ist all dies nicht der Fall hat sich an der grundlegenen Struktur wenig geändert und wäre damit auch weiterhin auf dem Stand von vor 11 Jahren wo genau die Hardware Ausstattung Stand der Dinge war die ich oben schrieb und wäre damit auch weiterhin hoffnungslos veraltet.
Das Ding hätte z.B. schon vor 3 Jahren mit mindestens 16 Threads effizient arbeiten können und heute wären wir wohl eher um Bereich von 32 Threads weil das nunmal der Stand der bisherigen 16 Kerner ist. Von Modellen wie Threadripper und Co. mit bis zu 64 Kernen bzw. 128 Threads ist dabei noch nicht einmal die Rede, welche seit Anfang Februar erhältlich sind.
Und, kann es das? Auf welchen Stand waren diesbezüglich nochmal DX12 und Vulkan?

Und jetzt bitte nicht die "es ist nicht alles parallelisierbar" Keule auspacken die seit den ersten Dualcores als Rechtfertigung für fehlenden oder sehr mangelhaften Multicore Support genutzt wird und auf wundersame Art und weise bei späterer Software doch mehr Kerne nutzbar werden. Es geht schließlich auch nicht darum das alles parallelisierbar wäre sondern darum dass das parallelisiert wird was parallelisierbar ist.

Ach ja, der besagte Zeitraum von 11 Jahren entspricht übrigens ca. dem von DirectX 6.0 - 11.0 inkl. der schon zu langen DX9 Ära (wurde wohl bis 2010 aktualisiert) und mit allen Versionssprüngen und Zwischenupdates. und DX12 ist auchs eit nunmehr 5 Jahren auf dem Markt und wird fast schon Stiefmütterlich behandelt.

Du brauchst dir auch keine Mühe machen irgendwas zum Thema DX11 zu erklären denn der Grund ist einfach und billig.
Es ist leichter und billiger damit zu programmieren und kann seitens der Hersteller dann auch mit dessen Einschränkungen leben solange es dennoch mit dem Hardware Platzhirsch am Markt schnell genug läuft, welcher seinerseits die Gegebenheit nutzt seine Marktdominanz zu festigen und die Gewinnmaximierung zu steigern.
So oder so, der Verlierer des Spiels ist am Ende immer der Kunde und das auch wenn er das mangels Vergleichbarkeit nicht sieht. Gerade beim Thema Multicore Unterstützung sind wir inzwischen aber an einem Punkt angelangt wo sich die Schwächen von DX11 kaum noch kaschieren lassen und wo Spiele die beide APIs anbieten nicht selten mit DX12 bzw. Vulkan eine bessere Performance abliefern weil die Spiele vor allem bei schnellen Grafikkarten mit DX11 an der mangelhaften Kern Nutzung verhungern. Eine entsprechende Aufrüstung der Multicore Fähigkeiten ist in meinen Augen ganz einfach seit grob 5 Jahren überfällig.
 
R4ID schrieb:
Heutzutage kauft man sich ne dicke Grafikkarte und freut sich auch darüber aber nicht so wie es früher mal war, kennt ihr das ?
definitiv, aber wie du schon schriebst liegt das bei "unserer" generation (da du wie ich damals ein kleiner junge war) wohl auch sehr stark daran, dass wir damals monate bis mglw. jahre taschengeld sparen mussten um selbst eine aufrüstung finanzieren zu können. ich hab auch als jugendlicher nie irgendeinen ferienjob oder sonstwas gemacht und war auf taschengeld, geburtstags- und weihnachtsgeschenkgeld angewiesen um upgraden zu können und die pakete von alternate wurden grundsätzlich per nachnahme bezahlt.
heutzutage sind wir dementsprechend älter, verdienen geld und gönnen einfach nach belieben.

ich weiss noch dass ich damals meinen vater gefragt hab ob ich 400 euro (von meinem eigenen geld) für ne graka ausgeben "darf", er hatte damit kein problem, meine mum schon^^
 
Hayda Ministral schrieb:
Habe ich eigentlich die Chance, selbst herauszufinden welchen DX-Level ein bestimmtes (bei mir installiertes) Spiel nutzt? Oder muss ich mich da auf die Angaben des Herstellers verlassen?
Möglichkeiten gibts, aktuell ist mir aber nur die "komplizierte" bekannt per Hex-Editor. XD
 
Zurück
Oben