Pixelbufferobjekte wurden mit dem Interfaces von den Vertexbufferobjekten erweitert, so kann man jetzt folgendes:
Wenn das PBO mit PIXEL_PACK_BUFFER gebunden wurde, schreiben Kommandos wie glReadPixels die Daten in das PBO.
Mit PIXEL_UNPACK_BUFFER gebunden, lesen Kommandos wie DrawPixels oder glTexImage ihre Daten aus dem PBO.
sRGB Texturen: Aktuelle Texturformate sind linear aufgebaut, was aber nicht dem Monitor entspricht, wo es nicht linear ist. So ist sRGB an Bildschirme in einem leicht gedämmten Büro angepasst, um genauer zu sein, nach Standart IEC 61966-2-1. Das Ganze entstammt der Erweiterung GL_EXT_texture_sRGB, wobei im Gegensatz zu den EXT-Spezifikationen keine speziellen komprimierten Formate für sRGB übernohmen wurden, sondern die allgemeinen Formate bleiben.
andere Änderungen:
Das Informationslog von program objects kann nun sowie Link- und Validierungsinformationen beinhalten.
Bei DrawPixel und ähnlichen existiert eine current raster secondary color die mit CURRENT_RASTER_SECONDARY_COLOR abgefragt werden kann.
GL_PERSPECTIVE_CORRECTION_HINT (->glHint) wird unnötig, da es bei allen Fragmentattributen ausser der Tiefe perspektivisch korrekte Interpolation benötigt wird und somit gesetzt ist.
Bei folgenden Parameter von glTexParameter wurden der Datentyp von integer zu enum gewechselt:
TEXTURE_WRAP_S
TEXTURE_WRAP_T
TEXTURE_WRAP_R
TEXTURE_MIN_FILTER
TEXTURE_MAG_FILTER
Bei glPushAttrib und glPopAttrib wurde in den Notizen hinzugefügt, dass alle Texturobjektparameter gepusht und gepoppt werden, wenn TEXTURE_BIT in der Attributmaske gesetzt wurde.
GLSL 1.20
gl_PointCoord für Fragmentshader hinzugefügt um die Fragmentposition innerhalb einer point sprite abzufragen.
Arrays sind erste Klasse Objekte und haben jetzt Konstruktoren, man kann sie vergleichen (gleiche Länge als Vorraussetzung), man kann die Länge abfragen length() und weiterem.
Arraykonstruktoren ohne festgelegte Grösse sind erlaubt (Es wird aber denoch ein Array mit festgelegter Länge).
Nichtquadratische Matrizen werden unterstützt.
Matrizen vom Typ Matrix sind erlaubt.
Die Funktion transpose() wurde hinzugefügt.
Verschiedene 'compilation' Units können verschiedene für verschiedene GLSL-Versionen sein.
Weitere Namen reserviert:
lowp
mediump
highp
precision
"f" wird nun als Teil einer Float-Konstante akzeptiert:
Code:
float g = 3.5f
Automatische Konvertierung Integer zu Float, wenn es im Kontext benötigt wird. (Kommentar: Strike! Kein Problem mit mit ATI-Karten für Programmierer mit NVIDA-Karten)
Und noch ein paar weitere Änderungen, die ich zu faul bin zu übersetzen/nicht übersetzen kann:
Support centroid interpolation on multi-sample varyings.
Add C++ style name hiding rules
Allow initializers on uniform declarations. The value is set at link time.
Allow built-in function calls in const initializers.
ARB & Khronos
Auch ist es jetzt offiziell, dass die ARB die Kontrolle der OpenGL-Spezifikationen an Khronos übergibt. Das Ganze soll im dritten Quartal von 2006 abgeschlossen sein.
Mehr dazu hier.
Registriert: Mi Jul 17, 2002 12:07 Beiträge: 976 Wohnort: Tübingen
Danke i0n0s für die umfangreiche News! Wann kann man denn mit Treibersupport für OGL 2.1 rechnen? Irgendwie krieg ich das nie mit...
i0n0s hat geschrieben:
Strike! Kein Problem mit mit ATI-Karten für Programmierer mit NVIDA-Karten
Allerdings! Über diesen Stolperstein bin ich nur so oft auf die Schnauze gefallen.
_________________ "Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0." - Hal Faber Meine Homepage: http://laboda.delphigl.com
GLSL:
Alles in allem leider nur sehr wenige wirkliche Neuerungen. Das sind ja außer gl_PointCoord alles Dinge die man mit Cg schon vor 3-4 Jahren hätte haben können (und hatte). Das Problem mit den Integer Konstanten war ja sowieso völliger Unsinn. Die Länge der Arrays in Cg kann von dem Hauptprogramm aus dynamisch gesetzt werden, was ja hier auch nicht geht. Gerade weil der Compiler im Treiber ist, hätte man hier viel mehr Möglichkeiten als wenn immer noch das Vertex Programm erzeugt werden muß. Schade.
Man kann nur hoffen, dass jetzt nicht zu viele GLSL Versionen erscheinen und das GLSL endlich mal in Spielen benutzt wird, damit die Treiber besser werden.
Ich denke einige entscheidende Dinge sind jetzt mit GLSL möglich. Die inversen und transponierten Matrizen. Vieles wurde erst einmal an CG angeglichen (Matrizen) Außerdem scheint es jetzt möglich zu sein indizierte Konstantenarrays zu verwenden. Prinzipell hätten die auch gleich mal die halffloats mit aufnehmen können, wenn ein hersteller die nicht unterstützen will könnte der dann einfach die normalen Floats verwenden. (Verwenden kann man die trotzdem aber man muss für ATI Karten das mit einem #define umbiegen)
Das mit den Pixelbufferobjekten klingt aber interresant, aber irgend wie hab ich bis jetzt die Framebufferobjekte beforzugt. Mal schauen wie render2vertexbuffer funktionieren wird und ob es möglich ist eine RGBA_FLoat16 textur nach S3TC zu casten...
Mitglieder in diesem Forum: 0 Mitglieder und 36 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.