Autor Wątek: Solitudo [FPP - horror]  (Przeczytany 19652 razy)

Offline Estivo

  • Użytkownik
    • Blog

# Styczeń 26, 2013, 15:25:16
Hmm... Wang Tiles? :)

Dzielisz teren na 16 kwadratów które można płynnie łączyć na bardzo wiele sposobów. Efekt DejaVu i ogólnego zamotania gwarantowany ("hej, ja już tutaj byłem, ale zeszłym razem obok nie było tej góry"). :)

I bez tego jest taki efekt, bo nie ma punktów charakterystycznych ;)

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Kos

  • Użytkownik
    • kos.gd

  • +4
# Styczeń 26, 2013, 15:59:05
@up Pewnie, że są. Widziałbyś, gdybyś był harcerzem :).

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Styczeń 26, 2013, 17:43:18
@up Pewnie, że są. Widziałbyś, gdybyś był harcerzem :).
Mała dygresja: zamieszczenie na drzewach pomagających znaków jak w podchodach było by ciekawym featurem. :)

Offline Vipa

  • Redaktor

# Styczeń 26, 2013, 20:23:41
No tak, ale drzewa obracają się do kamery. Ponad to widać krzyże jak na dłoni, nie wiem czy drogi dodatkowo oznaczać.

Choć teraz jak odpaliłem to wieje pustką. Przydało by się jakieś zróżnicowanie, co niestety trudnym jest bo modeli nie chcę wkładać. Chyba, że bym drzewa zmieniał, a na to się nie zanosi. Pomimo wielu prób nie potrafię zrobić realistycznie wyglądającego drzewa w sensownej ilości poly. Nawet w tree[d] ;).

Tymczasem nowa wersja. Tym razem około 70 mega, bez okrajania grafiki.

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Styczeń 26, 2013, 20:31:21
Cytuj
Pomimo wielu prób nie potrafię zrobić realistycznie wyglądającego drzewa w sensownej ilości poly. Nawet w tree[d] ;).
Poszukaj na TurboSquidzie. Jest parę fajnych darmowych (nawet z LOD).

Offline Vipa

  • Redaktor

# Styczeń 26, 2013, 21:31:17
Szukałem. Albo są takiej jakości, że dziękuję postoję, albo są w takiej ilości tris, że chyba jednak usiądę :).
Mus czekać, aż zima się skończy ;).

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Styczeń 26, 2013, 21:48:02
Cytuj
Albo są takiej jakości, że dziękuję postoję, albo są w takiej ilości tris, że chyba jednak usiądę :).
A te: http://www.turbosquid.com/3d-models/free-obj-mode-tree-pack/506851

Masz tutaj najniższy LOD w granicach 400-1000 poly. Nie widzę sensu schodzić niżej.

Offline Vipa

  • Redaktor

  • +1
# Styczeń 27, 2013, 13:14:43
A widzisz, tu pojawia się problem. Te drzewa nie są realistyczne. Pod tym względem jestem wybredny, bo o ile te drzewka super nadawały by się do gry fantasy, to już do czegoś co ma symulować realizm ni diabełka.
Po pierwsze są rozłożyste, co sugeruje że rosną samotnie a nie w kupie, więc do lasu się nie nadają, a po drugie liście są za duże.
Same modele są fajne, ale do konkretnie tej gry nie nadają kompletnie. Tu właśnie tkwi parę szczegółów różniących nasze jako graczy odczucia grafiki gry pomiędzy "dobre", a "coś nie gra".

Dobre drzewa można zrobić w 1000 tris. Ale sztuką jest zrobić je w 200 tris. Ponadto co zdjęcie to zdjęcie, dla mnie o wiele bardzie realnie wyglądają drzewa tego typu (choć za jedno ujęcie w iks zamordowałbym, trudno zrobić 2 zdjęcia tego samego drzewa?):


Absolutnie podobają mi się drzewa w tym modzie do Mount & Blade:
http://www.max3d.pl/forum/showthread.php?t=79567
Z resztą cały temat opisany przez twórce warty jest przeczytania. Jeżeli ktoś nie zna, warto się zapoznać.

Offline Kuba D.

  • Użytkownik

# Styczeń 27, 2013, 13:44:33
Vipa, o ile z tego linka z M&B drzewka naprawdę wyglądają syto to screen co zapodałeś, wybacz, ale drzewka w nim to tragedia. 1 wiersz - ujdzie od biedy tylko drugi badyl, drugi wiersz - 3cie, może pierwsze, 3ci wiersz - pierwsze drzewko. Reszta jest fatalna.
Poza tym, jeśli tak o tris chodzi - można wyrenderować kilka drzewek po kilka-k tris do tekstury ( i jako bilboard wyświetlać) i po problemie - skalowanie ujemne w osi x co jakiś czas i drzewka jak ta lala.

