Index-Buffer in OpenGL
-
Kennst du den Unterschied zwischen EXT und ARB ? Nein ? Hab ich gemerkt.
Ich kenne sehr wohl den Unterschied zwischen EXT und ARB, allerdings zweifle ich daran dass du dass richtig verstanden hast.
ob die Extensions Aussagen über die Version machen sondern ob die Version Aussagen über die Extensions macht.
Du bist wirklich lustig
So schwer ist dass doch gar nicht.
Versuchen wir es mal mit einem Beispiel:
Mal angenommen du willst eine state-of-the-art 3D-Programm schreiben.
Schauen wir uns mal an was du bräuchtest:
GL_ARB_vertex_buffer_object (Vertex/Index-Buffer)
GL_EXT_framebuffer_object (Offscreenrendering, leider noch nicht released. Wird aber anscheinend bald)
GL_ARB_(alle GLSL extensions) (GLSlang)Ok gehen wir mal durch welche Features du an der GL-Version bestimmen könntest.
Der aktuelle NV-Treiber ist bei 1.5.2 (66.29, Linux).
Also ist GL_ARB_vertex_buffer_object im Core, toll.
GLSL aber erst ab GL 2.0... so einen Treiber haben wir aber nicht.
Von framebuffer_object will ich jetzt mal gar nicht anfangen.Hmmm, haben wir jetzt mit Hilfe der Version hinreichend die Features bestimmen können? Ich denke nicht.
Bestimmen die Extensions denn die Version?
Nicht zwingend. Meine Karte unterstützt alle GL2.0 Featues, über Extensions.
Wie aber oben zu lesen ist, hängt der Treiber aber noch bei 1.5.Was lernen wir daraus?
Über die Version einer OpenGL-Implementierung läßt sich keine ausreichende Aussage über die unterstützten Features treffen womit sie beim Implementieren eines Programms unbedeutend wird.q.e.d.
-
Kane schrieb:
Ich kenne sehr wohl den Unterschied zwischen EXT und ARB, allerdings zweifle ich daran dass du dass richtig verstanden hast.
Wie kommt es dann, dass du beide auf eine Stufe stellst ? Haben doch beide so gar nichts miteinander zu tun.
Kane schrieb:
So schwer ist dass doch gar nicht.
Scheinbar schwer genug, damit du es nicht verstehst.
Kane schrieb:
Ok gehen wir mal durch welche Features du an der GL-Version bestimmen könntest.
Der aktuelle NV-Treiber ist bei 1.5.2 (66.29, Linux).
Also ist GL_ARB_vertex_buffer_object im Core, toll.
GLSL aber erst ab GL 2.0... so einen Treiber haben wir aber nicht.
Von framebuffer_object will ich jetzt mal gar nicht anfangen.
Hmmm, haben wir jetzt mit Hilfe der Version hinreichend die Features bestimmen können? Ich denke nicht.Doch. Du weißt, dass du mit entsprechender GL Version auch entsprechende Extensions hast. Du kannst eben nicht davon ausgehen, dass ne Karte mit GL Version 1.5 GLSL fähig ist. Sehr wohl kannst du aber davon ausgehen, dass alle 1.5 Features da sind. Und NUR darum ging es. Die GL Version macht eine Aussage über die vorhanden Core Features und ist damit in keinster Weise nichtssagend.
Kane schrieb:
Nicht zwingend. Meine Karte unterstützt alle GL2.0 Featues, über Extensions.
Wie aber oben zu lesen ist, hängt der Treiber aber noch bei 1.5.Das tut meine Karte auch. Dummerweise hängt der Treiber aber auch bei einer GF2 bei 1.5. Wo ist da der GLSL Support ? Nirgends. Der Treiber sagt hier lediglich aus, dass die 1.5er Core Features vorhanden sind. Er sagt also aus was machbar ist und was nicht.
Kane schrieb:
Was lernen wir daraus?
Dass die Version entsprechende Aussage über dei vorhanden Core Features macht und du dennoch nicht vorhersagen kannst, welche zusätzlichen Extensions da sind. Du weißt lediglich, dass bei einer Version von 1.5 die spezifischen Extensions dafür vorhanden sind. Das bringt bei der Enticklung eines Programmes aber 0 Punkte, da nicht alle Karten die 1.5 unterstützen auch zwangsläufig 2.0 unterstützen werden.
womit sie beim Implementieren eines Programms unbedeutend wird.
Du schreibst also ein Programm, setzt 1.5 als erforderliche Version und nimmst GLSL weil das ja bei deiner Karte als Extension da ist. Da wirste mit allen User mit nur GF4MX und darunter richtig viel Sßa haben. Die bekommen auch ne Version 1.5 angezeigt, nur fehlt da der GLSL Support.
Irgendwei ist es doch lustig, dass du mir immer wieder Recht gibst und dann versuchst dich rauszuwinden wenn man dich darauf aufmerksam macht. Sehr suspekt, wirklich. Aber es ist schön zu sehen, wieviel Mühe du dir wiedermal gegeben hast um genau das zu beweisen, was ich oben gesagt habe. Wenigstnes hast du diesmal das Thema nicht maßlos verfehlt und hast wenisgtens versucht darauf einzugehen, ob die GL Version Aussagen über die vorhandenen Extensions macht. Natürlich tut sie das, wie du ja oben selbst gesagt hast ( siehe Bsp mit VBO ). Ist schonmal ein Fortschritt, dass du was zum Thema geschrieben hast, wirklich.
-
Ich will mitflamen
, hab' aber keine Ahnung von nix!!
Was kann ich da tun?!?
Okay, poste ich halt ein paar Smilies:
-
Ahvolon[F-Bytes] schrieb:
Du weißt, dass du mit entsprechender GL Version auch entsprechende Extensions hast. Du kannst eben nicht davon ausgehen, dass ne Karte mit GL Version 1.5 GLSL fähig ist. Sehr wohl kannst du aber davon ausgehen, dass alle 1.5 Features da sind. Und NUR darum ging es. Die GL Version macht eine Aussage über die vorhanden Core Features und ist damit in keinster Weise nichtssagend.
Es ging um die Version des Treibers.. Und nicht um die Karte..
Wenn Du ne 1.4-Karte hast und nur 1.1 (oder so..)-Treiber, dann kannst trotzdem auf die 1.4-Vorteile der Karte zugreifen. Darum gehts..[flame]
PS: und darum rockt ogl
[/flame]
-
durito schrieb:
Wenn Du ne 1.4-Karte hast und nur 1.1 (oder so..)-Treiber, dann kannst trotzdem auf die 1.4-Vorteile der Karte zugreifen.
Sag bloß
Das ist aber die falsche Richtung in dieser Diskussion, da es darum geht, ob die GL Version was über die Features aussagt. Und um es nochmal zu wiederholen, das tut sie. Wenn die gl Version der Treiber 1.1 ist und man das als Systemanforderung in seinem Projekt festsetzt, kann man nicht davon ausgehen, dass die Karte dann auch Sachen wie GLSL kann. Das mag zwar dann bei einigen Karten gehen, bei anderen nicht.
-
Die GL-Version des Treibers mag wohl aussagen, was die Karte mindestens kann. Aber das interessiert niemanden (naja, ok.. :)). Kauf Dir ne 6800er, und Du wirst nen 1.3-Treiber kriegen. Kauf Dir ne GeForce4 und Du kriegst 1.3... Was Dich an der Karte interessiert erfährst Du nicht aus der ogl-Version, sondern aus deren Extensions.
Was die HW betrifft ist die ogl-Version natürlich informativer, aber darum gings ja nicht, sondern um die Treiber..
-
durito schrieb:
Aber das interessiert niemanden.
Siehe Beispiel mit GF2. Wenn du ein Programm jeglicher Art machst musst du Systemanforderungen festlegen und kannst nicht davon ausgehen, dass ne Karte die 1.3 Treiber hat auch GLSL kann. Und die Version sagt dir, was die Karte die du hast 100% kann. Mehr muss man nicht wissen, da es lächerlich ist Programme zu schreiben, die Core Features von ner GL Version benutzen, für die es noch keine Treiber gibt und für die die Extensions lediglich schon in manchen Treibern drin sind, weil es manche Karten können.
-
Ahvolon[F-Bytes] schrieb:
durito schrieb:
Aber das interessiert niemanden.
Siehe Beispiel mit GF2. Wenn du ein Programm jeglicher Art machst musst du Systemanforderungen festlegen und kannst nicht davon ausgehen, dass ne Karte die 1.3 Treiber hat auch GLSL kann. Und die Version sagt dir, was die Karte die du hast 100% kann. Mehr muss man nicht wissen, da es lächerlich ist Programme zu schreiben, die Core Features von ner GL Version benutzen, für die es noch keine Treiber gibt und für die die Extensions lediglich schon in manchen Treibern drin sind, weil es manche Karten können.
Ja eben, 1.3 sagt mir gar nichts über die Karte aus. Wie willst Du also festlegen, dass Deine Anforderungen z.B. OpenGL 2.0 sind (inkl. GLSL), wenns eh keine 2.0-Treiber gibt? Wenn ich was festlege, dann welchen Shader ich will, und was für Extensions ich will. Somit kann ich, von der eh völlig veralteten OpenGl-Version unabhängig, meine Anforderungen stellen.
-
schad das man hier keine votings aufmachen kann. würd gern wissen wieviele opengl und wie viele dx proggen.
find trotzdem ogl besser, nachdem ich über 2 jahre dx programmiert habe. am meisten hat mich an dx genervt die referenz zu direct3ddevice mitzuschleppen / zu verwalten. am 2. die interfaces. bald ( hoff ) kauf ich mir einen 64 bit, da mach ich linux drauf und benutzt winxp nur noch als spiele plattform.
-
DEvent schrieb:
schad das man hier keine votings aufmachen kann. würd gern wissen wieviele opengl und wie viele dx proggen.
wieso sollte man dasn icht können
rapso->greets();
-
durito schrieb:
Ja eben, 1.3 sagt mir gar nichts über die Karte aus.
Und nochmal. Es sagt dir 100% was die Karte kann. Ob noch Extensions höherer Versionen da sind spielt dabei keine Rolle.
durito schrieb:
Wie willst Du also festlegen, dass Deine Anforderungen z.B. OpenGL 2.0 sind (inkl. GLSL), wenns eh keine 2.0-Treiber gibt?
Das kannst du nicht. Oder was glaubst du warum es keine Games gibt die GLSL nehmen ?! Klar kannst du festlegen, dass du gern GL2.0 hättest, aber ob das eine Graka kann basiert dann nur auf Glück, solange die GL Version des Treibers < 2.0 ist. Somit wäre das vollkommen schwachsinnig.
Rein theoretisch wäre es sogar möglich, dass du nen Graka Treiber installierst. Dann ne GL Version zwischen 1.5-2.0 hast und deine Karte nichtmal weiß was GLSL ist, selbst wenn du ne GF6800 hast. Denn diese Extensions gehören dann noch nicht zur GL Version der Treiber.
Es macht also keinen Sinn ein Produkt mit solchen Features auszuliefern. Entwickelst du aber für eine bereits vorhandene Version, weißt du, dass mit der Existenz von Treibern dieser Version auf der entsprechenden Graka auch genau die Extensions da sind, die du brauchst.
durito schrieb:
Wenn ich was festlege, dann welchen Shader ich will, und was für Extensions ich will. Somit kann ich, von der eh völlig veralteten OpenGl-Version unabhängig, meine Anforderungen stellen.
Die Treiber sind noch nicht bei 2.0. Dass es die Extensions jetzt schon in den Treibern gibt hat damit absolut nichts zu tun. Das ist purer guter Wille un das Bedürfnis die Sachen schon vorher fertig zu haben. Darauf kannst du dich aber nicht verlassen. Ebenso wenig kannst du dich darauf verlassen, dass es alles funktioniert solange du nicht entsprechende GL Version hast. Ist das dann der Fall darfst du Fehlerfreiheit erwarten.
-
rapso schrieb:
DEvent schrieb:
schad das man hier keine votings aufmachen kann. würd gern wissen wieviele opengl und wie viele dx proggen.
wieso sollte man dasn icht können
rapso->greets();
wie macht man das den ?
-
ich glaub, Ahvolon, durito wollte darauf hinsaus, der er nicht in den anforderungen schreibt: GL Version 1.5, sondern "muss GLSL haben". dann wird ja keiner das produkt kaufen, der kein GLSL hat.
( was is das überhaupt ? )
und er wollte sagen, das er die gl version total veraltet findet und das GL applikationen bereits mehr features benutzen können als die GL version es angibt.
-
DEvent schrieb:
"muss GLSL haben". dann wird ja keiner das produkt kaufen, der kein GLSL hat.
( was is das überhaupt ? )Dummerweise sind normale PC User genauso dumm wie du in diesem Fall. Was bringt es also dem User, wenn auf der Rückseite der Packung dutzende Extensions aufgelistet sind und er keine Ahnung hat was das eigentlich ist ?
DEvent schrieb:
"
GL applikationen bereits mehr features benutzen können als die GL version es angibt.Ich habe oben wohl deutlich genug erklärt, warum man das bei Sachen die man verkauft, nicht machen kann.
-
Ahvolon[F-Bytes] schrieb:
Was bringt es also dem User, wenn auf der Rückseite der Packung dutzende Extensions aufgelistet sind und er keine Ahnung hat was das eigentlich ist ?
So jemand wird wohl auch kaum Ahnung haben was OpenGL 1.5 ist, oder ob er es installiert hat. Du merkst wohl nicht, welchen Unsinn du schreibst:
In der Theorie kann man wohl drauf herumreiten das der Benutzer diese OGL Version und jene Extensions haben muss. In der Praxis wird da stehen "GeForce3 oder besser". Man wird die Core Features von OGL 1.1 nutzen und alles weitere über Extensions ansprechen. Insofern ist die OGL Version sehr wohl nichtssagend. Und Rückschlüsse auf die Nutzbaren Features der GraKa kann man aus der OGL Version ohnehin nicht ziehen, da (zu) viele Benutzer nicht mal wissen was ein GraKa Treiber ist, geschweige denn das man ihn manchmal updaten sollte.
-
Es geht einzig und allein darum was im Extensionstring steht. Die Versionsnummer ist völlig irrelevant. IMHO ist das ganze sowieso nur Marketing und teilweise auch Druckmittel um die IHV dazu zu bringen die ganzen Extensions zu implementieren, damit sie sagen können: Hey guckt mal, wir haben nen 2.0 zertifizierten Treiber.
cya
liquid
-
Das Beispiel mit der GF2 war eindeutig genug. Wers immernoch nciht verstanden hat, nochmal lesen und notfalls mal auf ogl.org umsehen.
-
Da ist man mal 2 Tage nicht da und schon hat der Post 1 1/2 Seiten mehr.
Naja ich denke ist ist sinnlos weiter mit Ahvolon[F-Bytes] zu diskutieren, er
ist einfach zu klug für diese Welt (mit TGGC verwandt?).Ansonsten wünsche ich ihm alles Gute mit seinen OpenGL-Versionen, er wird es brauchen.
-
Kane schrieb:
Ansonsten wünsche ich ihm alles Gute mit seinen OpenGL-Versionen, er wird es brauchen.
Jup, denn nur so lassen sich Sachen verkaufen. Aber gut, träum einfach weiter und hoffe darauf, dass du nie nen Spiel hinbekommen wirst was irgendwer kaufen würde. ( Musste dir aber wohl keine Sorgen drum machen )
-
Komisch dass Doom3 sich verkauft...