Registriert: Di Aug 09, 2011 07:33 Beiträge: 163
Programmiersprache: C/C++
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
Registriert: Di Aug 09, 2011 07:33 Beiträge: 163
Programmiersprache: C/C++
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!
ch weiss nicht wie ich das exakt machen muss damit ich eben wie hier auf die (11, 1, 1) komme!
Code:
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:
Mitglieder in diesem Forum: 0 Mitglieder und 12 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.