DGL https://delphigl.com/forum/ |
|
Pixelpos im Fragmentshader ermitteln https://delphigl.com/forum/viewtopic.php?f=20&t=11621 |
Seite 1 von 1 |
Autor: | mathias [ Mo Dez 25, 2017 18:15 ] |
Betreff des Beitrags: | Pixelpos im Fragmentshader ermitteln |
Ich code gerade ein Schachbrettmuster auf der Mesh. Dies funktioniert fast wie erwartet, ausser, das Muster ein wenig zittert. Die Position des zu zeichnenden Pixel ermittle ich über eine Umweg über PosXY. Gibt es eine Möglichkeit, die direkt im Fragmentshader zu ermitteln ? Ich habe dies mal mit gl_FragCoord.xy probiert, aber dies ist wohl etwas anderes. Fragmentshader: Code:
Vertexshader: Code:
|
Autor: | Sascha Willems [ Di Dez 26, 2017 18:58 ] |
Betreff des Beitrags: | Re: Pixelpos im Fragmentshader ermitteln |
Aus der Beschreibung zwar etwas schwer zu erkennen, aber ich vermute du willst die Position des Fragments in Bildschirmkoordinaten? Wenn ja, dann ist gl_FragCoord der richtige Ansatz. |
Autor: | mathias [ Di Dez 26, 2017 19:39 ] | ||
Betreff des Beitrags: | Re: Pixelpos im Fragmentshader ermitteln | ||
Zitat: Wenn ja, dann ist gl_FragCoord schon der richtige Ansatz. Wen dies gehen würde, dann hätte ich doch einen Farbverlauf, oder täusche ich mich da ? Wieso ist die Mesh hellgelb ? Code:
|
Autor: | Sascha Willems [ Di Dez 26, 2017 19:47 ] |
Betreff des Beitrags: | Re: Pixelpos im Fragmentshader ermitteln |
Sry, gl_FragCoord enthält bereits die DC, d.h. für NDC musst du durch die Dimensionen des Viewports teilen. Dann bekommst du auch nen Farbverlauf. |
Autor: | mathias [ Di Dez 26, 2017 19:55 ] |
Betreff des Beitrags: | Re: Pixelpos im Fragmentshader ermitteln |
Code:
So habe ich den Farbverlauf. Ich wollte eigentlich den Bereich von -1.0 - 1.0, unabhängig der Auflösung, Somit komme ich nicht um PosXY herum, ausser ich übergebe bei onResize die Grösse mit einer Uniform-Variable. Was enthält gl_FragCoord.a und gl_FragCoord.z ? |
Autor: | Sascha Willems [ Di Dez 26, 2017 20:01 ] |
Betreff des Beitrags: | Re: Pixelpos im Fragmentshader ermitteln |
a = z (gl_FragDepth), z = 1/w |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |