Index-Buffer in OpenGL
-
DEvent schrieb:
und übrigens muss ich eins sagen, OpenGL ist toll
-
Naja die OpenGL-Version ist eigentlich ziemlich nichtssagend, anders als bei DirectX.
Der wirklich coole Kram läuft ja meistens über Extensions
-
Kane schrieb:
Naja die OpenGL-Version ist eigentlich ziemlich nichtssagend, anders als bei DirectX.
Dann solltest du vllt mal nachschauen wie das mit den Extensions funktioniert
-
Lol?
Extensions sind von der OpenGL-Version unabhängig!
Die normale Zyklus für ein OpenGL-Feature sieht so aus:
1. proprietäre Extension GL_NV_ / GL_ATI_ etc
2. "allgemeine" Extension: GL_EXT_ / GL_ARB_
3. wenn sich das Feature bewährt wird es vom ARB in den OpenGL-Core
aufgenommen.Die OpenGL-Version bestimmt nur welche Core-Features vorhanden sind,
das ist aber relativ unbedeutend da das Feature immernoch über die Extension
angesprochen werden kann und man somit nur prüfen muß ob die gewünschten Extensions unterstützt werden.Die einzige Extension <-> Version Abhängigkeit bezieht sich darauf dass
einige Extensions bestimmte Features einer OpenGL-Version voraussetzen.
Das wars dann aber auch schon.Ein OpenGL 1.3/4 kann ohne Probleme GLSL unterstützen obwohl es sich dabei um
ein OpenGL 2.0 (Core-)Feature handelt.
-
Kane schrieb:
2. "allgemeine" Extension: GL_EXT_ / GL_ARB_
Kennst du den Unterschied zwischen EXT und ARB ? Nein ? Hab ich gemerkt.
Kane schrieb:
die OpenGL-Version bestimmt nur welche Core-Features vorhanden sind
Kane schrieb:
Naja die OpenGL-Version ist eigentlich ziemlich nichtssagend
Sehr wiedersprüchlich
Kane schrieb:
Lol?
Extensions sind von der OpenGL-Version unabhängig!Jup, deine Aussage ist sehr witzig. Gut, dass es darum ging, ob die GL Version Aussagen über die Extenions macht. Aber das hast du ja oben erläutert und mir somit nur Recht gegeben.
-
Sehr wiedersprüchlich
Stimmt wenn man nicht richtig lesen kann:
das ist aber relativ unbedeutend da das Feature immernoch über die Extension angesprochen werden kann und man somit nur prüfen muß ob die gewünschten Extensions unterstützt werden.
-
Schade dass du es immernoch nicht verstanden hast. Naja, kommt Zeit kommt vllt auch bei dri Rat.
das ist aber relativ unbedeutend da das Feature immernoch über die Extension angesprochen werden kann und man somit nur prüfen muß ob die gewünschten Extensions unterstützt werden.
Wie schon erwähnt geht es nicht darum, ob die Extensions Aussagen über die Version machen sondern ob die Version Aussagen über die Extensions macht. Beeindruckend wie du versuchst deine Unwissenheit durch ein witziges Verdrehen deiner eigenen Aussagen zu verschleiern.
-
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.