- attribute vec2 mytexcoord;
- varying vec2 Texcoord;
- void main( void )
- {
- gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
- Texcoord = mytexcoord.xy;
- }
DGL https://delphigl.com/forum/ |
|
Erster versuch mit GLSL https://delphigl.com/forum/viewtopic.php?f=20&t=5703 |
Seite 1 von 1 |
Autor: | Finalspace [ Do Jul 20, 2006 09:37 ] | |||
Betreff des Beitrags: | Erster versuch mit GLSL | |||
Tach, wollte mal fragen wie genau das funzt mit GLSL und VBO´s. Ich bekomms leider nicht hin, das ich was sichtbares bekomm ![]() Hier sind die zwei shader: Vertex shader: Code:
Fragment shader: Code:
und so render ich den VBO: Code:
Der letzte parameter in glVertexAttribPointerARB gibt ja an, auf welcher Pointer position sich die Daten befinden. Und das ist mein vertex array mit (position, normalen, tangente, binormale und texture korrdinate) Deswegen * 4. Das sollte also stimmen. Wenn wer ne idee hat, bitte melden... kenn mich mit GLSL nich gut aus Danke vielmals, Final
|
Autor: | oc2k1 [ Do Jul 20, 2006 13:39 ] |
Betreff des Beitrags: | |
Ich würde am anfang nicht eigene Attribute benutzen, sondern die schon vorhandenen Texturkoordinaten nutzen. Ansonsten probier die VBOs ersteinmal ohne shader aus (Geht natürlich nur sinvoll mit vohrhandenen Texturkoordinaten) und benutz dann erst einmal die Shader aus dem Wiki. Manchmal ist es auch sinvoll die opengl befehle nicht in Objekten zu kapseln. Das macht anderen es gerade zu unmöglich den code durchzuschauen... |
Autor: | Finalspace [ Do Jul 20, 2006 14:52 ] |
Betreff des Beitrags: | |
Normale VBOs gehen einwandfrei, ohne shader -.- Hab jetzt zumindest mal nen bild bekommen, aber die texture koordnaten stimmen immer noch nicht ![]() Zitat: Manchmal ist es auch sinvoll die opengl befehle nicht in Objekten zu kapseln. Das macht anderen es gerade zu unmöglich den code durchzuschauen...
Code:
O_o *vertex und fragment shader geändert oben, sowie das verkorkste bild P |
Autor: | Finalspace [ Do Jul 20, 2006 16:46 ] | ||
Betreff des Beitrags: | |||
Habs hinbekommen, lag nicht am shader, sondern an der reihenfolge wie die VertexAttribPointer übergeben werden. Hab da mal nen beispiel gemacht: Wenn man vertex mit 5 typen hat, beispielsweise (Position, Normal, Tangent, BiNormal, Texcoord) dann muss das rendern so folgen: Code:
und im shader so drauf zugreifen: Code:
Das erste attribut sollte ja nach der VertexAttribPointer reihenfolge eigentlich die Position sein, ist aber nicht so, ka wieso :p Auf jedemfall die nächsten sind dann die folgenden... Sowas sollte man echt im GLSL tut mal erwähnen ![]()
|
Autor: | La Boda [ Do Jul 20, 2006 16:49 ] |
Betreff des Beitrags: | |
Rein interessehalber, hast du die Performance zwischen "normal", VBO und Shader VBO mal verglichen? |
Autor: | Finalspace [ Do Jul 20, 2006 20:20 ] |
Betreff des Beitrags: | |
Shader VBO: Maximal reached fps: 807.19 Minimal reached fps: 196.00 Normal VBO: Maximal reached fps: 799.00 Minimal reached fps: 213.00 Wenn mans zur laufzeit umschaltet, dann ist normales VBO schneller. Aber hab gemerkt das es mit ATI noch probs gibt, kolleg mit ner Radeon 9800 pro, geht zwar alles... nur sieht das bild genauso verkorst aus wie oben. Sprich die texcoords fehler ![]() *EDIT: mist, bei ATI machts probleme ![]() |
Autor: | oc2k1 [ Do Jul 20, 2006 22:14 ] |
Betreff des Beitrags: | |
ICh will noch mal dran erinnern, dass es sinn macht die bekannten vec4 gl_MultiTexCoord0..7 vec4 gl_Normal und vec4 gl_Color aus der festen Pipeline zu benutzen. Diese brauchen dann auch nicht extra deklariert werden |
Autor: | Finalspace [ Fr Jul 21, 2006 00:02 ] |
Betreff des Beitrags: | |
Ok habs auch hingekriegt, dank diesen dokuments, welches ich mühsam gesucht hab -.- http://gpwiki.org/index.php/OpenGL:Tutorials:GLSL_Bump_Mapping ATI hat probleme mit glVertexAttribPointerARB() und funktioniert nur wanns will ![]() Das problem gabs schon des öferen, wurde auch hier im Shader forum diskutiert. Siehe: http://www.delphigl.com/forum/viewtopic.php?t=4016 Auf jedemfall jetzt gehts, und ich lass es auch so ![]() Musste den shader bissel versimplern, genau wie du gesagt hast, direkt gl_Texcoord benutzen und nicht über wege über attribts machen. Code:
Code:
und der rendervorgang sieht nun auch bissel anderst aus *g* Code:
|
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |