diff --git a/Opis.html b/Opis.html index 8680e31..7740e71 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 +

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

      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ąć (Vector3 position to pozycja shadowBox)

      Zadanie 2

      inShadow

      1. W objekcie inShadow jest skrypt receiveShadow

      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)
        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ą

       

      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.

+funkcja transformacja.ExtractPosition() zwraca pozycję dla transformacji

  • 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 (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ą

     

    Zadanie 5 - domowe

    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

     

    \ No newline at end of file diff --git a/Opis.md b/Opis.md index c668d64..fc3508a 100644 --- a/Opis.md +++ b/Opis.md @@ -8,7 +8,7 @@ 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. +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# 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. 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ąć + 2. public void addShadow(Vector3 position, sbyte strength) // ujemna siła, aby usunąć (Vector3 position to pozycja shadowBox) ## Zadanie 2 inShadow 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) 2. public byte shadowStrength(Vector3 pos) @@ -121,13 +121,16 @@ S(a,c) : c<50 -> G\(90)[-S(0,0)]S(0,0) 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ść +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ą ## 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. \ No newline at end of file diff --git a/Opis.pdf b/Opis.pdf index ed644a2..723b599 100644 Binary files a/Opis.pdf and b/Opis.pdf differ diff --git a/images/.DS_Store b/images/.DS_Store index 29ee05a..a98752a 100644 Binary files a/images/.DS_Store and b/images/.DS_Store differ