diff --git a/Opis.html b/Opis.html index 9a59185..92f5307 100644 --- a/Opis.html +++ b/Opis.html @@ -1451,8 +1451,8 @@ footer.ty-footer { Opis
-

Trees in environment

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.

shadowStrength

Zwraca siłę cienia w zadanej pozycji

inVoxelSpace

Sprawdza, czy dane współrzędne się mieszczą w voxel space

positionInVoxel i positionInWorld

 

Zadanie 1

shadowBox

  1. Otwórz Unity Project, wersję na te ćwiczenia. Następnie otwórz scenę "Pipe Model"

  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ół.

    1. Wykorzystaj funkcję środowiska (Environment)
    2. public void addShadow(Vector3 position, sbyte strength) // ujemna siła, aby usunąć

Zadanie 2

inShadow

  1. W objekcie inShadow jest skrypt receiveShadow

  2. Zmodyfikuj skrypt - jak na ten objekt spadnie cień, to zmień materiał

    1. Wykorzystaj funkcję środowiska (Environment)
    2. public byte shadowStrength(Vector3 pos)

Zadanie 3

treeshadowtreeshadowgreentreeshadow

  1. Wybierz objekt tree (001)

  2. Jeśli nie jest ustawione, to ustaw odpowiednią ścieżkę (L-System Path) do ShadowModel.txt

  3. Uruchom grę i przejdź kilka kroków (Load File na start i Evaluate - krok)

  4. Gałęzie w cieniu nadal się rozwijają. Wylicz zacienienie do L-Systemu

    1. Skrypt TurtleLSystemEnvironment, funkcja lightDirection (20 linijka), od 38 linijki

    2. Zacienienie mierzymy w prostopadłościanie wokół obecnego elementu -(2*lookForLightLength x lookForLightLength x 2*lookForLightLength)

      treebox

    3. Transformacja z obecną pozycją (transformation*resultTransformation) -funkcja transformacja.ExtractPosition() zwraca pozycję dla transformacji

  5. Wyślij wartość zacienienia do L-Systemu

    1. L-System będzie odczytywał jako cień drugą wartość - dla S(a, c) to będzie c
    2. node.literal.values jest tablicą z wartościami L-Systemu

Zadanie 4

manytrees

  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.

+

Trees in environment

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.

shadowStrength

Zwraca siłę cienia w zadanej pozycji

inVoxelSpace

Sprawdza, czy dane współrzędne się mieszczą w voxel space

positionInVoxel i positionInWorld

 

Zadanie 1

shadowBox

  1. Otwórz Unity Project, wersję na te ćwiczenia. Następnie otwórz scenę "Pipe Model"

  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ół.

    1. Wykorzystaj funkcję środowiska (Environment)
    2. public void addShadow(Vector3 position, sbyte strength) // ujemna siła, aby usunąć

Zadanie 2

inShadow

  1. W objekcie inShadow jest skrypt receiveShadow

  2. Zmodyfikuj skrypt - jak na ten objekt spadnie cień, to zmień materiał

    1. Wykorzystaj funkcję środowiska (Environment)
    2. public byte shadowStrength(Vector3 pos)

Zadanie 3

treeshadowtreeshadowgreentreeshadow

  1. Wybierz objekt tree (001)

  2. Jeśli nie jest ustawione, to ustaw odpowiednią ścieżkę (L-System Path) do ShadowModel.txt

  3. Uruchom grę i przejdź kilka kroków (Load File na start i Evaluate - krok)

  4. Gałęzie w cieniu nadal się rozwijają. Wylicz zacienienie do L-Systemu

    1. Skrypt TurtleLSystemEnvironment, funkcja lightDirection (20 linijka), od 38 linijki

    2. Zacienienie mierzymy w prostopadłościanie wokół obecnego elementu +(2*lookForLightLength x lookForLightLength x 2*lookForLightLength)

      treebox

    3. Transformacja z obecną pozycją (transformation*resultTransformation) +funkcja transformacja.ExtractPosition() zwraca pozycję dla transformacji

  5. Wyślij wartość zacienienia do L-Systemu

    1. L-System będzie odczytywał jako cień drugą wartość - dla S(a, c) to będzie c
    2. node.literal.values jest tablicą z wartościami L-Systemu

Zadanie 4

manytrees

  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.

\ No newline at end of file diff --git a/Opis.md b/Opis.md index bf872a7..508dbe9 100644 --- a/Opis.md +++ b/Opis.md @@ -63,7 +63,7 @@ bool inVoxelSpace(int a, int b, int c) ## Zadanie 1 -shadowBox +shadowBox 1. Otwórz Unity Project, wersję na te ćwiczenia. Następnie otwórz scenę "Pipe Model" 2. Do objektu shadowBox jest przypięty skrypt Cast Shadow. Otwórz ten skrypt. @@ -73,7 +73,7 @@ bool inVoxelSpace(int a, int b, int c) ## Zadanie 2 -inShadow +inShadow 1. W objekcie inShadow jest skrypt receiveShadow 2. Zmodyfikuj skrypt - jak na ten objekt spadnie cień, to zmień materiał @@ -82,7 +82,7 @@ bool inVoxelSpace(int a, int b, int c) ## Zadanie 3 -treeshadowtreeshadowgreentreeshadow +treeshadowtreeshadowgreentreeshadow 1. Wybierz objekt tree (001) @@ -97,7 +97,7 @@ bool inVoxelSpace(int a, int b, int c) 2. Zacienienie mierzymy w prostopadłościanie wokół obecnego elementu (2\***lookForLightLength** x **lookForLightLength** x 2\***lookForLightLength**) - treebox + treebox 3. Transformacja z obecną pozycją (**transformation**\***resultTransformation**) funkcja transformacja.**ExtractPosition**() zwraca pozycję dla transformacji @@ -118,7 +118,7 @@ S(a,c) : c<50 -> G\(90)[-S(0,0)]S(0,0) ## Zadanie 4 -manytrees +manytrees 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ść diff --git a/images/Trees in environment/inShadow.gif b/images/treesinenvironment/inShadow.gif similarity index 100% rename from images/Trees in environment/inShadow.gif rename to images/treesinenvironment/inShadow.gif diff --git a/images/Trees in environment/manytrees.png b/images/treesinenvironment/manytrees.png similarity index 100% rename from images/Trees in environment/manytrees.png rename to images/treesinenvironment/manytrees.png diff --git a/images/Trees in environment/shadowBox.gif b/images/treesinenvironment/shadowBox.gif similarity index 100% rename from images/Trees in environment/shadowBox.gif rename to images/treesinenvironment/shadowBox.gif diff --git a/images/Trees in environment/treebox.png b/images/treesinenvironment/treebox.png similarity index 100% rename from images/Trees in environment/treebox.png rename to images/treesinenvironment/treebox.png diff --git a/images/Trees in environment/treeshadow.png b/images/treesinenvironment/treeshadow.png similarity index 100% rename from images/Trees in environment/treeshadow.png rename to images/treesinenvironment/treeshadow.png diff --git a/images/Trees in environment/treeshadowb.png b/images/treesinenvironment/treeshadowb.png similarity index 100% rename from images/Trees in environment/treeshadowb.png rename to images/treesinenvironment/treeshadowb.png diff --git a/images/Trees in environment/treeshadowgreen.png b/images/treesinenvironment/treeshadowgreen.png similarity index 100% rename from images/Trees in environment/treeshadowgreen.png rename to images/treesinenvironment/treeshadowgreen.png