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

1

18.03.2014, 16:06

OpenGL Extensions

Hallo Leute,
Hallo Leute,
ich hätte einige Frage zu OpenGL,ich weiß nicht,ob der Thread hier richtig ist,sonst bitte verschieben!.
Nvidia hat ja sehr viele herstellerspezifische sog. NV extensions,wie zum Beispiel in Call of Duty 1 (NV_fog_distance), die auf keiner andren Karte laufen.
Wenn sich nun zum Beispiel die Khronos Group bereit erklärt hätte dies in die ARB z.B 3.0 zu veröffentlichen und AMD Karten unterstützen die ARB Version ARB_fog_distance,die es natürlich nicht gibt. Nun, wären die AMD Karten dann im Stande durch die ARB Erweiterung, damalige herstellerspezifische NV Extensions darzustellen oder müssten alte Spiele ein Update bekommen? Genauso umgekehrt mit der damaligen Extension von ATi mit Truform in Serious Sam,sind diese jetzt mit jetziger Nvidia Hardware darstellbar? Oder reicht es, wenn der Hersteller die Treiber aktualisiert?
Wie ist es mit den Kompatibiltäten der ARB ,EXT und herstellerspezifischen Extension,wenns die selbe ist?
Die alten NvidiaTechdemos gehen ja mit neuer AMD Hardware immer noch nicht, obwohl AMD einige Erweiterungen bereits in der ARB Version drin hat....
Ich frage dads Ganze auch,da Programmierer Techdemos wie Dawn doch auch auf AMD Hardware zum Laufen bekommen haben.

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

2

18.03.2014, 16:18

Ganz allgemein frage ich mich jedes mal wofür Extensions eigentlich noch gut sind (in der praktischen Entwicklung, nicht um Features zu testen, dafür sind sie sinnvoll).
Krall dir Buffer und Shader und dann kannst du eigentlich alles machen was früher und jetzt mit den Extensions ging. Es gibt natürlich ausnahmen, aber als Indie Entwickler (oder 1-Mann) ist das irrelevant.

Wenn du jetzt alte Spiele die entsprechende Extensions nutzen spielen willst geht das auch immer noch nur dann wenn die Funktion bereitsteht.
In der OpenGL API holst du dir die Funktionszeiger vom Grafiktreiber. Wenn das Spiel nicht völlig blöd ist merkt es somit wann eine Extension nicht verfügbar ist und weicht evt. auf andere Möglichkeiten aus.
Also kann es sein das ein Grafiktreiber jetzt die Extension die du brauchst zur Verfügung stellt, aber garantiert ist es nie.
Vor allem bei Spielen die nicht von dir sind kannst du nicht sagen wie dort unterschieden wird, es gibt bestimmt auch welche die gucken auf welcher Hardware sie laufen und danach entscheiden.

Also unterm Strich alles blöd.
Wenn du selbst programmierst versuch darauf zu verzichten. Wenns etwas ist das du spielen möchtest... musste wohl testen.

Legend

Alter Hase

Beiträge: 731

Beruf: Softwareentwickler

  • Private Nachricht senden

3

18.03.2014, 19:29

Also ich meine mal ab und an wenige NV-Extensions auf AMD Hardware zu sehen und umgekehrt. Aber wenn kann ich die höchstens an einer Hand abzählen. Meistens werden wohl dann die ARB-Extensions implementiert, wenn es sie gibt, aber nicht mehr die ursprüngliche herstellerspezifische. Zum Teil liegt das wohl auch daran, dass die ARB-Extensions nicht 1:1 der ursprünglichen herstellerspezifischen entsprechen müssen. Und wenn ich spekulieren müsste, würde ich sagen, dass die herstellerspezifischen Extensions ausserhalb von Techdemos evtl. gar keine so große Rolle spielen.
"Wir müssen uns auf unsere Kernkompetenzen konzentrieren!" - "Juhu, wir machen eine Farm auf!"

Netzwerkbibliothek von mir, C#, LGPL: https://sourceforge.net/projects/statetransmitt/

LukasBanana

Alter Hase

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

4

18.03.2014, 20:31

Wenn eine OpenGL Anwendung nach einer NV_... Extension verlangt, und es 'nur' die ARB_... Equivalente gibt, wird die Anwendung afaik diese Extension nicht nutzen.
D.h. die Anwendung muss dafür entwickelt worden sein, um selbst zu erkennen, ob es eine ARB_... Equivalente Extension gibt.
Bei einigen GL Extensions habe ich das mit EXT_... und ARB_... erlebt. Aber Herstellerspezifische GL Extensions habe ich noch nie benutzt.
Imho ist das für Forschungszwecke sicher praktisch, aber für Spiele verliert dadurch OpenGL etwas an seiner eigentlichen Aufgabe: nämlich die Grafikhardware portabel zu abstrahieren.

5

18.03.2014, 20:40

Ich bin kein Entwickler und kann mich da leider nicht so rein denken,ich bin Spieler und sehe es eher aus Verbrauchersicht. Also habt Nachsicht,wenn ich etwas falsch verstehe,erkläre. Extensions können ja ein ganz schönes Chaos verursachen und eigentlich war OpenGl ja dazu nicht gedacht,das dies so ausufert,das jeder seine eigen Extension rausbringt,sondern,um die Hardware voll auszureizen,die noch nicht offiziell in OpenGl und der Allgemeinheit zur Verfügung steht. Trotzdem zurück zu meiner Frage.
Nutzen heutige Karten spez. herstellerspez Extensions vom Konkurrenten und sind diese kompatibel mit den ARB Versionen? Soweit ich weiß konnte die Rage128 schon T&l unter Opengl.
So gabs Spiele mit ATI Truform, sind dies jetzt auf NV hardware lauffähig oder müsste das Spiel ein spez. ARB Update bekommen. InOpengL Extensions Viewer steht immer die ARB Version und dann der herstellerspez. Alias. Fragt das Spiel erst die ARB Version ab und dann die anderen Extensions. Ich will es nur verstehen, wie Opengl funktioniert. Danke für eure Mühe im Voraus.

6

19.03.2014, 01:49

Hallo Banana, also hast du mir die Frage schon beantwortet! Leider ist mein letzter Post in Hektik nach dir erstellt worden,ohne das ich genau gelesen habe,entschuldige. Ich dachte dies regelt der OpenGL Treiber, der Hardware. Da hab ich wohl einiges durcheinander gebracht. Also Extensions machen durchaus Sinn gerade in 18 Wheels of Steel,dieses Spiel benutzt die ARB Version 2.0 Version, um ältere Karten zu unterstützen wie die Nvidia FX und 6000er Serie,die am Anfang nur bis 1.5 gingen, sind doch spezielle herstellerspez. Extensions sinnvoll, um wenigstens ansatzweise bestimmte Grafikeffekte zu bekommen.

Werbeanzeige