DGL
https://delphigl.com/forum/

Shader - Vertex Position
https://delphigl.com/forum/viewtopic.php?f=20&t=10273
Seite 1 von 1

Autor:  AMD [ Di Jan 24, 2012 19:42 ]
Betreff des Beitrags:  Shader - Vertex Position

Hey,

Habe zurzeit ein kleines Problem bei meinem Shader.
So wie ich das sehe, bekommt man bei gl_Vertex die "normalen" Vertex Daten, allerdings werden z.B. Dinge wie glTranslatef nicht berücksichtigt. Wie löse ich das?
Dachte erst gl_Vertex * gl_ModelViewMatrix (oder auch paar andere Additionen) aber letztendlich kam da nur Müll bei raus :?

Autor:  end [ Di Jan 24, 2012 20:30 ]
Betreff des Beitrags:  Re: Shader - Vertex Position

nimmts du nur die Modelviewmatrix oder auch die Projektionsmatrix:

das: (richtig)
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
oder:(falsch)
gl_Position = gl_ModelView * gl_Vertex;

Autor:  AMD [ Di Jan 24, 2012 21:32 ]
Betreff des Beitrags:  Re: Shader - Vertex Position

Ich glaube wir verstehen uns nicht?!

Sagen wir mal ich habe eine Kugel auf der Position (1, 1, 1) und mache aber noch glTranslate(10, 0, 0).
Dann ist ja die Position letztendlich auch eben (11, 1, 1). Die gl_Vertex Daten sind aber eben nur die (1, 1, 1) und ich weiss nicht wie ich das exakt machen muss damit ich eben wie hier auf die (11, 1, 1) komme!

Autor:  Coolcat [ Di Jan 24, 2012 22:12 ]
Betreff des Beitrags:  Re: Shader - Vertex Position

Zitat:
ch weiss nicht wie ich das exakt machen muss damit ich eben wie hier auf die (11, 1, 1) komme!

Code:
  1. vec4 myPosition = gl_ModelViewMatrix * gl_Vertex;


Matrixmultiplikation ist nicht kommutativ, d.h. gl_Vertex * gl_ModelViewMatrix gibt ein anderes (falsches) Ergebnis. Das wurde dir hier wohl zum Verhängnis. ;)

Mit hoher Wahrscheinlichkeit möchtest du aber das eben auch die Projektion berücksichtigt wird. Also das was du üblicherweise mit glOrtho oder gluPerspective setzt. Der Fragmentshader braucht dafür das hier:
Code:
  1. gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;

Autor:  AMD [ Mi Jan 25, 2012 10:06 ]
Betreff des Beitrags:  Re: Shader - Vertex Position

Das eine Matrixmultiplikation nicht kommunativ ist wusste ich sogar :P
Aber habe es jetzt verstanden, von daher danke!

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