News OpenGL 3.2 mit Geometry Shader ist da

@BPhoenix: Ja, Extensions, toll. Dumm nur, dass dann jeder Hersteller seine eigenen Extensions für seine Hardware schreibt, womit zum von vornherein schon höheren Aufwand bei OpenGL noch die Anpassung an mehrere Plattformen hinzu kommt, obwohl man das mit OpenGL eigentlich vermeiden wollte...
 
Das mit der Ankündigung seitens Nvidia find ich nicht so überraschend, da OpenGL der 3D Standard bei Unix-basierten BS ist und Nvidia da schon seit Jahren nicht zu toppen sind, was die Treiberentwicklung angeht.

Am interessantesten finde ich eigentlich die Stelle:
Die (...) vorgestellte API soll (...) die Portierung einer Direct3D-Engine erleichtern.

Vielleicht erwägen dann endlich mal mehr Entwickler ihre Spiele für Linux zu portieren!? Fänd ich sau gut wenn ich nicht immer extra ein anderes BS booten muss zum zocken :)
Wobei ichs speziell bei Blizzard nicht versteh, weil die eh schon oft OpenGL Mac-Versionen rausbringen, wie BPhoenix schon geschrieben hat. Mit dem tollen neuen Battle.net-(Kopierschutz)system wirds wohl eher noch unwahrscheinlicher dass da Linuxports erscheinen.

Greetz
 
@ riDDi

Wird bei grafisch oppulenten Spielen nicht ohnehin für Nvidia anderer Code genutzt, als für ATI? Was sind denn bspw. die "Spieleoptimierungen" in diversen Treibern?
 
@BPhoenix: Ja, Extensions, toll. Dumm nur, dass dann jeder Hersteller seine eigenen Extensions für seine Hardware schreibt, womit zum von vornherein schon höheren Aufwand bei OpenGL noch die Anpassung an mehrere Plattformen hinzu kommt, obwohl man das mit OpenGL eigentlich vermeiden wollte...
Es gibt ja mehr als nur die Herstellereigenen Extensions! Diese kommen nur als erstes. Danach setzen sich die Hersteller zusammen und verabschieden Einheitliche Schnittstellen, welche aber erst viel später in den offiziellen Standard aufgenommen werden. Und diese einheitlichen Schnittstellen kann man dann schon vor einer offiziellen Aufnahmen plattformübergreifend und problemlos nutzen!

Zwischen Herstellereigenen Extions und dem offiziellen OpenGL Standard gibt es ganz viele Schritte, je weiter man zu den Herstellereigenen geht desto neuer dafür aber auch plattformbezogener, je weiter man in die andere Richtung geht desto älter und einheitlicher, wobei etwas in der mitte schon vollkommen ausreicht und problemlos genutzt werden kann und das je nach dem auch ziemlich früh!
Das mit der Ankündigung seitens Nvidia find ich nicht so überraschend, da OpenGL der 3D Standard bei Unix-basierten BS ist und Nvidia da schon seit Jahren nicht zu toppen sind, was die Treiberentwicklung angeht.
Naja in letzter Zeit soll sich hier doch einiges getan haben, ich denke das wird bald komplett anders aussehen!
eek!!! hier werden mit absicht unwarheiten verbreitet...

der verfasser gehört gehängt
Naja das ist aber schon eine gewaltige Unterstellung und etwas ziemlich übertrieben, womöglich sollte sich der Artikelschreiber hier mal zu Wort melden (und abändern).
Wird bei grafisch oppulenten Spielen nicht ohnehin für Nvidia anderer Code genutzt, als für ATI? Was sind denn bspw. die "Spieleoptimierungen" in diversen Treibern?
Die Spieleentwickler haben erstmal gar nichts mit den Treibern am Hut.

in der Regel geht es so:
Spiele Engine => Grafik API (OpenGL / Direct X) => Treiber => Hardware

