Modelowanie geometryczne

Opis kursu:

Kurs składa się z 5-ciu bloków tematycznych, zawartych w 15 wykładach. Przedstawiony materiał zawiera zarówno aspekty teoretyczne jak i implementacyjne.

Cele i zarys tematyczny kursu:

Celem kursu jest prezentacja kilku najważniejszych koncepcji stosowanych w popularnych narzędziach modelujących typu 3D Studio Max, Maya, Blender oraz w produkcji gier komputerowych. Nie będzie o jednak w żadnym razie kurs takich narzędzi. Punktem ciężkości jest przyswojenie przez słuchacza teoretycznych podstaw konstrukcji algorytmów modelujących i następnie ich implementacja w jakimś efektywnym języku programowania. W efekcie słuchacz uzyska teoretyczne podstawy do konstrukcji i rozwijania oprogramowania modelującego, jak i nauczy się korzystać z kilku popularnych bibliotek typu CGAL i OpenMesh. W skrócie materiał kursu przedstawia się następująco:
  1. Modelowanie parametryczne – kilka rodzajów krzywych i powierzchni o wzrastających cechach jakościowych, kumulujących się w w powierzchniach NURBS. Operacje na krzywych i powierzchniach: podział i łączenie z żądanymi własnościami w punkcie łączenia, modyfikacja - zwiększenie szczegółów (podwyższanie stopnia) oraz upraszczanie kształtu (redukcja stopnia), \ obcięcie przez okno/bryłę widzenia z zachowaniem typu obiektu, rzutowanie przez kamerę 3D (równoległą, perspektywiczną), reparametryzacja (naturalna w zastosowaniach animacyjnych)
  2. Modelowanie siatkowe – różne efektywne struktury danych dla siatek wielokątów, konstrukcja siatek z chmury punktów (w szczególności metody triangulacji), algorytmy wygładzania siatek (z kumulantą w koncepcjach opartych na operatorze Laplace’a-Beltramiego), metody deformacji siatek, metody naprawy uszkodzonych powierzchni, metody redukcji i zagęszczania siatek, metody deformacji siatek.
  3. Modelowanie typu subdivision – efektywne techniki modelowania szeroko stosowane w większości produkcji filmowych wytwórni Disney i DreamWorks Animation. Łączą one precyzję modeli parametrycznych z efektywnością modeli siatkowych. Podstawowe schematy subdivison: Doo-Sabin, Catmull-Clark, non uniform, Loop, Butterfly, √3, Honeycomb, Convexity Preserving Interpolatory, 4-8 Meshes.
  4. Modelownie niejawne (implicit surfaces) – techniki wykorzystywane przede wszystkim w modelowaniu zjawisk fizycznych (np. ogólnie rozumiany fluid simulation) jak również w konstruowaniu powierzchni o nietrywialnej definicji i topologii. Powierzchnie są reprezentowane jako warstwice funkcji na dziedzinie 3D. Podstawowe typy reprezentacji: analityczna, oparta o funkcje bazowe oraz oparta na próbkowaniu na siatce regularnej.
  5. Modelowanie proceduralne – dotyczy ono przede wszystkim modelowania „zjawisk” przyrodniczych: rzeźba terenu, modelowanie chmur, płynów itp. Jedną z ważniejszych koncepcji jest tutaj ogólnie rozumiane modelowanie fraktalne, a także modelowanie hierarchiczne oparte na bazach falkowych (wavelets). W kursie zostaną pokazane co najmniej fraktalne metody generowania terenu oraz falkowe metody hierarchicznej reprezentacji brył.

Wymagania:

swoboda w programowaniu obiektowym, algebra liniowa, analiza matematyczna

Literatura:

Wykłady zasadniczej części oparte są na następujących książkach:
  1. M. Bosh et all., Polygon Mesh Processing, AK Peters 2010.
  2. J. Bloomenthal, Introduction to Implicit Surfaces (The Morgan Kaufmann Series in Computer Graphics, 1997.
  3. T. Cashman, NURBS-compatible subdivision surfaces (Distinguished Dissertation), Rainbow Research Group at the Cambridge Computer Laboratory 2010.
  4. D. Rogers, An Introduction to NURBS: With Historical Perspective (The Morgan Kaufmann Series in Computer Graphics),
  5. G. Farnin, Curves and Surfaces for CAGD, Fifth Edition: A Practical Guide (The Morgan Kaufmann Series in Computer Graphics), 2002.
  6. M. Bill, Texturing and Modeling (The Morgan Kaufmann Series in Computer Graphics), 2002.
  7. P. Kiciak, Podstawy modelowania krzywych i powierzchni (WNT), 2019.