Home | Lehre | Videos | Texte | Vorträge | Software | Person | Impressum, Datenschutzerklärung | Blog RSS

Vorschläge für GCG-Projekte

Jörn Loviscach
Stand: 2002-06-10, letzte Änderungen rot

Objektkleber
Zielnote: 2
Wirkung: An drei ausgewählten Punkten eines Objekts wird ein anderes festgeklebt. Bei Drehungen, Verformungen etc. folgt das angeklebte Objekt sinngemäß. Zum Beispiel könnte man so Augenbrauen auf ein animiertes Gesicht kleben.
Umsetzung: Deformer-Plug-in für das angeklebte Objekt. Das Plug-in liest die Positionsdaten aus einem anderen, per Namen angegebenen Objekt aus. Die drei Punkte sind mit einem Selektions-Tag angegeben.
Oberfläche: Name des Objekts, an das man klebt; Name der Selektion.

Glättung und Schärfung
Zielnote: 1
Wirkung: Objekte glattbügeln oder aufrau(h)en
Umsetzung: Deformer-Plug-in. Durch die Nachbarschaft jedes Punkts wird eine quadratische Näherung gelegt. Der Punkt wird dorthin gezogen, wo er gemäß Näherung sein müsste -- oder zur Schärfung genau umgekehrt bewegt.
Oberfläche: Zahl der Nachbarpunkte, die zur Näherung betrachtet werden sollen; Prozentsatz, um den jeder Punkt gezogen werden soll (100 % = genau auf die Position laut Näherung); negativer Prozentsatz für Schärfung. Prozentsatz animierbar, um Objekte schmelzen lassen zu können.

OBJ Live-Import (in Arbeit)
Zielnote: 1
Wirkung: Objekte im OBJ-Format samt uv-Koordinaten aus externen Dateien in Szene setzen. Arbeitsweise wie in LightWave 3D: eine Objekt-Datei pro Darsteller; diese wird in x Szenen verwendet. Änderungen des einen Darstellers schlagen sich sofort in allen diesen Szenen nieder.
Umsetzung: Objekt-Plug-in.
Oberfläche: Wahl des Dateinamens, Optionen zur Aktualisierung (beim Laden, bei jedem Bildaufbau, alle x Stunden usw.)

Bootschaukeln
Zielnote: 4
Wirkung: Ein Objekt (Schiff?) wird so auf ein anderes Objekt (animiertes Meer?) fallen gelassen, dass das erste immer senkrecht auf der Oberfläche des anderen sitzt (Drehung!).
Umsetzung: COFFEE-Expression für das erste Objekt
Oberfläche: Eingabe des Namens des zweiten Objekts

Splitter
Zielnote: 3 bzw. 2
Wirkung: Polygone, die zu groß sind, unterteilen; vor allem nach Booleschen Operationen wichtig.
Umsetzung: Expression in COFFEE (Note 3) oder Deformer-Plug-in in C++ (2); Wird eine Kante eines Polygons unterteilt, die auch zu einem anderen Polygon gehört, wird auch das unterteilt.
Oberfläche: Eingabe der maximalen Abmessungen von Polygonen

Lochverschluss
Zielnote: 4 bzw. 3
Wirkung: Alle Löcher in einem Objekt finden und mit jeweils einem Polygon verschließen.
Umsetzung: Expression in COFFEE (Note 3) oder Deformer-Plug-in in C++ (2); suche Kanten, die nur in einem Polygon vorkommen, sammle daraus die Ränder von Löchern zusammen, baue daraus Polygone (am besten Dreiecke), welche die Löcher schließen.
Oberfläche: keine

Krümmungsshader
Zielnote: 4
Wirkung: Kanal-Shader in COFFEE, der markiert, wie stark ein Polygon-Objekt an der jeweiligen Stelle gekrümmt ist. Hilfreich zur Beurteilung der Oberflächenqualität (Spitzen, Falten).
Umsetzung: Wie weit weicht die Summe der Winkel an dieser Stelle von 360° ab?
Oberfläche: keine.

Effiziente Light-Map
Zielnote: 2
Wirkung: schnelle Simulation diffuser Reflexionen mittels weniger Parameter gemäß Ramamoorthi/Hanrahan
Umsetzung: Kanal-Shader in COFFEE; dazu ein Programm in C++ oder Java, das die benötigten Parameter aus Bilddateien berechnet
Oberfläche: Eingabe der Parameter, optional Datei mit Parametern einlesen