Open GL wird zum Beispiel komplett vom Grafiktreiber realisiert, das ist auch der Grund wieso man nie eine Open GL Runtime oder ähnliches installieren muss, da dies eben Bestandteil des Treibers ist. Natürlich kann man hier den Treiber (oder direkt OpenGL) so anpassen dass der Code der Engine besser auf die Hardware abgebildet wird und damit schneller wird, aber der Spieleentwickler hat hier bei der Programmierung keinen direkten Einfluss auf solche Optimierungen.
 
Zuletzt bearbeitet:
MountWalker schrieb:
Wird bei grafisch oppulenten Spielen nicht ohnehin für Nvidia anderer Code genutzt, als für ATI?
Wird das heute immer noch von den Entwicklern selbst gemacht? Ich weiß, dass Carmack in Tech4 gleich mehrere Renderpfade sogar für veschiedene Generationen gleicher Hersteller hatte. Sonst sind mir aber keine solchen Bemühungen bekannt.
Wenn jetzt Grafikkartenhersteller meinen, sie müssten im Spielcode rumpfuschen, um mehr Performance rauszuholen, dann ist das doch deren Sache und nicht die, der Spieleentwickler.
 
@MountWalker
Naja WoW ist so eine Geschichte.
Richtig gute Games gibt es in den seltensten Fällen für MacOS.
Da ist DX doch recht dominant.
 
BPhoenix schrieb:
Naja in letzter Zeit soll sich hier doch einiges getan haben, ich denke das wird bald komplett anders aussehen!
Kannst du das bitte konkreter ausdrücken? Wenn du darauf anspielst, dass ATI sich jetzt auch um andere Betriebsysteme kümmert und zum Teil die Quellen geöffnet hat heißt das noch nicht, dass der jahrelange Vorsprung von Nvidia sofort aufgeholt ist.
 
Wird das heute immer noch von den Entwicklern selbst gemacht? Ich weiß, dass Carmack in Tech4 gleich mehrere Renderpfade sogar für veschiedene Generationen gleicher Hersteller hatte. Sonst sind mir aber keine solchen Bemühungen bekannt.
Du meinst wohl unterschiedliche Shader. Und ja soweit ich weis wird das immer noch gemacht, da es eben Grafikkarten mit Shadermodel 3.0, mit Shadermodel 4.0 und Shadermodel 4.1 gibt, aber das hat weniger was mit Optimierungen zu tun als viel mehr der vollen Nutzung der Hardware.
Wenn jetzt Grafikkartenhersteller meinen, sie müssten im Spielcode rumpfuschen, um mehr Performance rauszuholen, dann ist das doch deren Sache und nicht die, der Spieleentwickler.
Nein, weder Grafikkartenhersteller pfuschen im Spielcode rum noch pfuschen Spieleentwickler im Grafikkartentreiber rum! Lies nochmal was ich geschrieben habe.
Kannst du das bitte konkreter ausdrücken? Wenn du darauf anspielst, dass ATI sich jetzt auch um andere Betriebsysteme kümmert und zum Teil die Quellen geöffnet hat heißt das noch nicht, dass der jahrelange Vorsprung von Nvidia sofort aufgeholt ist.
Deswegen ja auch: ich denke das wird bald komplett anders aussehen! (Zukunftsform, und das ich denke zeigt, dass es meine persönlich Meinung ist.)
 
Zuletzt bearbeitet:
Wo wir grade von Carmack reden, Rage auf der idTech5 engine basierend, ist OpenGL. Zu dem allgemeinen Spieleproblem, die meisten Hersteller programmieren ihre Engines auf DX, OpenGL, OpenGL ES. Daher sollte ein porten generell von DX zu OpenGL nicht schwer sein. Siehe UT3. Es ist immer noch kein Linux port, die aktuelle Ausrede ist wegen Lizenz- und Patentrechten. Na klingelts? Fortschritt und so.
Sache ist halt auch, DX liefert alles mit. Und OpenGL wird meistens von Linux, OSX usern verwendet und es lohnt sich finanziell einfach nicht auf OpenGL zu portieren. Zu wenig Verkaeufe und zu wenig Umsatz. Schon mal C# programmiert? Ich sag dazu immer: Programmieren fuer dumme, da jeder depp damit ein Spiel basteln kann, wenn er sich ein paar Stunden hinsetzt ohne Vorkenntnisse.

Das mit dem mehr kompliziert sein versteh ich allerdings nicht ganz. Ich brauche OpenGL und DirectX, grafisch sind beide gleich auf, von der Programmierung her ist es klar das es anders ist. Aber keines von beiden ist kompliziert, weder in der Version 1.5 und auch nicht in der version 3.0 in OpenGL. DX ist von 9 oder 10, 11 auch nicht kompliziert. (argh ich merke wie mein deutsch floeten geht)
 
FreddyMercury schrieb:
Schon mal C# programmiert? Ich sag dazu immer: Programmieren fuer dumme, da jeder depp damit ein Spiel basteln kann, wenn er sich ein paar Stunden hinsetzt ohne Vorkenntnisse
Ich habe nie verstanden was daran ein Problem ist und finde so eine Einstellung traurig. Der Sinn ist jawohl sich auf's Wesentliche zu beschränken, sprich ein gutes Spiel zu entwickeln.
Das sage ich als C++ Programmierer dem Optimierung wichtig ist und der sich auch mit eingebetteten Systemen beschäftigt.
 
FreddyMercury schrieb:
Wo wir grade von Carmack reden, Rage auf der idTech5 engine basierend, ist OpenGL.
OpenGL UND DirectX. id will mit Tech5 auf die XBox, also geht kein Weg daran vorbei. Generell will id wie es scheint alles supporten, was es gibt. Man muss sich ja auch irgendwie am aussterben hindern, nur mit einem neuen Quake oder Doom hier und da wird das nichts.

BPhoenix schrieb:
Du meinst wohl unterschiedliche Shader.
Wir reden über 2004, da war noch nicht sooo viel mit Shadern. Überhaupt haben die 2, 3 Shaderprogrämmchen in Doom 3 damals längst nicht so viel an der Performance gezerrt wie der Stencil-Overkill.

BPhoenix schrieb:
Nein, weder Grafikkartenhersteller pfuschen im Spielcode rum
Der Treiber pfuscht gehörig im Spiel rum, oder als was würdest du die Änderung von API-Aufrufen betrachten?

@denglisch: Wenn etwas einfach ist führt das zwangsläufig leider dazu, dass unerfahrene oder unfähige Leute es nutzen. Das Ergebnis ist dann meistens eine Katastrophe.
 
Zuletzt bearbeitet:
riDDi schrieb:
OpenGL UND DirectX. ...
Auf Windows vermutlich DirectX minus Direct3D + OpenGL - XBox360-Grafik und Windows-Direct3D sind auch nicht identisch. Ich glaub das einzige, was mittlerweile bei Windows und XBox einheitlich ist, ist XAudio2. (als die 360 Unified Shader bekam, stand noch nicht fest, wie das in Direct3D für Windows mal definiert werden würde) Ich bezweifle mal, dass Id für die PC-Fassung mit XNA arbeitet.

Und wer weiß, vielleicht wird das nächste The Elder Scrolls ja auch OpenGL, nachdem Id jetzt zu Zenimax Media gehört. (Animationen in Oblivion sind ja eher schwach, die können sicherlich ein paar Ratschläge von Id gebrauchen)
 
Zuletzt bearbeitet:
Ich habe nie verstanden was daran ein Problem ist und finde so eine Einstellung traurig. Der Sinn ist jawohl sich auf's Wesentliche zu beschränken, sprich ein gutes Spiel zu entwickeln.
Das sage ich als C++ Programmierer dem Optimierung wichtig ist und der sich auch mit eingebetteten Systemen beschäftigt.
C# kenn ich zwar nicht. Aber am Beispiel PHP sieht man wie solche besonders leichten Sprachen Leute dazu bringen vor sich hinzupfuschen anstatt richtig zu programmieren (nun gut das geht auch mit Sprachen wie C/C++ und das sogar ganz gut). Außerdem halten sich die Leute dann für das größte wenn sie einfach alles in ein Array stopfen und regen sich dann auf, wenn sie mal selber Listen oder andere Datenstrukturen selbst erzeugen müssen und gerade bei komplexen Aufgaben ist das sogar nötig. Ich würde mal sagen solche Sprachen unterstützen das ganze.

Außerdem gibt es eben Leute die sich besonders als C/C++ oder gar Assembler Programmierer für besonders gut halten und alle anderen eben als schlechter ansehen, weil sie den einfachsten Weg gehen. Nun gut in einigen Fällen mag das vielelicht sogar stimmen (siehe oben).
Wir reden über 2004, da war noch nicht sooo viel mit Shadern. Überhaupt haben die 2, 3 Shaderprogrämmchen in Doom 3 damals längst nicht so viel an der Performance gezerrt wie der Stencil-Overkill.
Ja selbst 2004 gab es schon Shader. Und was hat nun die Performance damit zu tun, dass wenn man die Hardware voll nutzen will man eben für unterschiedliche Shader programmiert. Naja vielleicht nennst du mal eine Quelle wo drinsteht was genau nun mehrmals programmiert wrude.
Der Treiber pfuscht gehörig im Spiel rum, oder als was würdest du die Änderung von API-Aufrufen betrachten?
Der Treiber ist Bestandteil der Api, es ist seine Aufgabe die Api Aufrufe auf der Grafikkarte zu realisieren. Wo bitte soll da irgendein rumpfuschen in einem Spiel sein? Es ist nicht festgelegt wie diese Realisierung aussieht und sie kann auch beliebig optimiert werden.
 
Pfuh. Für die PS3 solls auch kommen und die kann nur OpenGL ES. Also wirds da auch nix.

@BPheonix: Tut mir leid, aber der Quellcode für Tech4 ist noch nicht verfügbar. Ich kann dir also nichts genaues über die Renderpfade sagen. Allerdings gibt es 7 verschiedene. Carmack hat eine Menge Arbeit darin gesteckt, dass sein Spiel (dass eigentlich die Spielewelt verändern sollte, wie alle davor auch) auf jeder Art Hardware am so schnell wie möglich läuft. Weil grade die Stencilschatten die Performance gedrückt haben, muss er da was gemacht haben.

PS: Klar, einen API-Aufruf zu ändern, um etwa ein anderes Shaderprogramm zu laden ist natürlich keine Manipulation...
 
