Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Sa Jul 19, 2025 12:36

Foren-Übersicht » Programmierung » Shader
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Shader - Vertex Position
BeitragVerfasst: Di Jan 24, 2012 19:42 
Offline
DGL Member

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 :?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Shader - Vertex Position
BeitragVerfasst: Di Jan 24, 2012 20:30 
Offline
Compliance Officer
Benutzeravatar

Registriert: So Aug 08, 2010 08:37
Beiträge: 460
Programmiersprache: C / C++ / Lua
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;

_________________
offizieller DGL Compliance Beauftragter
Never run a changing system! (oder so)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Shader - Vertex Position
BeitragVerfasst: Di Jan 24, 2012 21:32 
Offline
DGL Member

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!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Shader - Vertex Position
BeitragVerfasst: Di Jan 24, 2012 22:12 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
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;

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Shader - Vertex Position
BeitragVerfasst: Mi Jan 25, 2012 10:06 
Offline
DGL Member

Registriert: Di Aug 09, 2011 07:33
Beiträge: 163
Programmiersprache: C/C++
Das eine Matrixmultiplikation nicht kommunativ ist wusste ich sogar :P
Aber habe es jetzt verstanden, von daher danke!


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Foren-Übersicht » Programmierung » Shader


Wer ist online?

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.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.020s | 19 Queries | GZIP : On ]