Sztuczna inteligencja w grafice komputerowej

Print Friendly

Inteligencja

Zagadnienie sztucznej inteligencji jest dla grafiki komputerowej na tyle ważne, że od 1994, najpierw co 2 lata, a od 2002 co rok, odbywa się europejska konferencja: „3IA International Conference on Computer Graphics and Artificial Intelligence”
Przykładowe tematy:

  • techniki sztucznej inteligencji w modelowaniu sceny,
  • techniki deklaratywne w modelowaniu sceny,
  • techniki sztucznej inteligencji w renderingu,
  • animacja behawioralna,
  • inteligentna wizualizacja.

Przykłady możliwego wykorzystania sztucznej inteligencji w grafice komputerowej

1. Inteligentna organizacja sceny i inteligentne ustawienie punktu widzenia kamery na scenie.
Jest to bardzo złożone zagadnienie malarsko-reżyserskie wymagające niegdyś geniuszu malarskiego (problem perspektywy), a teraz wymagające od scenografa talentu i doświadczenia. Nawet w przypadku genialnych reżyserów problem ten prowadzi do wielokrotnego powtarzania procesu nagrywania danej sceny, spowodowanego brakami na scenie  lub złą lokalizacją kamery.

2. Autokorekta obiektu podczas jego edycji.

Aby uniknąć późniejszych kłopotów z renderowaniem i sytuacji typu paradoksy, należy wskazać i poprawić błędy obiektów. Należy jednak zadać sobie pytanie, co jest błędem, a co celowym działaniem. Ulepszając obraz, często świadomie wprowadzamy błędy logiczne i paradoksy, aby pobudzić umysł i wyobraźnię widza.

Escher – Wchodzący i schodzący

Dla ciekawych
Figura niemożliwa to rysunek na płaszczyźnie, sprawiający wrażenie trójwymiarowości, którego interpretacja przestrzenna jest niemożliwa, czyli nie da się skonstruować jej trójwymiarowego odpowiednika. Jednym z najbardziej znanych twórców takich figur był M. C. Escher.

Autokorekta obiektu wymaga jednak zmiany na poziomie struktur danych opisujących obiekt. Aktualnie są to powierzchnie prostokreślne lub bazujące na NURBS. Kandydatami na struktury danych opisujące obiekty są gramatyki kształtu (shape grammars) lub systemy takie jak inżynierski rysunek techniczny, gdzie np. błędy w wymiarowaniu części mechanicznej są natychmiast widoczne. System opisu obiektu musi być taki, aby nad nim dało się nadbudować system wnioskujący, szukający sprzeczności w obiekcie.

3. Przewidywanie następnego kroku programisty celem przyspieszenia jego pracy (wykrywanie regularności sceny).

Przykład przewidywania następnego kroku w programie Softimage:

1. Zrób walec centralnej osi schodów i pierwszy stopień. Ustaw go do właściwej pozycji.
2. Camera -> Visibility Options -> Transforms -> Objects Pivot ON.
3. Transform -> Modify Object Pivot.
4. Włącz transformacje i z włączonym Alt przesuń pivot do <0,0,0>.
5. Skopiuj stopień (Ctrl+D) i obróć go o 15 stopni oraz przesuń po Y o 2.
6. Powtórz Ctrl+D parę razy obserwując, jak system powtarza czynność. Niestety pojawia się dryfowanie kolejnych elementów.
7. Aby to usunąć, wycofaj czynności przy pomocy Ctrl+Z tak, aby pozostał tylko drugi stopień schodów.
8. Edit -> Duplicate/Instantiate Options -> Transform -> wyzeruj niechciane wartości Translation, X, Z.
9. Powtórz teraz Ctrl+D.

4. Sztuczna inteligencja pojedynczego animowanego obiektu.

System syntezy ruchów w oparciu o zadany punkt docelowy i ścieżkę stara się zbudować położenia kluczowe postaci. Następnie, w oparciu o ograniczenia typu kolizja i ograniczenia fizyczne, próbuje wygenerować położenia pośrednie.

System syntezy ruchów pojedynczego obiektu

Stosowana jest strategia A* dobrze znana w sztucznej inteligencji. Działanie algorytmu:

Algorytm A* od wierzchołka początkowego tworzy ścieżkę, za każdym razem wybierając wierzchołek x z dostępnych w danym kroku niezbadanych wierzchołków tak, by minimalizować funkcję f(x) zdefiniowaną:
f(x) = g(x) + h(x)
gdzie: g(x) – droga pomiędzy wierzchołkiem początkowym a x.
Dokładniej: suma wag krawędzi, które należą już do ścieżki plus waga krawędzi łączącej aktualny węzeł z x.
h(x) – przewidywana przez heurystykę droga od x do wierzchołka docelowego.
W każdym kroku algorytm dołącza do ścieżki wierzchołek o najniższym współczynniku f. Kończy w momencie natrafienia na wierzchołek docelowy. Algorytm ten pozwala na uwzględnienie kosztu np. energetycznego ruchu, jego złożoności, a także pozwala na przewidywanie dalszego ruchu. Pojawia się jednak problem optymalności rozwiązania, ponieważ cel danego ruchu możemy zrealizować na kilka różnych sposobów, np. idąc lub biegnąc, sięgać będąc blisko lub daleko.

Problem optymalności

Podsumowanie

Sztuczna inteligencja w Nowoczesnej Grafice Komputerowej może być wykorzystywana w bardzo wielu różnych miejscach i jej znaczenie będzie szybko rosło dzięki wzrostowi mocy obliczeniowej komputerów i rozwojowi technologii wielordzeniowych procesorów.

Wpisz interesujące Cię frazy, aby wyszukać ich na stronie.