Wasser
Zielnote: 1
Wirkung: Wasser-Simulation mit Wellen und Spritzern
Umsetzung: Menü-Plug-in, das die Animation eines rechteckigen Polygongitters erzeugt sowie Metaballs erzeugt und animiert; untersucht namentlich angegebene Polygon-Objekte auf Kollisionen mit dem Wasser. Algorithmus: O'Brien/Hodgins
Oberfläche: Eingabe von Zeitschritt etc.; Eingabe der Namen der platschenden Objekte

Schnee
Zielnote: 4
Wirkung: Metaballs wie Schneeflocken auf Polygonobjekte fallen lassen
Umsetzung: Menü-Plug-in in COFFEE
Oberfläche: Eingabe von Anzahl und Radius der Metaballs

dreckige Mauer
Zielnote: 3
Wirkung: realistische (!) Ziegelwand nachbilden (Dreck, Moos, Grafiti).
Umsetzung: Volume-Shader in COFFEE
Oberfläche: diverse Parameter, die das Aussehen steuern

Kratzer
Zielnote: 3
Wirkung: Kratzer simulieren
Umsetzung: Kanal-Shader in COFFEE
Oberfläche: diverse Parameter, die das Aussehen steuern

Spine-Spline
Zielnote: 2
Wirkung: eine Figur (Wurm, Schwanz ...) mit Hilfe einer Spline-Kurve verformen, die quasi als Wirbelsäule wirkt.
Umsetzung: Deformer-Plug-in, das sich auf eine benannte Kurve bezieht
Oberfläche: Eingabe des Namens der Kurve

Subsurface Scattering
Zielnote: 1
Wirkung: die Lichtstreuung und -reflexion in halbtransparenten Medien wie Haut und Marmor nachbilden
Umsetzung: Volume-Shader in COFFEE
Oberfläche: Eingabe der Streuparameter

Herdensimulation (in Arbeit)
Zielnote: 3
Wirkung: Die (Polygon-)Unterobjekte eines Null-Objekts wandern durcheinander, ohne dabei zu kollidieren.
Umsetzung: Menü-Plug-in in COFFEE, das eine Animation erzeugt.
Oberfläche: Einstellungen für die Wanderbewegung

Haare
Zielnote: 1
Wirkung: Objekte erhalten senkrecht abstehende, gerade Haare
Umsetzung: Post-Effect, der die Haare von hinten nach vorne als Striche ins Bild zeichnet und die Teile ausspart, die hinter Objekten verdeckt sind (Tiefenkoordinate prüfen!); die Haare werfen keinen Schatten; Färbung gemäß Lichteinfall
Oberfläche: Farbe, Dicke, Dichte, Länge

Animation per Audio
Zielnote: 3
Wirkung: Ein Objekt (Unterkiefer?) wird gemäß der momentanen Lautstärke einer Audiodatei verschoben oder gedreht.
Umsetzung: Expression-Plug-in in COFFEE
Oberfläche: Eingabe des Namens der Audio-Datei

Verdickung (in Arbeit)
Zielnote: 2
Wirkung: Ein Polygon-Objekt in Richtung des lokalen Normalenvektors verdicken; einfachstes Beispiel: Ein plattes Rechteck wird zu einem Stück Karton; jedes Polygon des ursprünglichen Körpers wird zu zweien (Vorderseite, Rückseite), jedes Kantenstück an einem Rand wird zu einem Viereck.
Umsetzung: Deformer-Plug-in
Oberfläche: Einstellung für Tiefe

Intelligente Unterteilung
Zielnote: 2
Wirkung: Polygon-Objekte dort feiner unterteilen, wo sie besonders schroff sind; gut nach heftigem Displacement-Mapping
Umsetzung: Deformer-Plug-in
Oberfläche: Einstellung für Stärke der Wirkung

Regenbogen
Zielnote: 2
Wirkung: Nach dem eigentlichen Rendern wird ein Regenbogen in das Bild gerechnet, wie er entstehen würde, wenn
Umsetzung: Post-Effect-Plug-in, wenn eine angegebene Lichtquelle (Distant Light: Winkel verwenden, nicht Position!) die Sonne wäre. Der Regenbogen erscheint nur vor dem Hintergrund, nicht vor Objekte (d.h. Tiefenkoordinate prüfen).
Oberfläche: Einstellung von Breite, Stärke; Eingabe des Namens der Bezugs-Lichtquelle

