Aby zasymulować środowisko wykorzystamy voxel space. W środowisku będziemy rozpatrywać tylko jedną cechę - zacienienie.
## Klasa Environment
Klasa environment zawiera voxel space z informacją o zacienieniu.
### 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.
```C#
for(int j = (int)voxelPosition.y; j >= 0; j--)
{
for(int i = (int)voxelPosition.x-rotj; i <= (int)voxelPosition.x+rotj; i++)
{
for(int k = (int)voxelPosition.z-rotj; k <= (int)voxelPosition.z+rotj; k++)
<imgsrc="images/Trees in environment/treeshadow.png"alt="treeshadow"style="zoom:33%;"/><imgsrc="images/Trees in environment/treeshadowgreen.png"alt="treeshadowgreen"style="zoom:33%;"/><imgsrc="images/Trees in environment/treeshadow.png"alt="treeshadow"style="zoom:33%;"/>
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ść
3. Zobacz jak się w takim układzie rozwijają
## Inne sposoby modyfikacji drzewa, przez voxel Space
W Environment są jeszcze funkcje rotate towards light i cut branches with max shadow, które też mogą wykorzystać voxel space do modyfikacji drzewa w inny, nie L-Systemowy sposób (najpierw jest krok L-Systemu, a potem te funkcje modyfikują drzewo).
## 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
Do rozwiązania dodaj zdjęcie drzewa i zdjęcie odtworzonego drzewa. L-System nazwij imięnazwiskoShadow.