Offline Vipa

  • Redaktor

# Styczeń 27, 2013, 14:00:17
Ok, na szybkiego wpiąłem modele z linka Krzyśka. Widać wyraźnie o co mi chodzi. Drzewko jako drzewko ok, ale nie ma nic wspólnego z realizmem.

Kuba: tu chodziło przykład wykorzystania zdjęć. Wygląda to tak, bo ktoś zrobił iksa z jednego zdjęcia. W dostępnej wersji gry właśnie są billboardy wszędzie. W tym przypadku nie ma sensu renderować, wystarczy fotkę cyknąć i poświęcić 5 minut w Gimpie czy czymś podobnym.

Modele zostawiam w grze, potem jak będę miał chwilę to podrasuję tekstury i poprawię geometrię. Fps mi spadł do 20, masakra :).

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

  • +1
# Styczeń 27, 2013, 16:43:09
Cytuj
Dobre drzewa można zrobić w 1000 tris. Ale sztuką jest zrobić je w 200 tris.
Drzewka 200 tris to chyba tylko po to, by je ze 100m oglądać.

Cytuj
Ponadto co zdjęcie to zdjęcie, dla mnie o wiele bardzie realnie wyglądają drzewa tego typu (choć za jedno ujęcie w iks zamordowałbym, trudno zrobić 2 zdjęcia tego samego drzewa?):
Za drzewka "w iks" wyśmiewano gry już w 2000 roku. Co dopiero 2013. ;) Ale na daleki LOD w sumie to fajny pomysł - dzięki za podsunięcie. :)

Cytuj
Ok, na szybkiego wpiąłem modele z linka Krzyśka. Widać wyraźnie o co mi chodzi. Drzewko jako drzewko ok, ale nie ma nic wspólnego z realizmem.
Chcesz pogadać o realizmie - usuń ducha i postprocess. W przeciwnym razie - na drzewo (pun intended). ;)

A sam screen wygląda z tymi drzewkami naprawdę przepysznie. :) Skyrim się chowa. :)



EDIT: Przy okazji pochwal się Vipa może jak konkretnie teren zrobiłeś. Bo mam w tej chwili nielichy dylemat z tym samym u siebie (konkretnie chodzi o teksturowanie).

Offline Vipa

  • Redaktor

  • +1
# Styczeń 27, 2013, 17:43:15
Jeżeli ktoś wyśmiewa iksy, to w pierwszym rzędzie niech śmiech skieruje do Microsoftu za Flight. Są po prostu gry, w których sprawdza się to lepiej. Ponad to nawet niektóre teraźniejsze produkcje mają drzewka jak z sadu owocowego a trawę w lesie jak na polu golfowym. Dla mnie TO wygląda śmiesznie ;).

Co do terenu to heightmapa. Na to narzucona tekstura z Google Maps na całość. Żeby to nie wyglądało jak rozmyta kasza, to stworzyłem pomocniczą teksturę, na której kolorem zaznaczyłem jakie jej miejsca mają mieć wmiksowaną detail mapę oraz jakie miejsca mają być podmienione na zupełnie inną teksturę (np. piasek plaży, skały, trawa pod drzewami itp). Globalna tekstura jest potrzebna tylko w sumie po to, żeby teren z daleka nie wyglądał zbyt jednolicie.
Tak więc nic skomplikowanego w sumie. Mi tak jest najwygodniej, bo tylko podrzucam pozycje vertexów do vbo i mogę resztę sobie opisać w shaderze. Oczywiście warto by było wtedy zoptymalizować geometrię, bo cała reszta jest od niej niezależna. Geomipmapping czy inne pochodne mile widziane.

Bardzo łatwo mi wtedy kolorować trawę i drzewa. Podrzucam tę globalną teksturę terenu do shadera trawy, odczytuję kolor per pixel i miksuję z kolorem tekstury trawy. Wszystko wtedy bardzo ładnie pasuje i trawa nie wygląda jak "wycięta" tylko ślicznie wyrasta z tekstury terenu. Oczywiście lekki gradient alphy od spodu i jest już w ogóle super. W horrorku też tak są kolorowane drzewa. Wyliczam też oczywiście oświetlenie z normal mapy dla tej tekstury. Całość widać w sumie w samych shaderach, bardzo prosto są napisane.