Organische Schraffur
Zielnote: 1
Wirkung: Aus Koordinaten und/oder Normalenvektoren die Hauptkrümmungsrichtungen von Objekten feststellen und in diesen Richtungen gemäß Lichteinfall schraffieren
Umsetzung: Post-Effekt
Oberfläche: Stricheigenschaften einstellen

Schnittkurven
Zielnote: 4
Wirkung: Schnittlinien zweier Polygonkörper bestimmen und als Kurven in die Szene setzen, sodass man damit weiterkonstruieren kann
Umsetzung: Menü-Plug-in in COFFEE
Oberfläche: keine

Scatter
Zielnote: 3
Wirkung: Unterobjekte aus einem angegebenen Nullobjekt auf Eckpunkte eines anderen Objekts setzen; sie dabei so drehen, dass sie auf dessen Oberfläche zu liegen scheinen.
Umsetzung: Expression-Plug-in für das Nullobjekt, das die als Material zu verwendenden Objekte enthält
Oberfläche: Eingabe des Names des Objekts, auf dessen Oberfläche die anderen Objekte pla(t)ziert werden sollen

Abrunden
Zielnote: 2
Wirkung: Polygon-Objekte abrunden
Umsetzung: Deformer-Plug-in, das scharfe Kanten abfast (Bevel)
Oberfläche: Winkel zwischen Polygonen, ab dem die Wirkung einsetzt

Textur-Weichzeichner/Scharfzeichner (in Arbeit)
Zielnote: 2
Wirkung: Texturbilder weich- oder scharfzeichnen
Umsetzung: Kanal-Shader in C++; MIP-Mapping-Informationen auswerten!
Oberfläche: Stärke-Einstellung; Pfad zur Bilddatei; wünschenswert: Vorschau; 5x5-Matrix eingeben (animierbar); Voreinstellungen abrufen

Roboter (in Arbeit)
Zielnote: 2
Wirkung: Der Roboter bewegt sich pseudo-zufällig durch die Szene, dreht sich dabei immer in Bewegungsrichtung, weicht Hindernissen aus und versucht, einem benannten Objekt zu folgen.
Umsetzung: Menü-Plug-in in COFFEE, das eine Animation erzeugt
Oberfläche: diverse Parameter für die Bewegung; Name des zu verfolgenden Objekts

L-Systeme malen (in Arbeit)
Zielnote: 1
Wirkung: blattlose Bäume und Pflanzen aus der Retorte (Lindenmeyer-Systeme) in die Szene malen, vergleiche Maya
Umsetzung: Werkzeug-Plug-in in C++
Oberfläche: Längen- und Winkeleinstellungen; Ersetzungsregeln z.B. als Text

CA-Texturen (in Arbeit)
Zielnote: 1
Wirkung: nahtlose Texturen mit Hilfe zellulärer Automaten
Umsetzung: Kanalshader in C++; jedem Vertex (oder alternativ jedem Polygon) wird eine zufällige Farbe zugewiesen; dann mehrere Iterationen eines zellulären Automaten durchführen; Zustand nicht Pixel für Pixel neu berechnen, sondern pro Objekt zwischenspeichern
Oberfläche: Rechenregel des zellulären Automaten einstellen, z.B. Faktoren, mit denen die Farben von Nachbarn ersten Grades, zweiten und dritten Grades multipliziert werden

OpenGL-Vorschau
Zielnote: 1 bis 3, je nach Zahl der unterstützten Hardware-Features
Wirkung: Vorschau einer Animation in Echtzeit mit Unterstützung aktueller Hardware-Funktionen wie Shadow Maps, Vertex- und Pixel-Shader.
Umsetzung: Tool-Plug-in in C++, das ein eigenes Fenster öffnet

Automatischer Stretch und Squash (in Arbeit)
Zielnote: 2, bei perfekter cartoonartiger Abstimmung auf den Bewegungsablauf 1
Wirkung: Objekte verlängern sich mit zunehmender Geschwindigkeit in Flugrichtung, senkrecht dazu schrumpfen ihre Ausmaße; umgekehrt werden sie bei negativer Beschleunigung platt.
Umsetzung: Animations-Plug-in, das den aktuellen Geschwindigkeits- und Beschleunigungsvektor bestimmt, im Zeitablauf auswertet und benutzt, um ein Objekt zu skalieren.
Oberfläche: Intensitätseinstellung etc.