DGL
https://delphigl.com/forum/

Problem mit VBO-Daten im Vertexshader
https://delphigl.com/forum/viewtopic.php?f=20&t=9832
Seite 1 von 1

Autor:  stitchy [ Sa Apr 02, 2011 19:41 ]
Betreff des Beitrags:  Problem mit VBO-Daten im Vertexshader

Hallo,

ich bin mir nicht ganz sicher ob meine Daten aus dem VBO richtig beim Vertexshader ankommen. Kann man das überprüfen? Jendenfalls laufen sowohl Vertex- als Fragmentshader. Die Shaderinfologs und das Shaderprogramminfolog sind leer. Ansonsten siehts schematisch bei mir so aus:

- FBO binden
- Zieltextur an FBO attachen
- setting stuff (kamera, enables, disables,...)
- get attribute location für "InVertex"
- binden der attribute location
- shaderprogramm nochmal linken
- use programm
- vbo binden
- vertex attribbute array enablen
- vertex attribute pointer mit der location von vorhin, 4 komponenten pro vertex, type GL_FLOAT, normalisierung = false, stride = 0 und startpunkt 0 im vbo setzen
- rendering mit glDrawArrays
- disablen des vertex attribute array
- der restliche aufräumkram

und im vertex shader erwarte ich eigentlich bei " in vec4 InVertex " jeweils die vertices aus dem vbo.
hab ich was offensichtliches falsch gemacht/ vergessen?

Wäre schön, wenn mir jemand helfen könnte.

Autor:  Lord Horazont [ So Apr 03, 2011 09:57 ]
Betreff des Beitrags:  Re: Problem mit VBO-Daten im Vertexshader

Also ich erwarte meinen Vertex in GL_VERTEX, aber ich bin auch noch in der OpenGL Steinzeit von GL 2.1. Vielleicht hilftst aber dennoch ;)

greetings

Autor:  stitchy [ So Apr 03, 2011 13:31 ]
Betreff des Beitrags:  Re: Problem mit VBO-Daten im Vertexshader

Vielen Dank für die Antwort.
Ich hab beides ausprobiert sowohl die kombination mit glvertexattributepointer und InVertex als auch glvertexpointer und gl_Vertex. und beides hat mich nicht zu meinem gewünschten ergebnis gebracht.

Autor:  Lord Horazont [ So Apr 03, 2011 13:38 ]
Betreff des Beitrags:  Re: Problem mit VBO-Daten im Vertexshader

Zeig mal wie du dein VBO füllst. Hast du auch die Client-States aktiviert (glEnableClientState(GL_VERTEX_ARRAY); und so)?

greetings

Autor:  stitchy [ Mo Apr 04, 2011 15:21 ]
Betreff des Beitrags:  Re: Problem mit VBO-Daten im Vertexshader

Also ich befülle das VBO immer schritt für schrit mit ner for-schleife und der Funktion:

Code:
 glBufferSubData( GLenum target, GLuint offset, GLsizeptr size, GLvoid* data );


vorher habe ich natürlich die Gesamtgröße des VBOs mit:

Code:
  glBufferDataARB(GLenum target, GLsizeptr size, GLvoid* data, GLenum usage);


angegeben. Ich bin mir allerdings nicht sicher wie ich nun die Daten des VBOs an den Vertexshader weiterleite. Momentan siehts bei mir so aus:

    Shader und Programm bestimmen, kompilieren und linken
    loc = glGetAttribLocation( programHandle, "InVertex" )
    FBO und GL Kram
    vbo bind
    glVertexAttribPointer(loc, 4, GL_FLOAT, GL_FALSE, 0, vbo.offset(0) )

wobei offset wie folgt definiert ist:

Code:
   char* offset(unsigned int _offset) const
  {
    return ((char*)NULL + _offset);
  }


    danach kommt das Enablen mit glEnableVertexAttribArrayARB(loc);
    textur binden
    an dieser stelle würde ich gerne das vbo rendern mit glDrawArrays(GL_POINTS, 0, bufferSize/(4*sizeof(GL_FLOAT)) )
    disablen des attributs glDisableVertexAttribArrayARB(loc);

ich habe mehr oder weniger bewusst kein glEnableClientState(GL_VERTEX_ARRAY) aktiviert/deaktiviert, weil ich dachte, dass man das nur bei Vertex arrays braucht. oder brauch ich das auch für vbos?

Könnt ihr in der Abfolge ( diese sieht dann ja doch ein wenig anders aus als der erste beitrag ;) ) sehen ob ich noch etwas vergessen habe oder gar falsch mache?

Autor:  stitchy [ Mo Apr 04, 2011 15:59 ]
Betreff des Beitrags:  Re: Problem mit VBO-Daten im Vertexshader

habt einer von euch schonmal gDEBugger verwendet? dort kann man sich unter anderem Textureninthalte und Vertexbufferinhalte anzeigen lassen. Jedoch bekomme ich bei vielen Einträgen entweder "nan" raus oder extrem winzige zahlen à la -e^ 30 . wenn mir den bufferinhalt mit
glGetBufferSubData() ausgeben lasse kommen ordentliche zahlen raus, die auch meiner eingabe entsprechen.
Welche Zahlen sind nun richtig?

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/