Welche Version von OpenGL / Direct3D sollte ich für optimale Kompatibilität ausrichten? [geschlossen]

8

Wenn wir Webseiten entwickeln, können wir auf der Grundlage von Markt freigeben .

Wenn wir in .NET entwickeln, können wir weitgehend herausfinden, welche .NET-Version für welche Windows-Versionen es installiert haben .

Aber wie können wir bei der Entwicklung von OpenGL- oder Direct3D-Anwendungen wissen, welche Videokarten Menschen (ich meine "Leute" im Gegensatz zu "Hardcore-Spielern" oder "Firmen, die CAD verwenden: P) verwenden? Gibt es Statistiken über solche Dinge? Gibt es eine allgemeine Logik, nach der die Leute herausfinden, welche Version sie unterstützen sollen? Genauso wie die meisten Unternehmen (zumindest bis vor kurzem ) ein Minimum an IE6 in Webseiten unterstützt haben gibt es einen allgemeinen Konsens, ein Minimum von, sagen wir, OpenGL 1.5 oder DirectX 8 oder so etwas zu unterstützen?

Ich stelle fest, dass wir herausfinden können, welche spezifischen Videokarten welche Versionen dieser APIs unterstützen, aber Woher wissen wir, welche Videokarten tatsächlich benutzt werden? Gibt es dazu irgendwelche Nachforschungen?

N.B. Ich interessiere mich mehr für OpenGL, weil ich das verwende, aber ich erwähne Direct3D, weil ich annehme, dass das gleiche Problem zutrifft.

    
Gavin 16.02.2010, 06:28
quelle

3 Antworten

6

OpenGL 2.1 ist eine gute Wette. Das neuere OpenGL 3 bietet nicht viel mehr Funktionalität. Sie müssen auf jeden Fall die Verfügbarkeit aller OpenGL-Erweiterungen überprüfen, damit Sie nicht viel verlieren, indem Sie sich an 2.1 halten.

Für DirectX: Verwenden Sie DirectX 9c . Das ist die neueste Version, die immer noch unter Windows XP läuft. Treiber sind stabil und sehr ausgereift. DirectX 10 bietet mehr Funktionalität, aber Sie werden die Benutzerbasis ausschließen, die WindowsXP noch ausführt.

Über Kompatibilität für Nicht-Gamer: Grafikkarten, die diese APIs nicht (zumindest in einem brauchbaren Grad) unterstützen, sind vor mehr als fünf Jahren ausgestorben. Angesichts des typischen Lebenszyklus eines PCs können Sie fast sicher sein, dass niemand Probleme hat.

Wenn sich ein Nutzer beschwert, dass die Software nicht auf seiner 10 Jahre alten Matrox-Phalelia-Karte läuft, sollte er sich die günstigste Grafikkarte kaufen, die er bekommen kann. Es läuft viel schneller und wird einen Bruchteil der Software kosten.

    
Nils Pipenbrinck 16.02.2010, 07:53
quelle
7

Die Marktfragmentierung für 3D-Hardware war schon immer ein großes Problem. Es gibt keine einfache Antwort.

Sie müssen definieren, wer Ihre Verwendung ist. Ist das ein Casual-orientiertes Spiel, das Sie an Leute verkaufen wollen, die ihren Computer seit Jahren nicht aktualisiert haben? Ist dies eine Geschäftsanwendung, die auf Workstation-Hardware ausgerichtet ist? Suchst du nur nach einem durchschnittlichen Spielkäufer in der Mitte der Straße? Ist das etwas einfacher als ein Spiel wie ein Bildschirmschoner, den Sie an Leute verkaufen wollen, die keine Spiele kaufen? Müssen Sie Laptops unterstützen? Netbooks?

Die Marktfragmentierung ist mit OpenGL wesentlich schlechter als mit DirectX. Die offiziellen Standardanforderungen der Khronos Group sind alle gut und gut. Aber die Hardware-Anbieter tendieren dazu, ihre Treiber nur sehr langsam zu aktualisieren, um dem Standard zu entsprechen. Viele Funktionen werden von der GL-Spezifikation benötigt, sind jedoch nur in einem Fallback-Softwarepfad implementiert, der in kommerzieller Software absolut unbrauchbar ist. Die neue OpenGL 3.1-Spezifikation versucht, diese Situation zu verbessern, indem die Unterstützung für die meisten älteren, schlecht unterstützten Features entfernt wird. Aber wenn Sie mehr als ein paar Jahre alte Hardware (oder die meisten modernen integrierten Intel GPUs) unterstützen müssen, dann würde GL 3.1 zu hoch zielen.

Ein guter Einstieg für die allgemeine Hardware-Nutzung ist unter anderem die Steam Hardware Survey ( Ссылка ). Steam ist der beliebteste digitale Spielevertrieb, der eine Vielzahl von Spielen von Casual bis Core umfasst. Sie setzen die Zahlen regelmäßig zurück, um sie aktuell zu halten. Letztes Jahr berichteten sie, dass sie 25 Millionen aktive Nutzer hatten, daher ist die Stichprobenpopulation ziemlich gut.

Sie müssen Ihre Zielkundengruppe wahrscheinlich stärker einschränken. Ich würde empfehlen, einige neuere konkurrierende Anwendungen auszuwählen, von denen Sie annehmen, dass sie einen ähnlichen Kundenstamm wie Sie haben und Ihre Zielhardware auf das konzentrieren, was sie benötigen.

    
Alan 17.02.2010 02:16
quelle
0

Es hängt vom Zeitrahmen des Projekts auf der DirectX-Seite ab.

Wenn das Projekt in Monaten fertig sein soll, dann folgen Sie dem Rat von Nils. Wenn die Zeit über ein Jahr ist, würde ich die Beschränkung auf DirectX9 überdenken, da die XP-Maschinen mit der Zeit immer kleiner werden. DirectX11 wäre eine gute Idee, vor allem mit Retrokompatibilität bis Feature-Level 9.0.

    
feal87 16.02.2010 15:39
quelle

Tags und Links