Autor Wątek:  [MOD] - Tutorial tworzenia LOD (Level Of Details)  (Przeczytany 29761 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline Rozi

  • Deweloper
  • Wiadomości: 1930
  • Są zdjęcia = są modele.
    • Zobacz profil
  • Otrzymane polubienia: 133
[MOD] - Tutorial tworzenia LOD (Level Of Details)
« dnia: 19 Stycznia 2010, 15:34:49 »
LOD - Level Of Details. W grafice komputerowej, jest to poziom szczegółowości modelu. Zakłada zmniejszenie złożoności obiektu 3D, w zależności od oddalania się obserwatora od modelu. Technika LOD pozwala zwiększyć efektywność renderowania obrazu poprzez zmniejszenie nakładu pracy karty graficznej.
Przykład stworzenia LOD wagonu (LOD może posiadać wszelki tabor, budynki, infrastruktura, itp.):

  • Tworzymy banana:


1. Tworzymy płaszczyznę (1 segment na długość i szerokość).
http://eu07.pl/userfiles/4234/foto-Tworzenie_banana.jpg

2. Edytujmy do editable poly.
3. Każdy z wierzchołków przesuwamy na środek scenerii (0, 0, 0).
4. Zmieniamy nazwę na "banan" (ja preferuję "baza").

  • Tworzymy uproszczone modele wagonu:


- Wózek:

1. Robimy płaszczyznę na szerokość i wysokość wózka.
http://eu07.pl/userfiles/4234/foto-Tworzenie_plane_wozka.jpg

2. Ustawiamy minimalnie przed modelem wózka.
http://eu07.pl/userfiles/4234/foto-Ustawienie_plane_wozka.jpg

3. Konwertujemy do editable poly.
4. Zaznaczamy opcję polygon.
5. Zaznaczamy płaszczyznę.
http://eu07.pl/userfiles/4234/foto-Edycja_plane_wozka.jpg

6. Z SHIFTEM obracamy o 180 stopni.
http://eu07.pl/userfiles/4234/foto-Obrot_plane_wozka.jpg

7. Klonujemy jako element.
http://eu07.pl/userfiles/4234/foto-Obrot_plane_wozka_2.jpg

8. Mapujemy plane.
http://eu07.pl/userfiles/4234/foto-Mapowanie_plane_wozka.jpg

9. Nakładamy materiał.
10. Konwertujemy do editable poly.
11. Zaznaczamy opcję polygon.
12. Zaznaczamy płaszczyzny.
13. Z SHIFTEM przenosimy na drugą stronę.
http://eu07.pl/userfiles/4234/foto-Skopiowanie_plane_wozka.jpg

14. Zaznaczamy wszystkie płaszczyzny i przenosimy na drugą stronę wagonu, dla drugiego wózka.
15. Zmieniamy nazwę na "LOD_wozka".

- Zderzaki:

1. Tworzymy boxa na szerokość i wysokość zderzaków.
2. Konwertujemy do editable poly.
3. Kasujemy tylną płaszczyznę boxa.
4. Zaznaczamy przednią płaszczyznę.
5. Wciskamy skalowanie.
6. Z SHIFTEM skalujemy na wielkość bufora.
http://eu07.pl/userfiles/4234/foto-Skalowanie_zderzaka.jpg

7. Teksturujemy.
8. Konwertujemy znowu do editable poly.
9. Zaznaczamy wszystkie płaszczyzny.
10. Z SHIFTEM przesuwamy tak, by zakryć każdy zderzak.
11. Zmieniamy nazwę na "LOD_zderakow".

- Bryła wagonu:

1. Tworzymy uproszczone modele dla bryły wagonu.
http://eu07.pl/userfiles/4234/foto-LOD_bryly_wagonu.jpg

2. Teksturujemy.
3. Uproszczone bryły powinny się znajdować w tym samym miejscu co szczegółowe.

- Końcówki:

1. Pobieramy końcowki.
Max (2009 wzwyż):
http://eu07.pl/userfiles/4234/priv-koncowki.zip
Zapisane w formacie .obj:
http://eu07.pl/userfiles/4234/priv-koncowki_obj.zip
2. Mergujemy (w przypadku formatu .max), bądź importujemy (w przypadku formatu .obj).
3. Ustawiamy w odpowiednim miejscu.

- Detale:

LOD można zrobić dla każdego elementu. Na przykład można zrobić ładne okrągłe barierki (z 8 segmentów), a w odległości już tylko z 3 segmentów.

  • Ustawienie odległości wyświetlania się LOD:


1. Klikamy prawym przyciskiem na wózek szczegółowy.
2. Wciskamy Object Properties.
http://eu07.pl/userfiles/4234/foto-Zakladka_object_properties.jpg

3. Wpisujemy:
MinDistance = 0
MaxDistance = 80
W tym wypadku szczegółowy model wózka będzie się wyświetlał w odległości od 0 do 80m.
4. Robimy to samo dla drugiego wózka szczegółowego.
5. Zaznaczamy LOD_wozkow.
6. Wpisujemy:
MinDistance = 80
MaxDistance = 800
Dzięki temu, gdy przy 80m zniknie model szczgolowy, pojawi sie model uproszczony i będzie wyświetlany aż do 800m
7. Zderzaki. Modelom szczegółowym:
MinDistance = 0
MaxDistance = 100
8. Modelom uproszczonym:
MinDistance = 100
MaxDistance = 280
9. Końcówkom w formacie max już są ustawione odległości. W przypadku importowania z formatu .obj.
- Dla "endtab2_on" i "endtab2_on":
MinDistance = 0
MaxDistance = 250

- Dla "endtab2_szcz" i "endtab1_szcz":
MinDistance = 0
MaxDistance = 50

- Dla "endtab2_lod" i "endtab1_lod":
MinDistance = 50
MaxDistance = 250

- Uproszczone bryły wagonu:

Każdy wagon ma inną charakterystykę budowy. Odległości należy dobrać eksperymentalnie, tak, by nie było widać przeskoku między modelami. W przypadku tego wagonu Uacs, model szczegółowy jest wyświetlany do 150m, pierwszy stopień uproszczenia 150-400m i drugi stopień uproszczenia 400-800m.

  • Podczepiamy wszystkie elementy pod bazę (banana).
http://eu07.pl/userfiles/4234/foto-Podczepienie_elementow_pod_banana.jpg

Przy eksporcie do .t3d wszystko konwertujemy do editable mesh.

  • Edycja "bananów":


1. Otwieramy wyeksportowany model .t3d.
2. Na samej górze znajduje się submodel baza.
3. Kasujemy to co zaznaczono na obrazku i wpisujemy 0.
http://eu07.pl/userfiles/4234/foto-Wykasowanie_wierzcholkow_bazy.jpg

4. To samo robimy dla "endtab2_on" oraz "endtab1_on".
http://eu07.pl/userfiles/4234/foto-Wykasowanie_wierzcholkow_banana_endtab.jpg
« Ostatnia zmiana: 28 Listopada 2016, 00:48:38 wysłana przez macius5991 »

Offline Patrykos

  • Zasłużony dla Symulatora
  • Wiadomości: 4512
    • Zobacz profil
  • Otrzymane polubienia: 9
Odp: Tutorial tworzenia LOD
« Odpowiedź #1 dnia: 19 Stycznia 2010, 16:57:49 »
A to nie lepiej zrobic banana z poziomu notatnika?
Pozdrawiam, Patryk
https://www.facebook.com/WarsztatPatrykosa
Węgrom gratulujemy Ikarusa.

Offline Rozi

  • Deweloper
  • Wiadomości: 1930
  • Są zdjęcia = są modele.
    • Zobacz profil
  • Otrzymane polubienia: 133
Odp: Tutorial tworzenia LOD
« Odpowiedź #2 dnia: 19 Stycznia 2010, 17:17:29 »
A to nie lepiej zrobic banana z poziomu notatnika?

Jak zrobisz banana w Maxie, to będziesz miał od razu hierarchię. A tak, to będziesz musiał hierarchię robić ręcznie.

Offline Rozi

  • Deweloper
  • Wiadomości: 1930
  • Są zdjęcia = są modele.
    • Zobacz profil
  • Otrzymane polubienia: 133
Odp: Tutorial tworzenia LOD
« Odpowiedź #3 dnia: 28 Lutego 2010, 18:13:33 »
Część druga.

Zauważyłem, że w większości (jeśli nie we wszystkich) modeli, wózki szczegółowe są wyświetlane w odległości od 0 - 150 metrów, a później jest LOD. Teraz biorąc po uwagę, że mamy 10 wagonów na jednym torze (długość do 150 metrów), to wyświetlane jest 20 wózków (licząc, że wagony są tylko na jednym torze). Teraz licząc, że taki niezbyt skomplikowany wózek 1XTa ma 3000 trójątów, to są wyświetlane 60.000 trójkątów. A co jeśli przejeżdżamy przez stację, gdzie wagonów jest więcej?

Wiele osób pytało się mnie, czemu moja tekstura wózka 1XTa ma dwie tekstury. Przez długi czas się zastanawiałem, jak zrobić LOD w taki sposób, by odległości znikania elementów były ekstremalnie niskie, a dodatkowo nie będzie widać różnic między przejściami szczegółów - LOD.

I oto wpadłem na ten oto sposób. Wcześniej tworząc model wózka, robiłem wyczyszczoną teksturę (jako spód wózka, by nie było resorów, naprężaczy i innych detali) i na dole oryginalne zdjęcie wózka jako LOD. Ta metoda nie była perfekcyjna, gdyż wózek renderowany minimalnie się różni od tego ze zdjęcia, więc elementy znikały dopiero od 80m. W moim najnowszym wózku (w wagonie Uacs) zastosowałem metodę, że LOD pojawia się już przy 25m (dzięki temu od odległości 25m wózek ma już tylko 24 trójkąty i nie zjada nam niepotrzebnie FPS) i nie widać różnicy między przejściem. Na czym polega ta metoda?

Metoda polega na zrobieniu LOD z wyrenderowanego modelu, a nie ze zdjęcia. Co należy zrobić? Jeżeli chcemy to wykonać w 3D Studio Max, aby móc mieć przezroczyste elementy, należy przygotować Opacity Masc (Maska przeźroczystości). Wrzucamy naszą teksturę do programu graficznego. Zaznaczamy kanał alpha. Kanał alpha zamalowujemy na czarno, natomiast wszystko bez kanału alpha zamalowujemy na biało. Zapisujemy to do pliku XXX_opacity.jpg (zał. 1). Mapa powinna wyglądać w ten sposób (zał. 2).

Otwieramy nasz model w 3D Studio Max. Otwieramy material editor (M). Zjeżdżamy suwakiem na sam dół na zakładkę (Maps). W polu opacity wybieramy naszą czarno-białą mapę (zał. 3). Zaznaczamy cały model i przypisujemy mu teksturę. Teraz nasz model w 3D Maxie posiada kanał alpha.

Ustawiamy na widok boczny i renderujemy nasz model (zał. 4). Tworzymy nową teksturę (lub dodajemy do starej) ten wyrenderowany model i wstawiamy w sposób opisany w pierwszym tutorialu. Dzięki temu, że nasz wózek wyrenderowaliśmy, wózek szczegółowy, oraz LOD są identyczne. Oto rezultat (zał. 5). Po lewej model szczegółowy, po prawej model LOD. W moim modelu ustawiłem znikanie szczegółowego wózka już przy 25m, a lod od 25 - 800m. Efekt jest taki, że od 25m, wyświetlane są tylko 24 trójkąty.

Tak można zrobić dla każdego elementu. Dla przykładu dla wagonów, ten cały spód wagonu (rury, nastawy hamulca, hamulec ręczny...) można zrobić screena wszystkim tym elementom, zrobić osobną teksturę, na przykład uacs_LOD.tga i tam wrzucać wszystkie tekstury LOD. Później tworzymy zwykłego plane i nakładamy teksturę. Ustawiamy Low- i Maxdistance jak najmożliwiej najmniejsze, tak, by tylko nie było widać różnicy między przejściami między szczegółem i LOD.
« Ostatnia zmiana: 28 Lutego 2010, 18:22:57 wysłana przez Rozi »

Offline Rozi

  • Deweloper
  • Wiadomości: 1930
  • Są zdjęcia = są modele.
    • Zobacz profil
  • Otrzymane polubienia: 133
Odp: Tutorial tworzenia LOD
« Odpowiedź #4 dnia: 21 Listopada 2013, 16:13:28 »
http://eu07.pl/forum/index.php?action=dlattach;topic=14390.0;attach=14962;image

W górnym okienku dajesz normalną teksturę, w dolnym okienku dajesz tę pomalowaną na biało i czarno.

Offline Sawi

  • Zasłużony dla Symulatora
  • Wiadomości: 9133
  • O.M.D - Electricity, O.M.D - Enola Gay. 01.09.2012
    • Zobacz profil
  • Otrzymane polubienia: 656
Odp: Tutorial tworzenia LOD
« Odpowiedź #5 dnia: 21 Listopada 2013, 16:20:54 »
Kamil mi chodzi o sam początek. Dokładnie o pierwszy załącznik. W jaki sposób zrobiłeś teksturę startową? Najpierw zamieniłeś tło w alfę i potem wkleiłeś warstwę z wózkiem, czy jak?
« Ostatnia zmiana: 21 Listopada 2013, 16:21:56 wysłana przez Sawi »
Życie jest bardzo kruche i w najmniej oczekiwanym momencie tracisz bliskich. Nie widzisz kogoś lata i nagle już tej osoby nie ma :(. Jedynie co tobie zostaje, to wspomnienia http://www.youtube.com/watch?v=Rk_sAHh9s08 "Co mnie nie zabije, to mnie wzmocni".

Offline Rozi

  • Deweloper
  • Wiadomości: 1930
  • Są zdjęcia = są modele.
    • Zobacz profil
  • Otrzymane polubienia: 133
Odp: Tutorial tworzenia LOD
« Odpowiedź #6 dnia: 21 Listopada 2013, 18:28:08 »
Nie rozumiem. Jeżeli robisz w .tga 32 bit, to masz już alphę i nic nie musisz robić. Jeżeli masz spłaszczony obrazek, to zaznaczasz różdżką ten kolor, który ma być alphą i wymazujesz magiczną gumką.

Offline Sawi

  • Zasłużony dla Symulatora
  • Wiadomości: 9133
  • O.M.D - Electricity, O.M.D - Enola Gay. 01.09.2012
    • Zobacz profil
  • Otrzymane polubienia: 656
Odp: Tutorial tworzenia LOD
« Odpowiedź #7 dnia: 29 Marca 2014, 12:44:40 »
Zastanawiam się tylko teraz nad tym, czy nadal jest konieczne tworzenie tej maski? Może dotyczyło to starszych wersji maxa? Rozumiem, że jak już mam zrobiony render wózka to z niego mapuje plane wózków? Potem dorzucam np kół i robię to samo? Na mój chłopski rozum to na tym polega, ale zapewne się mogę mylić.
« Ostatnia zmiana: 29 Marca 2014, 12:57:39 wysłana przez Sawi »
Życie jest bardzo kruche i w najmniej oczekiwanym momencie tracisz bliskich. Nie widzisz kogoś lata i nagle już tej osoby nie ma :(. Jedynie co tobie zostaje, to wspomnienia http://www.youtube.com/watch?v=Rk_sAHh9s08 "Co mnie nie zabije, to mnie wzmocni".

Offline Rozi

  • Deweloper
  • Wiadomości: 1930
  • Są zdjęcia = są modele.
    • Zobacz profil
  • Otrzymane polubienia: 133
Odp: Tutorial tworzenia LOD
« Odpowiedź #8 dnia: 29 Marca 2014, 13:08:35 »
Tylko z tego co widzę, to ty nie zrobiłeś renderu, tylko zrobiłeś screenschota jednego z widoków i wyciąłeś w Photoshopie, tak?

Offline Sawi

  • Zasłużony dla Symulatora
  • Wiadomości: 9133
  • O.M.D - Electricity, O.M.D - Enola Gay. 01.09.2012
    • Zobacz profil
  • Otrzymane polubienia: 656
Odp: Tutorial tworzenia LOD
« Odpowiedź #9 dnia: 29 Marca 2014, 13:11:48 »
Nie. Zrobiłem render wózka używając lewej strony zapisując go w tga i odptaszkowując opcje oprócz 32.
Życie jest bardzo kruche i w najmniej oczekiwanym momencie tracisz bliskich. Nie widzisz kogoś lata i nagle już tej osoby nie ma :(. Jedynie co tobie zostaje, to wspomnienia http://www.youtube.com/watch?v=Rk_sAHh9s08 "Co mnie nie zabije, to mnie wzmocni".

Offline Rozi

  • Deweloper
  • Wiadomości: 1930
  • Są zdjęcia = są modele.
    • Zobacz profil
  • Otrzymane polubienia: 133
Odp: Tutorial tworzenia LOD
« Odpowiedź #10 dnia: 29 Marca 2014, 13:20:30 »
To musiało się coś zmienić w nowszych wersjach. W Maxie 2009, trzeba było tworzyć maski.

Offline Sawi

  • Zasłużony dla Symulatora
  • Wiadomości: 9133
  • O.M.D - Electricity, O.M.D - Enola Gay. 01.09.2012
    • Zobacz profil
  • Otrzymane polubienia: 656
Odp: Tutorial tworzenia LOD
« Odpowiedź #11 dnia: 29 Marca 2014, 13:22:28 »
Ja mam wersje 2010. Dlatego pytam czy to jest nadal konieczne? Do czego taka maska konkretnie służy? Wydziela niejako obraz, czy jak?
Życie jest bardzo kruche i w najmniej oczekiwanym momencie tracisz bliskich. Nie widzisz kogoś lata i nagle już tej osoby nie ma :(. Jedynie co tobie zostaje, to wspomnienia http://www.youtube.com/watch?v=Rk_sAHh9s08 "Co mnie nie zabije, to mnie wzmocni".

Offline Rozi

  • Deweloper
  • Wiadomości: 1930
  • Są zdjęcia = są modele.
    • Zobacz profil
  • Otrzymane polubienia: 133
Odp: Tutorial tworzenia LOD
« Odpowiedź #12 dnia: 29 Marca 2014, 13:24:56 »
Max nie rozróżniał przeźroczystości na teksturze, dlatego trzeba było niejako wskazać mu poprzez maskę, gdzie się znajduje alpha. Skoro możesz renderować bez maski i alpha jest, to znaczy, że maska nie jest konieczna.

Offline Sawi

  • Zasłużony dla Symulatora
  • Wiadomości: 9133
  • O.M.D - Electricity, O.M.D - Enola Gay. 01.09.2012
    • Zobacz profil
  • Otrzymane polubienia: 656
Odp: Tutorial tworzenia LOD
« Odpowiedź #13 dnia: 29 Marca 2014, 13:30:06 »
Rozumiem. Czyli mogę śmiało z tego randera mapować tego plane wózka i stopniowo np dodać do niego kolejne? Powiedzmy kół?
Życie jest bardzo kruche i w najmniej oczekiwanym momencie tracisz bliskich. Nie widzisz kogoś lata i nagle już tej osoby nie ma :(. Jedynie co tobie zostaje, to wspomnienia http://www.youtube.com/watch?v=Rk_sAHh9s08 "Co mnie nie zabije, to mnie wzmocni".

Offline Rozi

  • Deweloper
  • Wiadomości: 1930
  • Są zdjęcia = są modele.
    • Zobacz profil
  • Otrzymane polubienia: 133
Odp: Tutorial tworzenia LOD
« Odpowiedź #14 dnia: 29 Marca 2014, 13:35:47 »
Maska była potrzebna tylko po to, by móc wyrenderować teksturę z alphą. Skoro działa Ci to bez maski, to oczywiście nie masz się czym martwić. Symek maski nie potrzebuje.

Offline Sawi

  • Zasłużony dla Symulatora
  • Wiadomości: 9133
  • O.M.D - Electricity, O.M.D - Enola Gay. 01.09.2012
    • Zobacz profil
  • Otrzymane polubienia: 656
Odp: Tutorial tworzenia LOD
« Odpowiedź #15 dnia: 29 Marca 2014, 13:41:42 »
No to elegancko. Czyli śmiało się mogę zbierać za robotę. Wielkie dzięki za wytłumaczenie.
Życie jest bardzo kruche i w najmniej oczekiwanym momencie tracisz bliskich. Nie widzisz kogoś lata i nagle już tej osoby nie ma :(. Jedynie co tobie zostaje, to wspomnienia http://www.youtube.com/watch?v=Rk_sAHh9s08 "Co mnie nie zabije, to mnie wzmocni".