|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Eternal_pain
Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 28.10.2011, 12:16 Titel: [OpenGL] Index VBO |
|
|
Moin
Hab ein paar schwierigkeiten mit Indizierten VBO's
Inzwischen geht der allgemeine Umgang mit VBO's eigentlich recht gut, auch mit Index-Buffer und DrawElement
leider fangen die Probleme aber genau da an, wo's spannend wird... Texturen/Normale ect...
Ich kann grundsätzlich nur EIN Indexbuffer erstellen und auch wenn ich nun mehrere Array habe (Vertice, Tex U/V, Normale ect..)
wenn ich auf Index[1] zugreife greif ich gleichzeit auf ALLE Array auf Index[1] zu und nicht wie gern gewollt V[1] T[9] N[3] als bsp.
bisher kann man das allenfalls dadurch lösen indem man nun doch wieder einige dinge erstens kompliziert sortiert und dazu doppelt indiziert...
Irgendwie is das nicht ganz das was man sich von Index Arrays wünscht, denn eigentlich sind sie genau dafür da um eben NICHT daten doppelt zu
laden...
Hab nu aber öffter gelesen das man Tex,Normale usw auch per Shader 'interpretieren' kann/könnte...
Bin mit den Shadern allerdings noch nicht wirklich warm geworden und auch nicht wirklich fit, geschweigeden find ich
verständliche tutorials und/oder beispiele zu dem Thema.
Hat diesbezüglich jemand erfahrung, ideen, links oder vorschläge wie man das Problem am besten angeht? _________________
|
|
Nach oben |
|
|
darkinsanity aka sts
Anmeldungsdatum: 01.11.2006 Beiträge: 456
|
Verfasst am: 28.10.2011, 21:24 Titel: Re: [OpenGL] Index VBO |
|
|
Eternal_pain hat Folgendes geschrieben: | Ich kann grundsätzlich nur EIN Indexbuffer erstellen und auch wenn ich nun mehrere Array habe (Vertice, Tex U/V, Normale ect..)
wenn ich auf Index[1] zugreife greif ich gleichzeit auf ALLE Array auf Index[1] zu und nicht wie gern gewollt V[1] T[9] N[3] als bsp. |
Das ist genau so gedacht. Der Index bezieht sich auf alle Vertexattribute gleichzeitig. Das ist gar nicht so verschwenderisch wie man zuerst denkt.
Bei mir habe ich momentan nur ein VBO, in dem alle Daten liegen. Gerendert werden nur Dreiecke, wenn ich also ein Quad habe, kann ich so schon etwas sparen.
Eternal_pain hat Folgendes geschrieben: | Hab nu aber öffter gelesen das man Tex,Normale usw auch per Shader 'interpretieren' kann/könnte...
Bin mit den Shadern allerdings noch nicht wirklich warm geworden und auch nicht wirklich fit, geschweigeden find ich
verständliche tutorials und/oder beispiele zu dem Thema. |
Das ist schon mal richtig. Das umgeht aber das Problem, dass du mit dem Indexbuffer siehst, nicht.
Ich benutze momentan OpenGL 3.3 und habe ein VBO, in dem alles liegt (momentan Vertices und Texturkoordinaten). Dazu noch ein IBO plus ein VAO. Mittels glGetAttribLocation / glVertexAttribPointer / glEnableVertexAttribArray hole ich mir dann die Positionen der Attribute im Shader, sage ihm wo die Daten im VBO liegen und aktiviere das Attribut.
Meine momentanen Textur-Test-Shader:
Vertex-Shader:
Code: | #version 330
uniform mat4 projectionMatrix;
uniform mat4 modelviewMatrix;
in vec4 in_vertex;
in vec2 in_texcoord;
out vec2 mid_texcoord;
void main ()
{
gl_Position = projectionMatrix*modelviewMatrix * in_vertex;
mid_texcoord = in_texcoord;
} |
Fragment-Shader:
Code: | #version 330
uniform sampler2D tex;
in vec2 mid_texcoord;
out vec4 out_color;
void main ()
{
out_color = texture2D(tex, mid_texcoord);
} |
Also ich fand die Shader-Sprache deutlich einfacher als den Umgang mit VBO/IBO/VAO.
Momentan kenne ich nur zwei gute deutschsprachige Dokumente dazu:
http://wiki.delphigl.com/index.php/Tutorial_glsl
http://wiki.delphigl.com/index.php/Tutorial_glsl2
Sind allerdings schon etwas betagt, also nicht mehr ganz up-to-date, gerade wenn es an OpenGL 3 Shader geht. Ansonsten einfach mal nach "glsl tutorial" oder etwas in der Art suchen und bei Fragen am besten das delphigl-Forum aufsuchen. Da gibt es jede Menge fähige Leute, die einem bei OpenGL-Problemen helfen
Noch eine kleine Empfehlung: Es gibt ein sehr gutes Buch zu OpenGL, ist aber auf Englisch: "More OpenGL Game Programming" von Dave Astle. Da ist gerade die Shader-Sprache sehr gut erklärt. _________________ Traue keinem Computer, den du nicht aus dem Fenster werfen kannst -- Steve Wozniak |
|
Nach oben |
|
|
Eternal_pain
Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 29.10.2011, 02:03 Titel: |
|
|
Ich glaube die Buchempfehlung ist perfekt, behandelt all die Themen die mir leichte Kopfschmerzen verursachen. (schade das es auf englisch ist)
http://glbook.gamedev.net/GLBOOK/glbook.gamedev.net/moglgp/index.html
Werd es mir morgen direkt bestellen, so hat man mal was in der Hand... (dummerweise bietet mal wieder kein online-shop 'nachnahme' als Zahlungsmethode an ) _________________
|
|
Nach oben |
|
|
darkinsanity aka sts
Anmeldungsdatum: 01.11.2006 Beiträge: 456
|
Verfasst am: 29.10.2011, 13:47 Titel: |
|
|
Ich hatte es bei buecher.de bestellt und per Überweisung bezahlt, das ging eigentlich ganz gut.
Es ist auch trotz englischer Sprache sehr gut verständlich und auch mit einigen Beispielen gefüllt, gerade bei den Shadern ist es sehr gut auch mal zu sehen wie das mit Multitexturing funktioniert usw. _________________ Traue keinem Computer, den du nicht aus dem Fenster werfen kannst -- Steve Wozniak |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
Eternal_pain
Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 29.10.2011, 14:06 Titel: |
|
|
Ja, da hab ich es jetzt auch bestellt, allerdings per Rechnung (vorraussichtlich am 4. November da ) _________________
|
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|