Praxis 4 Lichttransformation

Moderator: Graphische Datenverarbeitung 1

Benutzeravatar
m_stoica
Kernelcompilierer
Kernelcompilierer
Beiträge: 473
Registriert: 5. Dez 2008 20:19
Wohnort: Zuhause

Praxis 4 Lichttransformation

Beitrag von m_stoica » 15. Feb 2011 21:30

Hi,
weiß jemand wie ich die Koordinaten des Lichtes umrrechnen kann dass sie zu den Meshkoordinaten passen.
Der Raytracer arbeitet ja auf den Modell Koordinaten. Damit das klappt wird der Strahl transformiert.
Ich dachte das ich das Analog mit der Lichtquelle machen kann
nur, dass ich statt PR, ID, die Identität benutze:
gluUnProject(light_position[0],light_position[1], light_position[2], MV, ID, VP, &(light_position_vec.x), &(light_position_vec.y), &(light_position_vec.z));
Nur irgendwie finde ich, dass dan die Spekuläre beleuchtung im Ratracing zu stark von der Beleuchtung in der Rasterisierung abweicht:
phong_geauroud.png
phong_geauroud.png (42.28 KiB) 497 mal betrachtet
phong_geauroud2.png
phong_geauroud2.png (35.27 KiB) 492 mal betrachtet

thomas_kalbe
Nerd
Nerd
Beiträge: 570
Registriert: 10. Jun 2006 14:58

Re: Praxis 4 Lichttransformation

Beitrag von thomas_kalbe » 18. Feb 2011 16:36

Hallo,

das Problem ist, dass die meshes eigene Koordinatensysteme haben, da die Szene in etwa so aufgebaut wird:

setglobalprojection();
setglobalview();

pushMatrix()
rotate()
scale()
translate()
...
drawMesh(mesh1);
popMatrix();

pushMatrix();
rotate();
...
drawMesh(mesh2);
popMatrix();

Du hast die Wahl, die meshes entweder global zu transformieren (d.h. alle Vertices zu transformieren, keine Modelview-Transformationen vor drawMesh), oder Du must Dir Gedanken machen, wo Du wann in welchem Koordinatensystem bist und wie Du einen Vektor repräsentiert in Koordinantensystem A in's Koordinatensystem B transformierst ... wahrscheinlich müssen die Normalen auch noch transformiert werden.
Ist schon relativ komplex, aber mit einer Skizze in 2D kommst Du vielleicht weiter. Zugegeben, da hatte ich selbst nicht so intensiv drüber nachgedacht...
Vielleicht hat jemand eine gute Lösung? Ansonsten könnten wir das auch mal zusammen durchdiskutieren.

grüße,
thomas

Benutzeravatar
m_stoica
Kernelcompilierer
Kernelcompilierer
Beiträge: 473
Registriert: 5. Dez 2008 20:19
Wohnort: Zuhause

Re: Praxis 4 Lichttransformation

Beitrag von m_stoica » 18. Feb 2011 20:39

Danke. Ich habe das Problem mitlerweile glöst aber es war schon mit etwas Arbeit verbunden...
plane and REDsphere_small.jpg
plane and REDsphere_small.jpg (104.89 KiB) 417 mal betrachtet

Antworten

Zurück zu „Graphische Datenverarbeitung 1“