Zuletzt bearbeitet:
Man wäre es ein Traum, wenn ich komplett auf Linux umsteigen könnte... :(
 
GrooveXT schrieb:
Es wäre schön wenn es sich langsam gegen DirectX im Spielebereich behaupten könnte. Ist ein Spiel erstmal auf OpenGL umgesetzt, ist der Sprung auf anderen Betriebssysteme à la Linux oder MacOS auch nicht mehr weit. Auf jeden Fall mal ein Schritt in die richtige Richtung.
Und genau aus diesem Grund existiert die Xbox ^^. MS musste nämlich mit allen Mitteln verhindern, dass Spieleentwickler anfangen nur noch in OpenGL zu programmieren. Das hätte dann nämlich ihr Monopol bei den Betriebssystemen gefährdet. Der Heimanwender hätte dann eventuell auch mal zu Linux gegriffen, da das Argument "Spiele laufen nur unter Windows" weggefallen wäre. Und da der Heimanwender letztendlich bestimmt, welches Betriebssystem in Firmen verwendet wird, hätte das für MS eine Kettenreaktion in Gang setzen können. (Man nimmt normalerweise das BS das der Bürohengst schon von zu Hause kennt, da den Mitarbeiter umzuschulen extrem teuer ist. Auf jeden Fall teurer als die Windows Lizenz. )
BPhoenix schrieb:
Auf Browser übertragen könnte man Open GL mit dem Fire Fox, der nahezu nix von Haus aus kann aber durch die Erweiterungen im Funktionsumfang den meisten Browsern dennoch überlegen ist und Direct X mit dem Opera vergleichen, der von Haus aus sehr viel mitbringt aber kaum nachrüstbar ist, wenn etwas fehlt!
Dann trifft sich das ja gut, denn ich benutze zum Beispiel aus genau diesem Grund den Opera, weil ich eben keinen Bock habe mir die ganzen Plugins erst aufwendig aus dem Netz zusammenzusuchen. Da lad ich mir meine 9MB Datei runter , installiere und bin glücklich. Und den Entwicklern wird's wohl ähnlich gehen. Vor allem, da die momentanen Grafikkarten doch eher auf die Eigenheiten von Direct3D zugeschnitten sind und Änderungen an Direct3D auch sofort zu Hardwareänderungen führen.(DX11 führt Tesselation ein und schon findet sich auch bei Nvidia Tesselation wieder) Das macht es wesentlich leichter die Mindestanforderungen festzulegen. (z.B. DX 9.0c mit Shader Model 3.0 und mindestens der Leistung von Radeon X1300)

BPhoenix schrieb:
Außerdem wird nicht OpenGL häufig bei Konsolen verwendet, gerade abseits der XBox?
Muss ja wohl, denn Microsoft wird Sony wohl kaum Zugriff auf DirectX geben. Und dann bleiben ja eigentlich nur noch OpenGL.

An alle, die hier immer DirectX mit OpenGL vergleichen, bzw gleichsetzen:
Das geht nicht!
OpenGl ist eine Grafik Api.
DirectX ist eine Api-Sammlung.
Das Pendant zu OpenGL bei DirectX wäre Direct3D und damit muss es auch verglichen werden.
DirectX bringt aber auch noch
DirectSound: bis Version 9 dann
XAudio2
DirectInput: für Eingabegeräte
XInput: als eigene API für den 360Controller, womit endlich mal auch am PC ein standardisierter Controller existiert und man sich das lästige konfigurieren sparen kann, bei dem einen sowieso nie die vorhandenen Knöpfe gereicht haben. Mit Games vor Windows (nicht Games for Windows Live) hat MS dann auch gleich noch das passende Label eingeführt, denn sämtliche darunter erscheinenden Spiele müssen den 360 Controller unterstützen.
DirectPlay: als grundlegendes Multiplayer Gerüst.

Und das macht es eben für Programmierer interessant, da sie hier von MS ein SDK für alles erhalten. Dass das SDK von MS selbst kommt, ist dann noch das Tüpfelchen auf dem i, da man so zusätzlich noch eine gewisse Garantie hat, dass DirectX eine hohe Kompatibilität zu Windows aufweist.
 
Zuletzt bearbeitet:
@dgschrei genau das meinte ich mit der Bequemlichkeit der Programmierer. Aber abgesehen davon ist es eben unangebracht von unterlegen zu sprechen!

Vor allem, da die momentanen Grafikkarten doch eher auf die Eigenheiten von Direct3D zugeschnitten sind und Änderungen an Direct3D auch sofort zu Hardwareänderungen führen.(DX11 führt Tesselation ein und schon findet sich auch bei Nvidia Tesselation wieder) Das macht es wesentlich leichter die Mindestanforderungen festzulegen. (z.B. DX 9.0c mit Shader Model 3.0 und mindestens der Leistung von Radeon X1300)
Das hingegen ist total falsch! Nicht Microsoft bringt Neuerungen die dann von den Herstellern umgesetzt werden, sondern die Hersteller bringen diese und besprechen sie Monate / Jahre vorher mit Microsoft, damit diese wenn auch die Hardware erscheint gleichzeitig in Direct X enthalten sind! Mag sein, dass hier der falsche Eindruck entsteht, dass Microsoft hier den Fortschritt voran treibt aber das ist eindeutig falsch!

Wenn überhaupt kann Microsoft das ganze bremsen wie man ausgerechnet an deinem Beispiel Tesselation sehen kann, denn hier hat sich Microsoft eben wegen NVidia entschieden diese nicht in Direct X 10 einfließen zu lasssen, da NVidia hier eben noch nichts hatte.
Man wäre es ein Traum, wenn ich komplett auf Linux umsteigen könnte... :(
Kannst du doch, musst lediglich auf die rein Windowsbasierten Spiele verzichten :p.
 
Wer hier letztendlich bestimmt, wann die jeweilige Hardware kommt, ist ja relativ egal. Vor allem für die Entwickler.
Für die zählt nur, dass mit dem Erscheinen einer neuen DirectX Version auch die dafür benötigte Hardware erscheint.
Hätte OpenGL einfach so Tesselation eingeführt hätte kein Hahn danach gekräht und man hätte ewig darauf warten können, dass die Grafikkartenhersteller da mal mit Hardware hinterher ziehen. (Oder es gibt schon Tesselation in OpenGL, was mein Argument dann auch noch beweisen würde)

Und es ist doch schon reichlich arrogant, bei den Entwicklern von Bequemlichkeit zu sprechen, weil sie das für sie praktischere Produkt verwenden.
Wenn du 10 Paletten Ziegelsteine in eine andere Stadt liefern sollst, dann fährst du doch auch nicht mit dem Sprinter 10 mal jeweils eine Palette hin und her, sondern du mietest dir (soweit Führerschein vorhanden ) eben einen Laster und bist so bequem das Ganze in einer Fuhre zu erledigen.
Auch darf man hier nicht vergessen, dass es bei der Entwicklung von Spielen um bares Geld geht. Wenn sich durch die konsequente Verwendung von DirectX z.B. zwei Monate Entwicklungszeit einsparen lassen, weil MS einem eben alles zusammen liefert, dann hat man bei den heutigen Spielen mal schnell Beträge in Millionenhöhe eingespart. Da ist die Entscheidung auf das "bequemere" System zu setzen absolut verständlich.

Außerdem, warum soll man es sich absichtlich schwer machen, wenn die zu erwartenden zusätzlichen Verkäufe irgendwo zwischen 1-2% liegen?
Fast jeder Gamer hat einen Windows PC. Und die paar, die ausschließlich auf Mac oder Linux setzen, sind so wenige, von denen man dann auch noch nur einen geringen Teil mit dem eigenen Spiel ansprechen kann, dass es sich eben nicht lohnt für die mit zu entwickeln.

Das läuft bei Spielen nicht so wie bei Photoshop, das sich in der Mac Gemeinde ja blendend verkauft, da die ganzen Künstler ja immer möglichst hip, cool und progressiv sein wollen mit ihren Macs.
 
riDDi schrieb:
@denglisch: Wenn etwas einfach ist führt das zwangsläufig leider dazu, dass unerfahrene oder unfähige Leute es nutzen. Das Ergebnis ist dann meistens eine Katastrophe.
Naja, wenn ich mir erfahrene Leute ansehe und was die für unbenutzbare Programme erzeugen. Sie sind so sehr auf die low-level Teile konzentiert dass der eigentliche Sinn des Programms vergessen wird.
Bei vielen Programmen lässt die Benutzeroberfläche sehr zu wünschen übrig, oder bei Spielen z.B. gibt es Massen die mit Grafik protzen aber stinklangweilig sind.

Keine einfacheren Lösungen = kein Fortschritt, fähige Leute verschwenden dann ihre Kraft für elementare Aufgaben.
 
Zurück
Oben