Grafika2023/README.md

36 lines
2.8 KiB
Markdown

# Grafika2023
## Nazwa Projektu: Planet Creator
## Skład grupy: Dominik Piasecki, Dzianis Drobysh, Maryia Sauko
## Opis: Projekt "Planet Creator" to interaktywny edytor, który umożliwia użytkownikowi kontrolowanie roślinności na planecie. Głównym celem projektu jest zapewnienie narzędzi do projektowania i eksperymentowania z różnymi wzorami roślinnymi, które są generowane przy użyciu L-systemów. Użytkownik może wpływać na wygląd planety poprzez ustawienie parametrów wilgotności i temperatury.
## Techniki:
### L-systemy
(generowanie różnych wzorów roślin)
modele powstały za pomocą wstępnej generacji w programie Lpy (format .ply), dalej przetwarzania modeli w programie Blender (inicjalizacja uv-koordynat, podłączenie tekstur do odpowiednich trójkątów modelu i utworzenie plików .obj i .mtl).
pliki .mtl odczytywane są za pomocą odpowiedniej funkcji (wczytywanie parametrów modelu i przekazanie do shaderów).
### model PBR (realistyczne oświetlenie obiektów)
interpretowany z plików material (.mtl).
### Cube Map
tło sceny
### bloom
dodatkowe oświetlenie jasnych punktów
### instancing
rysowanie obiektów o takim samym meshu za pomocą jednego wywołania funkcji, co znacząco poprawia wydajność.
### interfejs użytkownika
umożliwia dodanie planiety i ustawienie jej parametrów przez użytkownika. powstał przy użyciu biblioteki IMGui
##Przykład działania:
W programie zadeklarowane zostały 12 różnych modeli (z uwzględnieniem etapów wzrostu) rośliny i ulubionych wartościach temperatury i wilgotności opisanych przez średnią i odchylenie standardowe.
Na potrzeby prostoty przykładu wszystkie parametry w przykładzie mają odchylenie standardowe równe 5 a każda roślina ma taką samą średnią temperatury i wilgotności. Prawdopodobieństwo wystąpienia danej rośliny zależy od wartości funkcji gęstości rozkładu Gaussa przyjmującej dwa argumenty.
Na kolejnych zrzutach ekranu widać 4 przypadki :
ulubione warunki każdej z roślin, warunki pośrednie, warunki nieakceptowalne przez żadną z roślin
![parametry](https://git.wmi.amu.edu.pl/s473559/Grafika2023/src/branch/master/PlanetCreator/cw%206/img/parametry.png)
![choinki](https://git.wmi.amu.edu.pl/s473559/Grafika2023/src/branch/master/PlanetCreator/cw%206/img/choinki.png)
![lisciaste](https://git.wmi.amu.edu.pl/s473559/Grafika2023/src/branch/master/PlanetCreator/cw%206/img/lisciaste.png)
![mieszane](https://git.wmi.amu.edu.pl/s473559/Grafika2023/src/branch/master/PlanetCreator/cw%206/img/mieszane.png)
![brak](https://git.wmi.amu.edu.pl/s473559/Grafika2023/src/branch/master/PlanetCreator/cw%206/img/nothing.bmp)
Zrzut ekrana z wieloma planetami (inna tekstura skyboxa):
![wiele_planet](https://git.wmi.amu.edu.pl/s473559/Grafika2023/src/branch/master/PlanetCreator/cw%206/img/wiele_planet.jpg)