• Keine Ergebnisse gefunden

Aufgabe1(BSP-Trees, 12+8Punkte ) Abgabeam05.01.2011 ¨UbungenzuComputergraphikI-Blatt7

N/A
N/A
Protected

Academic year: 2021

Aktie "Aufgabe1(BSP-Trees, 12+8Punkte ) Abgabeam05.01.2011 ¨UbungenzuComputergraphikI-Blatt7"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Prof. G. Zachmann R. Weller

TU Clausthal Institut f¨ur Informatik

7. Dezember 2010

Wintersemester 2010/2011

Ubungen zu Computergraphik I - Blatt 7 ¨

Abgabe am 05. 01. 2011

Aufgabe 1 (BSP-Trees, 12+8 Punkte)

In dieser Aufgabe soll eine Szene mit (semi-)transparenten Objekten korrekt dargestellt werden.

Hierf¨ur m¨ussen die Objekte bzgl. Augkoordinaten von hinten nach vorne gerendert werden.

Laden Sie das Projektbsp_frameworkvon der Vorlesungs-Homepage herunter. ¨Uber den Men¨uein- tragFiles→Open Model k¨onnen Sie Szenen im Wavefront Obj-Format laden. Einige Beispielszenen stehen im Unterverzeichnis ./models zur Verf¨ugung. Der Obj-Loader kann Szenen aus Vier- und Dreiecken laden, und konvertiert diese in Dreiecke. F¨ur jedes Dreieck sind in der Instanzvariable m_trianglesdie Indices seiner drei Eckpunkte (Vertices) gespeichert. Die dazugeh¨origen Vertexko- ordinaten stehen in der Instanzvariablenm_vertices.

a) In der Klasse Mesh wird eine Szenen in oben genannter Form gespeichert. Bauen Sie aus der Menge von Dreiecken einen BSP-Tree auf. Um zu enscheiden, auf welcher Seite der Splitplane ein Dreieck ist, testen Sie der Einfachheit halber einen beliebigen der drei Eckpunkte des Dreiecks, d.h. Splitting ist in dieser Teilaufgabe nicht gefordert.

Implementieren Sie hierzu die bereits vorhandene, aber noch leere, RoutinegenerateBSP(). Ver- wenden Sie die vordefinierte KlasseMesh::BspNode. Die Wurzel des BSP-Baumes soll der Variable m_bspRoot_splitsDisabledzugewiesen werden. Die Traversierung inklusive Rendering des BSP- Baumes sind bereits implementiert. Sie k¨onnen also sofort das Ergebnis Ihrer Implementierung betrachten. Vergessen Sie nicht, den entsprechenden Radiobutton oben zu aktivieren.

b) Erweitern Sie ihre Methode dahingehend, dass Dreiecke, die die Splitplane schneiden, korrekt unterteilt und die resultierenden Teildreiecke zu dem passenden Kindknoten hinzugef¨ugt werden.

Weisen Sie die Wurzel des resultierenden BSP-Baumes der Variablenm_bspRoot_splitsEnabled zu. Um zu entscheiden, ob ein Vertex in der Ebene ist oder nicht, m¨ussen Sie Fliesskommawer- te korrekt vergleichen, d.h. |a−b|< ε. Verwenden Sie hierzu die vordefinierte Instanzvariable Mesh::m_EPS.

Tip: Die folgenden Funktionen der STL-Klassenstd::list und std::vectork¨onnen f¨ur Ihre Im- plementierung hilfreich sein:

• Um auf Elemente sequentiell zuzugreifen, gibt es die sogenannten “Iteratoren” (eine Art intel- ligenter Pointer), die wie folgt verwendet werden k¨onnen:

for( std::list<int>::iterator it = liste1.begin(); it != liste.end(); ++it ) {

int akuelle_elem = *cit;

}

1

(2)

• begin()gibt einen Iterator auf das erste Element einer Liste bzw. eines Vectors zur¨uck,

• end()das letzte Element, undsize()die Anzahl der Elementen.

• Ein neues Element kann mitpush_back()hinzugef¨ugt werden, z.B.

std::vector<Triangle> dreiecksliste;

dreiecksliste.push_back( Triangle( index0, index1, index2 ) );

2

Referenzen

ÄHNLICHE DOKUMENTE

a) Wie hoch kann ein BSP-Tree, der aus 7 disjunkten (d.h. nicht schneidenden oder ber¨ uhrenden) nicht collinearen Linien aufgebaut wird, minimal/maximal sein. Geben Sie je ein

Um jede Kugel soll nun eine weitere Kugel (im Folgenden Mond genannt) mit gleichem Durchmesser in einer Kreisbahn mit festem Radius r i und relativer Geschwindigkeit v T i

Zwei Monomideal sind gleich gdw sie dieselben Monome enthalten... B UCHBERGER besitzt doppelt

Der Algorithmus muss terminieren, da in Schritt 3 der Absolutbetrag des Minimums der Restmatrix verringert wird.. Zahlentheorie - V10 - 07.05.2012 Darstellung,

Anmerkung: Die Spur ist additiv, die Norm multiplikativ... Eigenschaften von Norm

Hier sind die λ i die Lagrange-Multiplikatoren (manchmal auch Lagrangeparameter genannt). Mit Hilfe des Hinweises l¨ asst sich die.. Vorlesung 13 letztes Semester, Theo Fa)

Die gr¨ oßte Teil der Strahlung, die das Schwarze Loch w¨ ahrend seiner Lebensdauer emittiert, wird in der Anfangszeit emittiert. In welchem Teil des elektromagnetischen Spektrums

 Historische Zustände können sich jenen internen Zustand in einem komplexen Zustand merken, von dem die letzte Transition (vor einer Unterbrechung) ausgegangen ist.  Zu