DGL
https://delphigl.com/forum/

glGetVaryingLocation findet nur eingebaute Variablen
https://delphigl.com/forum/viewtopic.php?f=20&t=9127
Seite 1 von 1

Autor:  k-bal [ Do Apr 01, 2010 12:27 ]
Betreff des Beitrags:  glGetVaryingLocation findet nur eingebaute Variablen

Moin,

Gegeben folgender Shaderkopf (so oder so ähnlich bekannt aus dem GPU Partikelsystem 2):

Code:
#version 120

#extension GL_EXT_gpu_shader4 : require
#extension GL_EXT_geometry_shader4: require

varying out vec4 velocityOut;
...


In meinem Programm will ich mir die Varying Locations für Transform Feedback holen:

Code:
//glActiveVaryingNV(myUpdateShader->getID(), "velocityOut");
myLocMoveVelocity = glGetVaryingLocationNV(myUpdateShader->getID(), "velocityOut");
myLocMovePosition = glGetVaryingLocationNV(myUpdateShader->getID(), "gl_Position");


Bei gl_Position klappt das ganze (gibt 0 zurück), bei velocityOut gibt er mir jedoch -1 zurück. Auch glActiveVaryingNV macht keinen Unterschied. Ich bin darauf angewiesen eine vorgefertigte Shaderklasse zu benutzen und weiß leider nicht, ob es vielleicht am Kompilieren und Linken des Shaders liegt, da ich nur das Interface kenne.

Habe leider keine Idee woran das liegen könnte. Habe das Partikelsystem schon zu Hause am Laufen gehabt (mit OpenGL 3.0) und versuche es jetzt in der institutseigenen Simulationssoftware (OpenGL 2.1) einzubetten.

Gruß,
Marius

Autor:  Coolcat [ Do Apr 01, 2010 12:46 ]
Betreff des Beitrags:  Re: glGetVaryingLocation findet nur eingebaute Variablen

Ich kann nur sagen bei mir funktioniert das so. Ist den die entsprechende Extension für Transport-Feedback überhaupt verfügbar? Es gibt da verschiedene die man nicht mit einander mischen sollte.

Edit: Du erzwingst da GLSL 1.2, vielleicht solltest du 1.3 nehmen?

Autor:  k-bal [ Do Apr 01, 2010 13:06 ]
Betreff des Beitrags:  Re: glGetVaryingLocation findet nur eingebaute Variablen

GL_NV_transform_feedback ist verfügbar und #version 130 verschafft keine Abhilfe :x

Autor:  Coolcat [ Do Apr 01, 2010 13:18 ]
Betreff des Beitrags:  Re: glGetVaryingLocation findet nur eingebaute Variablen

Rufst du glGetVaryingLocationNV vor oder nach dem linken auf? Bist du sicher das dieses getId() auch wirklich das Programm-Objekt zurückgibt? (die 0 von gl_Position könnte daher kommen, dass gl_Position immer 0 ist oder so)

Autor:  k-bal [ Do Apr 01, 2010 13:20 ]
Betreff des Beitrags:  Re: glGetVaryingLocation findet nur eingebaute Variablen

Danach, aber beide Varianten führen auf das exakt gleiche Ergebnis.

Edit: Ich frag mal wegen GetID nach, aber das ist die einzige Funktion im Interface, die überhaupt sowas in der Art zurückgibt ;)

Autor:  k-bal [ Di Apr 06, 2010 10:12 ]
Betreff des Beitrags:  Re: glGetVaryingLocation findet nur eingebaute Variablen

Also getID() liefert wirklich den OpenGL Identifier :cry:

Autor:  Aya [ Di Apr 06, 2010 10:25 ]
Betreff des Beitrags:  Re: glGetVaryingLocation findet nur eingebaute Variablen

Und bist du sicher das der Shader richtig compiliert und gelinkt wurde?

Also evtl macht die ShaderKlasse keine kontrolle ob es fehler gab beim compilieren..? Wenn du die ID hast einfach mal selbst überprüfen.

Bei meinen alten nVidia Karten war immer das problem das er das "#version" nicht kannte und deswegen nie compiliert hat - war eben ein syntax error.

Aya~

Autor:  k-bal [ Di Apr 06, 2010 10:34 ]
Betreff des Beitrags:  Re: glGetVaryingLocation findet nur eingebaute Variablen

Aya hat geschrieben:
Und bist du sicher das der Shader richtig compiliert und gelinkt wurde?

Also evtl macht die ShaderKlasse keine kontrolle ob es fehler gab beim compilieren..? Wenn du die ID hast einfach mal selbst überprüfen.

Bei meinen alten nVidia Karten war immer das problem das er das "#version" nicht kannte und deswegen nie compiliert hat - war eben ein syntax error.

Aya~


Normalerweise spuckt der automatisch alle Fehlermeldungen der Shader aus. Die Programm IDs sehen auch vernünftig aus. Die Karte ist übrigens eine 8800gtx und sollte das meines Wissens auch alles können :)

Autor:  Thmfrnk [ Di Jul 17, 2012 11:40 ]
Betreff des Beitrags:  Re: glGetVaryingLocation findet nur eingebaute Variablen

wurde hier eine Lösung gefunden?? Ich stehe vor dem selben Problem..

Autor:  phlegmatiker [ Di Jul 17, 2012 15:16 ]
Betreff des Beitrags:  Re: glGetVaryingLocation findet nur eingebaute Variablen

Unter Umständen hat der Compiler die Variable einfach wegcompiliert, da sie nicht benötigt/benutzt wurde....... prüfe das doch mal...

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