Z tymi drzewami w iks jako najdalszy lod, to zależy ile ich masz. Jeżeli ja w symulatorze lotu mam 200K drzew, to nawet dodatkowy trójkąt czy quad na iks już stanowi problem. A każde drzewo rysowane jest kilka razy, bo raysy, woda itd. Ale w zasadzie to chyba najlepszy pomysł. Zrobić 2 screenshoty niższego lod, ustawić w iks i nie obracać już do kamery tylko użyć oryginalnego kąta drzewa. Przejścia wtedy teoretycznie są mega płynne, choć trudno trafić idealnie, bo w mipmapach możesz mieć przesunięcie o pixel w lewo lub prawo. Ja u siebie stosuję taki manewr, że robię w shaderze discard po coraz większej alphie. Czyli np. jeżeli mam przejście drzewa z lod2 do lod3 to rysuję lod2 z discardem na alphie X i w tym samym miejscu lod3 z discardem na alphie 1.0-X. Tu już nie ma bata, żadnego przeskoku nie uświadczysz.

Offline jjoker8

  • Użytkownik

# Styczeń 27, 2013, 19:19:08
dobry patent z tym kanałem alfa na spodzie, muszę tak zrobić, w ogóle te chaszcze to świetnie u Ciebie wyglądają

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Styczeń 27, 2013, 19:27:56
Cytuj
oraz jakie miejsca mają być podmienione na zupełnie inną teksturę (np. piasek plaży, skały, trawa pod drzewami itp)
A jak określasz/wybierasz na którą z nich konkretnie? No i pewnie nie robisz tego w jednym passie.

Offline Vipa

  • Redaktor

  • +1
# Styczeń 27, 2013, 22:17:26
Może niezbyt szczegółowo się wypisałem, tworzę osobną teksturę, gdzie kolorem zaznaczam co ma być czym. Z czego tak naprawdę robię to za każdym razem inaczej, zależy ile mam tych tekstur do rozmieszczenia. Z reguły szkoda mi RGBA więc parę trików:
- piasek (plaża) - można uzależnić od Y geometrii. + jakiś cosinus z XZ by patrząc z poziomu morza nie wyglądało to na płaską w Y linię.
- skały - tu można rozmieścić po normalach z normalmapy. Kwestia dopasowania, wystarczy spojrzeć na normalmapę i widać czy po R czy po R * 1.0-G rozmieszczać. W zasadzie zależy to mocno od heightmapy.
- tereny pod lasem - tu warto dodać jakąś ściółkę. Wartość można przekazywać przez geometrię terenu, wystarczy dodawać np. 1000 do Y, czy tam jakąś inną, mocno uzależnioną od reszty parametrów, metodą.
- drogi - tu nie ma zmiłuj. Trzeba osobną teksturę. Wychodzi to strasznie, bo jeżeli nakładamy jedną tex dróg nawet 4096 na cały teren, to będzie pixelowato. Dlatego stosujemy to tylko tam, gdzie gradient pomiędzy drogą a resztą tekstur terenu może być spory. Można oczywiście kombinować z maksowaniem danego koloru w shaderze (np. określony kolor * 10.0), ale w najlepszym wypadku uzyskamy zaokrąglenie linii po pixelach. Nigdy nie będzie to linia prosta. Na ulicach, gdzie potrzebne są wyraźne krawędzie, trzeba już jechać z dodatkowa geometrią. Ale polne drogi, których krawędzie łatwo ukryć, można w ten sposób oszukać i sporo zaoszczędzić.

Jeszcze z tricków tego typu, to z tekstury normalnych + mapa teksturowania, i można wyliczać gdzie na terenie mają być drzewa, trawa, jak gęsto itd. Nie trzeba wtedy ręcznie rozmieszczać drzewek i trawy, tylko wyliczyć te dane i potem ewentualnie pousuwać zbędne pixele już ręcznie, co trwa zdecydowanie szybciej.

Qrde, trudno to opisać w kilku słowach bez screenów, dlatego jakby ktoś miał pytania to śmiało pytać o detale. Całość nie jest trudna, tylko po prostu nie mam daru przekazywania wiedzy :).

jjoker8: bo nawaliłem różnego typu zielska. Trawa w lesie to nie pole golfowe, gdzie jeden typ porasta wszystko. Są jakieś wyższe zielska przy drzewach, trochę chwastów itd. Im bardziej różnorodnie tym lepiej. Może mało to widać, ale w horrorku masz powtarzalność niskiej zieleniny, Tak naprawdę losowość jest tylko na jednym polu i potem powtarzana, tilowana jak tekstura. Dlatego np. wyższy krzaczek może trafić się w stałych odległościach co 2 metry w X i Z ;).
« Ostatnia zmiana: Styczeń 27, 2013, 22:23:35 wysłana przez Vipa »