Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

[OpenGL] Index VBO

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Bibliotheken
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 28.10.2011, 11:16    Titel: [OpenGL] Index VBO Antworten mit Zitat

Moin lächeln

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
darkinsanity
aka sts


Anmeldungsdatum: 01.11.2006
Beiträge: 456

BeitragVerfasst am: 28.10.2011, 20:24    Titel: Re: [OpenGL] Index VBO Antworten mit Zitat

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 zwinkern

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
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 29.10.2011, 01:03    Titel: Antworten mit Zitat

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 peinlich)
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
darkinsanity
aka sts


Anmeldungsdatum: 01.11.2006
Beiträge: 456

BeitragVerfasst am: 29.10.2011, 12:47    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 29.10.2011, 13:00    Titel: Antworten mit Zitat

Ich kaufe ja mittlerweile fast alles bei Amazon... durchgeknallt Da kann man z.B. einfach Bankeinzug machen. Nachnahme kostet ja immer extra.

Die haben das Buch natürlich auch: Dave Astle, Kevin Hawkins: More OpenGL Game Programming
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 29.10.2011, 13:06    Titel: Antworten mit Zitat

Ja, da hab ich es jetzt auch bestellt, allerdings per Rechnung (vorraussichtlich am 4. November da lächeln)
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Bibliotheken Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
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.

 Impressum :: Datenschutz