Registriert: Do Jun 19, 2003 10:44 Beiträge: 991 Wohnort: Karlsfeld (nahe München)
[start am 24.7.2007; Dauer: 30 Tage]
Ich habe manchmal den Eindruck das viele sich noch auf die OpenGL 1.5 API beschränken und den Rest zum Beispiel über OpenGL Extensions lösen.
Bestes Beispiel sind Shader, für die es seit OpenGL 2.0 auch Kernfunktionen gibt.
Ein anderes Beispiel ist der Support von "non power of two"-Texturen. OpenGL 2.0 setzt diesen vorraus, dennoch habe ich das Gefühl, dass "non power of two"-Texturen noch gemieden werden.
_________________ Danke an alle, die mir (und anderen) geholfen haben. So weit... ...so gut
Zuletzt geändert von Flo am Di Jul 24, 2007 18:31, insgesamt 1-mal geändert.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Aktuell setze ich nur OpenGL 1.1 ohne Extensions vorraus. Sind aber auch nur texturierte Quads. Und sonst habe ich einfach kein Anwendungsgebiet für 2.0 aufwärts.
NPOT Texturen: Ich muss gestehen, dass ich Jedem empfehle auf NPOT weitestgehenst zu verzichten. Der Grund dafür ist recht einfach. ATI hat es versaut! Sobald man NPOT Texturen UND MipMaps auf ATI Karten benutzt fällt die ganze Sache in den Softwaremodus. Leider merkt man so etwas erst dann, wenn es nicht mehr funktioniert, weil nur noch 1-2 Bilder pro Minute gerendert werden. Keine Ahnung ob die X1000 oder X2000 auch noch dieses Problem besitzen aber generell hätten die älteren Karten kein OpenGL 2.0 bekommen dürfen.
Genau das ist eben das Problem: Die Treiber. Insbesondere GLSL ist nicht wirklich brauchbar und daher kann man außer in Demos keine Shader verwenden. Entweder der Shader wird gar nicht kompiliert, läuft in Software ohne dass man es mitbekommt, oder die Kompilierung dauert viel zu lange.
Bei den "Assembler" Shader gibt es solche Probleme in der Form nicht.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Ich setze für mein aktuelles Projekt OpenGL 1.3 voraus und nutze daneben diverse Extensions. Da es ein Spiel ist, und von einer möglichst großen Zielgruppe gespielt werden soll, kann ich nicht einfach z.B. OpenGL 2.0 voraussetzen. Allerdings hab ich auch mehrere Renderpfade im Projekt W, der Shaderpfad braucht dann OpenGL 1.5 + GLSL.
Und wie Lars bereits angedeutet hat machen die meisten Probleme eh die Treiber, da wird sich kaum an Versionen oder Standards gehalten. Beim Testen auf älteren Grakas ist mir das besonders aufgefallen. So gibts mit GLSL auf neueren ATI-Treibern Probleme, die Geforce 4 gibt z.B. als Extension GL_ARB_SHADING_LANGUAGE_100 an obwohl die nur Vertexshader kann (laut Spec muss man für gerade genannte Extension VS und FS anbieten) und diverse Extensions sind zwar da werden aber stillschweigend in Software umgesetzt. Alles in allem ist der Stand hier irgendwie ziemlich erbärmlich und für mehrere Hardwaregenerationen bzw. Hersteller zu entwickeln ist besonders für nen Hobbyisten zu einem unglaublichen Krampf geworden.
NPOT-Texturen hatt ich übrigens auch drin, aber wieder rausgeworfen. Hier kann es nämlich je nach Graka/Treiber passieren dass auf Software umgestellt wird, es damit also sehr langsam läuft. Und als Entwickler hat man ja leider nicht die Möglichkeit zu erkennen ob ein Feature nun in Hardware oder Software läuft.
Absolutes Minimum ist bei mir 1.3 mit S3TC Extension. Ich brauch mindestens GL_BGR für TGA Dateien, da ich bei denen nicht ständig R und B vertauschen will und die S3TC Ext für DDS Dateien.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Ich versuche auf Level 1.5 mit Extensions zu bleiben, wobei ich für jede Extension, die ich bewusst benutze auch einen Ersatzpfad einbaue, der dann vielleicht Grafisch nicht so aufwendig ist, aber trotzdem dann ohne sichtbare fehler läuft.
was npots betrifft: Ich löse das so: Ich versuche mich an pots zu halten, aber selbst wenn ich es nicht tue, mein Texturloader kümmert sich darum und macht mir ne pot draus, dabei werden die S und T-Koordinaten, die den Rand der Textur darstellen mitgespeichert.
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.