From 69db38c34c8d6be6aa8ebeaf487864ed17fdd8aa Mon Sep 17 00:00:00 2001 From: duszekjk Date: Thu, 6 May 2021 01:57:35 +0200 Subject: [PATCH] cwiczenia 5 trees in environment --- Opis.html | 2 +- Opis.md | 2 -- Opis.pdf | Bin 714032 -> 712211 bytes 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/Opis.html b/Opis.html index 92f5307..8680e31 100644 --- a/Opis.html +++ b/Opis.html @@ -1453,6 +1453,6 @@ footer.ty-footer {

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.

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

    \ No newline at end of file diff --git a/Opis.md b/Opis.md index 508dbe9..c668d64 100644 --- a/Opis.md +++ b/Opis.md @@ -124,9 +124,7 @@ S(a,c) : c<50 -> G\(90)[-S(0,0)]S(0,0) 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 diff --git a/Opis.pdf b/Opis.pdf index 1cd9b326be0605792a126e0e3181873ca32dd0f0..ed644a2b81ac45e9fb7ec1e694c4d55a3d115df9 100644 GIT binary patch delta 14078 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