2010-02-16 6 views
8

Wenn wir Webseiten entwickeln, können wir basierend auf marketshare grob ausarbeiten, welche Browser unterstützt werden.Welche Version von OpenGL/Direct3D sollte ich für optimale Kompatibilität ausrichten?

Wenn wir in .NET entwickeln, können wir breit erarbeiten, welche .NET-Version für which Windows versionshave it installed zu entwickeln.

Aber wie können wir bei der Entwicklung von OpenGL oder Direct3D-Anwendungen wissen, welche Videokarten Menschen (ich meine "Leute" im Gegensatz zu "Hardcore-Gamer" oder "Unternehmen mit CAD": P) verwenden? Gibt es Statistiken über solche Dinge? Gibt es eine allgemeine Logik, nach der die Leute herausfinden, welche Version sie unterstützen sollen? So wie die meisten Unternehmen ein Minimum an IE6 in Webseiten unterstützt haben (vielleicht until just recently), 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 which specific video cards support which versions dieser APIs herausfinden können, aber woher wissen wir, welche Videokarten Menschen tatsächlich verwenden, gibt es irgendeine Art von Forschung zu diesem Thema?

N.B. Ich bin mehr an OpenGL interessiert, weil ich das verwende, aber ich erwähne Direct3D, weil ich annehme, dass das gleiche Problem zutrifft.

Antwort

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, wenn 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 sperren die Benutzerbasis, die WindowsXP noch ausführt.

Über Kompatibilität für Nicht-Gamer: Grafikkarten, die diese APIs nicht (mindestens zu 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 Benutzer beschwert, dass die Software nicht auf seiner 10 Jahre alten Matrox-Phalhelia-Karte läuft, sollte er nur die günstigste Grafikkarte kaufen, die er bekommen kann. Es läuft viel schneller und wird einen Bruchteil der Software kosten.

+0

DirectX-7-Level-Karten werden weiterhin unter DX9 ausgeführt. Sie können Funktionen wie Shader einfach nicht verwenden. Dies ist bei DX10 NICHT der Fall. Wenn eine Karte den DX10-Funktionssatz nicht unterstützt, können Sie DX10 nicht verwenden. – Goz

+0

Beachten Sie, dass Sie bei der Auswahl der zu verwendenden API-Version nicht näher bei der Festlegung Ihres zulässigen Feature-Sets sind. Ein großer Fehler der 3D-Entwicklung besteht darin, dass viele Funktionen, die von dem Standard gefordert werden, den sie unterstützen, "funktionieren", aber nicht auf einer Qualität und Leistung, die Sie verwenden können. Unterschiedliche Hardware wird eine andere Teilmenge der Standardfunktionen bevorzugen. – Alan

0

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

Wenn das Projekt in Monaten fertig sein soll, 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, insbesondere mit Retrokompatibilität bis Feature-Level 9.0.

7

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

Sie müssen definieren, wer Ihre Verwendungen sind. 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 Intel-integrierten GPUs) unterstützen müssen, dann würde GL 3.1 zu hoch zielen.

Ein guter Einstieg für die allgemeine Hardware-Nutzung. Stas unter den Spielekäufern ist die Steam Hardware Survey (http://store.steampowered.com/hwsurvey). 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, also ist die Stichprobenpopulation ziemlich gut.

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

+1

+1 für den Steam Hardware Survey Link. Gut gemacht. –