forked from andkok/MWS_2021
cwiczenia 5 trees in environment
This commit is contained in:
parent
69db38c34c
commit
b85d37858e
15
Opis.md
15
Opis.md
@ -8,7 +8,7 @@ Klasa environment zawiera voxel space z informacją o zacienieniu.
|
|||||||
|
|
||||||
### addShadow
|
### addShadow
|
||||||
|
|
||||||
Funkcja addShadow zwiększa wartość cienia w zadanej pozycji. Następnie przechodzi w pentlach w dół, zmniejszając z każdym poziomem siłę cienia, ale zwiększając szerokość oddziałowywania.
|
Funkcja addShadow implementuje metodę shadow propagation. Najpierw zwiększa wartość cienia w zadanej pozycji. Następnie przechodzi w pentlach w dół, zmniejszając z każdym poziomem siłę cienia, ale zwiększając szerokość oddziałowywania.
|
||||||
|
|
||||||
```C#
|
```C#
|
||||||
for(int j = (int)voxelPosition.y; j >= 0; j--)
|
for(int j = (int)voxelPosition.y; j >= 0; j--)
|
||||||
@ -69,14 +69,14 @@ bool inVoxelSpace(int a, int b, int c)
|
|||||||
2. Do objektu shadowBox jest przypięty skrypt Cast Shadow. Otwórz ten skrypt.
|
2. Do objektu shadowBox jest przypięty skrypt Cast Shadow. Otwórz ten skrypt.
|
||||||
3. Zmodyfikuj skrypt, tak aby ten obiekt rzucał cień w dół.
|
3. Zmodyfikuj skrypt, tak aby ten obiekt rzucał cień w dół.
|
||||||
1. Wykorzystaj funkcję środowiska (Environment)
|
1. Wykorzystaj funkcję środowiska (Environment)
|
||||||
2. public void addShadow(Vector3 position, sbyte strength) // ujemna siła, aby usunąć
|
2. public void addShadow(Vector3 position, sbyte strength) // ujemna siła, aby usunąć (Vector3 position to pozycja shadowBox)
|
||||||
|
|
||||||
## Zadanie 2
|
## Zadanie 2
|
||||||
|
|
||||||
<img src="images/treesinenvironment/inShadow.gif" alt="inShadow" style="zoom:50%;" />
|
<img src="images/treesinenvironment/inShadow.gif" alt="inShadow" style="zoom:50%;" />
|
||||||
|
|
||||||
1. W objekcie inShadow jest skrypt receiveShadow
|
1. W objekcie inShadow jest skrypt receiveShadow
|
||||||
2. Zmodyfikuj skrypt - jak na ten objekt spadnie cień, to zmień materiał
|
2. Zmodyfikuj skrypt - jak na ten objekt spadnie cień, to zmień materiał na **inShadow**, jak nie będzie w cieniu, to na **noShadow**
|
||||||
1. Wykorzystaj funkcję środowiska (Environment)
|
1. Wykorzystaj funkcję środowiska (Environment)
|
||||||
2. public byte shadowStrength(Vector3 pos)
|
2. public byte shadowStrength(Vector3 pos)
|
||||||
|
|
||||||
@ -121,13 +121,16 @@ S(a,c) : c<50 -> G\(90)[-S(0,0)]S(0,0)
|
|||||||
<img src="images/treesinenvironment/manytrees.png" alt="manytrees" style="zoom:50%;" />
|
<img src="images/treesinenvironment/manytrees.png" alt="manytrees" style="zoom:50%;" />
|
||||||
|
|
||||||
1. Dodaj do objektu Environment więcej drzew (Trees) i zobacz jak drzewa wpływają na siebie nawzajem
|
1. Dodaj do objektu Environment więcej drzew (Trees) i zobacz jak drzewa wpływają na siebie nawzajem
|
||||||
2. Napisz skrypt, który utworzy 9 drzew (3x3) rozmieszczonych co równą odległość
|
2. Napisz skrypt, który utworzy 9 drzew (3 wiersze i 3 kolumny) rozmieszczonych co równą odległość, przetestuj różne odległości
|
||||||
3. Zobacz jak się w takim układzie rozwijają
|
3. Zobacz jak się w takim układzie rozwijają
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Zadanie 5 - domowe
|
## Zadanie 5 - domowe
|
||||||
|
|
||||||
Wybierz zdjęcie dowolnego drzewa (każdy inne) i stwórz L-System podobny do tego drzewa, ale zależny od cienia
|
Zintegruj L-System pipe model z wcześniejszych ćwiczeń z obsługą cienia
|
||||||
|
|
||||||
|
Napisz L-System, który modeluje wybrany przez ciebie kształt drzewa. Kształt ma być twój indywidualny, ale możesz się wspomóc:
|
||||||
|
|
||||||
|
http://www.algorithmicbotany.org/papers/abop/abop.pdf
|
||||||
|
|
||||||
Do rozwiązania dodaj zdjęcie drzewa i zdjęcie odtworzonego drzewa. L-System nazwij imięnazwiskoShadow.
|
|
BIN
images/.DS_Store
vendored
BIN
images/.DS_Store
vendored
Binary file not shown.
Loading…
Reference in New Issue
Block a user