Ãbungen zu den Lehrveranstaltungen 710.003 Computergrafik 1 ...
Ãbungen zu den Lehrveranstaltungen 710.003 Computergrafik 1 ...
Ãbungen zu den Lehrveranstaltungen 710.003 Computergrafik 1 ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Wichtige Metho<strong>den</strong><br />
• calculateImage: Zu fin<strong>den</strong> in der Datei „RayCaster.cpp“. Hier muss der Strahl für je<strong>den</strong><br />
einzelnen Pixel berechnet, abgeschossen und das Ausgabebild bei einem Treffer mit der Ergebnisfarbe<br />
geupdated wer<strong>den</strong>.<br />
• findIntersectionPoints: Muss in dem File „Triangle.cpp“ ergänzt wer<strong>den</strong>. In dieser<br />
Methode soll der angegebene Algorithmus umgesetzt wer<strong>den</strong>, wobei darauf <strong>zu</strong> achten ist, dass nur<br />
relevante Punkte (der Kamera nähere) in das Struct IntersectionInfo geschrieben wer<strong>den</strong>.<br />
Verwen<strong>den</strong> sie dafür die Instanzmethode updateIntersectionInfo.<br />
• shootRay: Zu fin<strong>den</strong> in der Datei „RayCaster.cpp“. Hier wer<strong>den</strong> bereits alle Objekte der Szene<br />
durchlaufen und auf Schnittpunkte überprüft. Zu ergänzen ist hier nichts.<br />
4.5 Q&A<br />
Q: Eine float3 kann ein Punkt und ein Vektor sein? Wie geht das?<br />
A: Alles, was nötig ist um einen Vektor <strong>zu</strong> beschreiben sind drei Richtungswerte. Ein Punkt ist nichts anderes,<br />
als der Vektor der vom Punkt (0, 0, 0) aus <strong>zu</strong>rückgelegt wer<strong>den</strong> muss um ihn <strong>zu</strong> erreichen.<br />
Q: Wie funktioniert die View Plane Transformation? Was bedeutet „durch <strong>den</strong> Mittelpunkt der Pixel“?<br />
A: Zeichnen Sie sich eine 3x3 View Plane auf Papier auf und markieren sie die Ecken so wie in Abbildung<br />
19. Be<strong>den</strong>ken Sie, dass die linke obere Ecke der View Plane (-1/aspect, 1) auch die linke obere Ecke des<br />
ersten Pixels (0, 0) darstellt. Markieren Sie nun die Mittelpunkte der Pixel und überlegen Sie sich, welche<br />
Anpassungen der Koordinaten nötig sind, um diese Mittelpunkte <strong>zu</strong> erreichen. Ein Hinweis: die Werte<br />
viewplane x und viewplane y können niemals <strong>den</strong> Wert der jeweiligen View Plane Ausdehnung haben, da<br />
diese ja <strong>den</strong> linken/oberen Rand des ersten bzw. rechten/unteren Rand des letzten Pixels anvisieren wür<strong>den</strong>.<br />
Q: Welche Tests sollen in welcher Reihenfolge gemacht wer<strong>den</strong>?<br />
A: Folgende Aufteilung wäre vom Ablauf her <strong>zu</strong> empfehlen:<br />
a) sphere.xml, colorspheres.xml: Testen das Aussen<strong>den</strong> der Strahlen mit bereits implementierten Kugeln.<br />
b) screen.xml, aspect.xml, depth.xml, cube.xml, tu.xml: Testen die Schnittpunktfunktion von Dreiecken.<br />
c) triforce.xml, die.xml, solar.xml: Testen die Anwendung von Kugeln und Dreiecken in Kombination.<br />
d) Alles übrige...: Eignet sich um Ihre Implementierung auf kleinere Schwächen <strong>zu</strong> prüfen.<br />
Q: Ist das <strong>den</strong>n alles schaffbar?<br />
A: Es wurde hier sehr detailliert auf die einzelnen Schritte eingegangen, um <strong>zu</strong> verdeutlichen warum die<br />
jeweiligen Berechnungen benötigt und die gegebenen Formeln verwendet wer<strong>den</strong>. Ein Renderingverfahren<br />
ist natürlich mit viel Verständnisarbeit verbun<strong>den</strong>, beginnen Sie also früh genug. Tatsächlich kommt die<br />
Referenzlösung aber mit 20 LOC (Lines of Code) aus.<br />
21