Skocz do zawartości

[Pytanie]game enviroment zasady


carrido

Rekomendowane odpowiedzi

Witam,

Mam ogromny dylemat , chcę stworzyć swioje portfolio z 3ech środowisk 3d ale jeszcze nie pracowałem w żadnym studiu i nie wiem jakimi

Zasadami mam się kierować przy tworzeniu dema.Znam procedure Level of details, normal mapy , displacement maps itd. Mogę właściwie siąść

i to robić ale wiem, że przy tworzeniu gier to wszystko ma swoje "restrykcje" i ograniczenia o których

nie słyszałem w żadnych tutorialach. Czy jest tu ktoś z branży , kto mi podpowie jak zrobić środowisko 3d

"jadalne" np. przez PlayStation3?? Jakieś takie 10 przykazań bożych podczas pracy jako enviroment artist

,będę bardzo wdzięczny.pozdrawiam wszystkich twórców.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 17
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

to nie religia, tutaj nie ma przykazan :P to wszystko zalezy co cie kreci, gry na telefony maja swoje wymagania a gry na pc swoje. Poogladaj sobie modele, popatrz jak duzo trisow maja inne modele, zastanow sie co chcesz zrobic i rob. Ma wygladac ladnie, spojnie, i z jak najmniejsza iloscia poly. Model moze miec 300 tri i miec zmarnowane 200 tri, a moze miec 30K i nie zmarnowanego ani jednego :P rob, pracuj, cwicz, ogladaj i pokazuj tutaj a napewno dostaniesz szybko odpowiedz czy obiekt ma za duzo albo za malo tri :)

Odnośnik do komentarza
Udostępnij na innych stronach

Sciagnij sobie jakis darmowy edytor - UDK, Cryengine, Unity ew. Source. Poogladaj testowe sceny i modele, tekstury, materialy itp.. Z samego grzebania duzo sie dowiesz. Sprobuj wtedy zrobic cos podobnego, mozesz zaczac z gotowych assetow. Potem cos dodawaj od siebie.

Generalnie nie ma jakis rozroznien, np. ze pod Playstation modelujesz inaczej, to juz bardziej specyfika silnika co lepiej sie optymalizuje.

Kilka rad mozna dac:

 

- rob jak najwydajniejsze modele przy najlepszej jakosci

to co wplywa na wydajnosc na poziomie pojedynczego modelu to:

- ilosc wierzcholkow

- ilosc i rozmiar tekstur

- ilosci i skomplikowanie materialow

 

- geometrie dawaj tylko tam gdzie poprawia ona sywletke modelu, badz oswietlenie. Reszta niech idzie na normalmape

 

- na poziomie sceny dochodzi dodatkowo wiele innych ograniczen, ale one sa juz specyficzne dla konkretnego silnika.

Przykladowo UDK sam dba o culling (zeby sie obiekty niewidoczne nie rendereowaly niepotrzebnie), w innych silnikach musisz sam o to dbac.

 

-unikaj jesli mozesz alphy, bo mozesz miec problemy z sortowaniem. To nadal zmora wielu silnikow.

 

To tak na szybko,a tutorioli jest sporo, wejdz na portale moderskie, czy chocby polycount.

Odnośnik do komentarza
Udostępnij na innych stronach

Wszystko to co napisali koledzy wyżej, plus od siebie dorzuciłbym takie cuś:

 

- jeżeli to możliwe to użycie jednej tekstury lub jej fragmentów dla wielu modeli (np. budynki, korytarze itp.)

- tworzenie LOD'ow w przypadku np. drzew ostatni poziom to pojedynczy prostokąt ale nic nie stoi na przeszkodzie żeby pierwszy poziom miał np. 10k trójkątów albo i więcej trójkątów. Dużo zależy od rodzaju gry, od tego czy enviro to główny element czy tylko element tła towarzyszący i "mało" istotny.

- jeżeli chodzi Ci o przykładowe liczby to mój komputer który najnowszą maszyną nie jest nie ma problemu z wyświetleniem 1-5mln trójkątów. Co do tekstur to w jednym momencie mogę maksymalnie używać mniej więcej 24000x24000 teksli oczywiście jest to sumaryczna wartość robienie tekstury o rozmiarze powyżej 2048x2048 najczęściej nie ma sensu a tekstury o rozmiarach powyżej 8000x8000 najczęściej nie są obsługiwane przez karty graficzne.

 

EDIT: Najważniejsze przykazanie to GameArt to nie fotorealistyczny Render i stosowanie modyfikatora meshsmooth/turbosmooth w modelach jest w 90% surowo zakazane :)

Odnośnik do komentarza
Udostępnij na innych stronach

Hej,dzieki za odpowiedź, zastanowił mnie ten tekst o "zmarnowanych" polygonach tudzież trójkątach czy miałeś na myśli

Tę część modelu, która nie będzie w grze widzialna? np.tył posążka czy coś takiego?

Odnośnik do komentarza
Udostępnij na innych stronach

Druga rzecz, opacity maps są oparte na kanale alpha (czarno białe) , czy nie wydaje się wam że raczej trudno było by ich

nie urzywać np. w drzewach czy ivys ,mam na myśli, że jest to nawet niezbędne dla twórców??

Odnośnik do komentarza
Udostępnij na innych stronach

Opacity - nie chodzi o nieuzywanie, ale uzywanie rozsadne. Mozesz pracowac w silniku co radzi sobie dobrze, a potem przyjdzie Ci przerzucic sie na inny i bedziesz cierpial jak nabierzesz zlych nawykow ;)

 

Podales dobry przyklad. Drzewa i bluszcz.

Na drzewach jest to konieczne, ale w przypadku bluszczu czesto da sie zrobic material typu solid, w ktorym sciana blenduje sie za pomoca maski z liscmi. Oczywiscie bluszcz wystajacy bylby dodatkowo na alphie.

 

Sorting alphy to zreszta temat na osobna dyskusje.

 

Jeszcze odniose sie do limitow, ktore podal JacekCichy. To sa dosc wysokie liczby.

W normalnej, pelnej grze duzo rzeczy spowalnia: postaci, animacje, dynamiczne swiatla, skomplikowane shadery, cienie, efekty i particle, logika gry, muzyka, doczytywanie z dysku, UI, tryb sieciowy. Czasem gra musi dzialac w 60 fps-ach, czasem dorzuca sie split-screen. I czesto z tych kilku milionow trisow wydajnosci starcza na kilkaset tysiecy.

 

Oczywiscie robiac dla siebie, pod portfolio az tak sie tym nie przejmujesz, ale gdzies tam trzeba miec w pamieci, ze sa platformy majace spore ograniczenia: zarowno nowe komorki jak i x360 i ps3 i biedne wii. I ze czasem uzywanie tekstur 1024 jest juz luksusem ;)

Odnośnik do komentarza
Udostępnij na innych stronach

Dzięki za wyczerpurajcą odpowiedź Plutko.

Mój pierwszy enviroment to będzie kawałek terenu przedmieścia czyli skromne ulice biedne budynki i odrapane murki ciągnace akcje do szpitala psychiatrycznego.Wszystkie obiekty wiadomo wrzucę w colision cube także o to się nie martwię ale ulice i teren cały robię za pomocą tileable moduls (tak samo jak tworzymy budyki "niby bogatej konstrukcji"), żeby poukładać to sobie niczym klocki lego i modyfikowac w dowolne kształty (pewnie tak jak to jest w edytorze jako domyślnie).Pytanko: Czy te moje wszystkie kostki powiedzmy 12 inch X 12 inch będą w UDK itp. akceptowane jako ciągły mesh czy trzeba je w Maya zmergować albo nie wiem czy to jest dobry pomysł ??:-/ a może postać będzie mi wpadała między te kostki ...??

drugie: Jak zrobie to za pomoca tileable moduls to będzie to wyglądało dość monotonnie- czy decals mam oddzielnie wkładać w udk czy razem wszystko da się może z majki eksportować razem z decals do udk?

Odnośnik do komentarza
Udostępnij na innych stronach

[ATTACH=CONFIG]86152[/ATTACH]

 

To jest szybki przykładzik (nawet bez normal mapy prawie goły)widzimy tutaj wykonany dosłownie w 5 minut kawałek ulicy, który ma podłóżny kształt a tak naprawdę to tileable mesh poukładany szybko wzdłuż z dodaną specular map jedynie. Bardzo bardzo wydajny model pracy zajmujący dosłownie chwile, 10 polygonów i to chyba najwyższy jaki potrzebny bo level aby ulica nie była kompletnie płaska.

Odnośnik do komentarza
Udostępnij na innych stronach

UDK jest stoworzony do modularnych obiektow.

Kazdy z klockow bedzie mial swoja kolizje (tworzona automatycznie albo przez Ciebie), wiec nie musisz, nawet nie powinienes mergowac w mayce.

 

Powtarzalnosci unikasz na kilka sposobow:

- kilka lekko rozniacych sie modularnych obiektow

- rozstawiasz inne obiekty na powierzchni (studzienki, kupy gruzu, brudu, kosze, samochody itp.)

- oswieteleniem

- decale - UDK ma bardzo fajny system decali w sobie

- zaawansowane materialy, tu jest duzo mozliwosci

np. cos takiego:

albo cos z 2 roznymi koordyantami mapowania (drugi jako world)

Odnośnik do komentarza
Udostępnij na innych stronach

Ja powiem tyle tyle. Content tworzy sie do silnika a nie silnik do contentu. Wiec jesli zależnie do tego czego używasz powienienś wykorzystać ficzery do maximum (4 kanały UV w Unrealu - mozna uzywac do decali na przykład, shader editor), albo Decale w Ce3 (ustawiane w czasie modelowania), albo vertex blending.

Odnośnik do komentarza
Udostępnij na innych stronach

UDK jest stoworzony do modularnych obiektow.

Kazdy z klockow bedzie mial swoja kolizje (tworzona automatycznie albo przez Ciebie), wiec nie musisz, nawet nie powinienes mergowac w mayce.

Wszystko zależy od silnika - jeśli UDK rozpozna to jako osobne obiekty to jeśli mu wygodniej w Mayce to może w Maya, a jeśli UDK zaimportuje wszystko jako jeden obiekt to jest wręcz zbrodnia używać Maya do tego (UDK będzie widział jako jeden wielki obiekt scenę, więc zawsze będzie rysować wszystko na scenie, a nie tylko to co przejdzie testy widoczności i przecięcia z bryłą widoku). Czyli jak zwykle wszystko zależy od silnika i sposobu korzystania z danych i to wymusza pewne limity i zachowania.

 

- jeżeli chodzi Ci o przykładowe liczby to mój komputer który najnowszą maszyną nie jest nie ma problemu z wyświetleniem 1-5mln trójkątów. Co do tekstur to w jednym momencie mogę maksymalnie używać mniej więcej 24000x24000 teksli oczywiście jest to sumaryczna wartość robienie tekstury o rozmiarze powyżej 2048x2048 najczęściej nie ma sensu a tekstury o rozmiarach powyżej 8000x8000 najczęściej nie są obsługiwane przez karty graficzne.

 

EDIT: Najważniejsze przykazanie to GameArt to nie fotorealistyczny Render i stosowanie modyfikatora meshsmooth/turbosmooth w modelach jest w 90% surowo zakazane :)

Karty graficzne nie mają problemów nawet z 50 milionów trójkątów (mobilne w tabletach i smartfonach potrafią 1M Poly wyświetlać przy 30FPS), ale problem jest z gospodarowaniem czasem klatki - sztywne ograniczenie, którego klatka nie powinna przekraczać to 33ms (około 30FPS) i jeśli damy na przetwarzanie wierzchołków 20ms to musimy oszczędzać czas na efektach (HDR/SSAO/DoF/AA/shadowmapping/...), a im więcej efektów tym mniej powinno być trójkątów, dlatego mimo, że karty są coraz mocniejsze, dalej powinno się ograniczyć max do 1M poly renderowanej sceny... właśnie renderowanej sceny, bo jeśli silnik wycina dobrze niewidoczną siatkę to scena może mieć i 50M poly (jeśli jej na raz nie widać w viewporcie i renderowane faktycznie jest ~1M poly). OFC jest jeszcze dodatkowa sprawa czyli teselacja (czyli model najwyższego LOD może mieć nawet 100M poly, a w grze będzie on dynamicznie zagęszczany jeśli się zbliżysz na niższym LOD jako displace mapa). Sprawa jeszcze bardziej komplikuje się kiedy wchodzi w grę mobilna rozgrywka jak smartfony. Ogólnie nie można podać jednej z góry ustalonej granicy, bo wszystko zależy od wielu czynników czyli sprzętu minimalnego, silnika, a nawet dane jego wykorzystanie i ustawienia - dziś model z zbrusha może być pokazany w portfolio jako gameart, bo przy teselacji tak będzie wyglądał w grze (o ile się dostatecznie do niego zbliżysz, ale też model jak z przed 10 lat może być najwyższym poziomem szczegółowości siatki, jeśli targetem jest telefon).

 

24000x24000 Texeli? WOW! Licząc nawet bez ALPHA, to RGB będzie zajmować 1 728 000 000 bajtów (ponad 1.6GB pamięci na karcie), co jest stanowczo za dużą liczbą... nawet stosując kompresje stratną na GPU.

 

Co do tekstur ponad 16384x16384 obsługują 3x ostatnie serie kart (AMD od HD5000 i Nvidia od GTX400), 8192x8192 to z tego co pamiętam AMD od HD2k i Nvidia GTX8k od Intel HD Graphics (te najnowsze w prockach SandyBridge i IvyBridge - starsze nie), więc jeśli celujemy w starsze urządzenia to max jest 4k lub nawet 2k (AMD 9k czy X700/X600, niektóre integry Intela (popularne jeszcze niedawno przykładowo w netbookach ale i laptopach) czy niektóre mobilne procki (Nvidia nie obsługująca 4k to GeForce 2 o którym już nikt nie pamięta, ale i GeForce 4 MX)). Ogólnie nie można dawać rad na temat limitów, jeśli nie mamy... limitów czyli minimalnego sprzętu i w jakim silniku.

Odnośnik do komentarza
Udostępnij na innych stronach

Mój błąd :) ta ilość texli którą podałem była dla jednego kanału(CSM). Czyli dla trzech wychodzi ok. 8000x8000 maks. Co do tego że GTX400 w górę obsługuje maksymalnie 16384^2 odnosiłbym się z mocną rezerwą bo mam karte GTX460 i powyżej rozmiarów 12k karta działała bardzo niestabilnie ;)

Odnośnik do komentarza
Udostępnij na innych stronach

A ja dokładam małe pytanko odnośnie samych polygonów.

Otóż mója mała parka prywatnych mentorów, wpajała mi cały czas "siatka ma zawsze być zajebista", co stało się głównym hasłem na obudowie monitora, ale nvm.

 

Idąc za ciosem pada pytanie: Co robić z trójkątami i gniazdami* (za gniazdo rozumiem skupisko 5ciu [i więcej] edgy w jednym vercie)? Czy wszystko zawsze i wszędzie trzeba quadowoać, skoro i tak nie będę używać ts/ms? Dlaczego nie powinienem zostawiać tri, skoro i tak silnik sobie wszystko przetrójkątuje?

 

Ponadto capowanie cylindra w sposób quadowania na paski daje zawsze o jednego fejsa mniej i unika się gniazda, które ma miejsce przy capowaniu popularną metodą usuwania co drugiego edga w standardowym capie z trójkątów i zrobienia z tego quadów (pozniżej bardzo szybki, paintowy schemat >warunki polowe

 

eRI05.png

 

Generalnie wolę używać metody na paski, ale chcąc zrobić dajmy na to jakiś szpic, to już "gniazda" się nie uniknie.

 

*spotkałem się również z nazwą "pentagon" ;d

Odnośnik do komentarza
Udostępnij na innych stronach

Według mnie to jeżeli nie robisz ms/ts i jest to płaskie to nie ma kompletnie znaczenia czy zrobisz to tak czy siak czy w ogóle z samych trójkątów. Karta owszem przerabia wszystko na trójkąty, co więcej jeżeli robi się jakiś babol (złe cieniowanie) to też niekoniecznie oznacza że musisz wszystko przerobić na quady czasem wystarczy włączyć "retriangulation" i ustawić inaczej trójkąt na sąsiednim quadzie a sam trójkąt zostawić. Zasada używania samych quadów tyczy się przypadku w którym używa się modyfikatora ms/ts ale nie zawsze bo np. w organice czy w tkaninach zastosowanie trójkątów nieraz poprawia efekt. Pytanie zatem dlaczego jeżeli karta i tak to widzi jako trójkąty i w rzeczywistości też tak jest my nie możemy/nie powinniśmy korzystać z trójkątów np. na wypukłych powierzchniach? Odpowiedź jest taka że tylko dla naszej wygody. Możemy edytować trójkąt po trójkącie a nasz model tworzyć z trójkątów zamiast quadów tylko ze to nam raczej utrudni a nie ułatwi sprawę. Stwierdzenie że nie wolno korzystać z trójkątów jest nie prawdziwe natomiast nieraz tak się właśnie mówi początkującym po to aby unikali pewnych problemów i się po prostu nie zniechęcali. Reasumując:

 

- Quady świetne do modelowania wypukłych powierzchni i do stosowania ms/ts

- Trójkąty dobre do stosowania na płaskich powierzchniach

- Trójkąty dobre do stosowania w niektórych przypadkach organiki czy tkanin przy użyciu ms/ts

 

Co do samego cieniowania to zachowuje się ono najlepiej na regularnej(podobnej wielkości zbliżone kształtem do trójkąta równobocznego) siatce trójkątów/quadów

Odnośnik do komentarza
Udostępnij na innych stronach

Ta "zasada" dzielenia cylindra wziela sie ze starych czasow i wynikala z czegos takiego jak triangle strips. Tu w polowie artykulu jest to wyjasnione:

http://www.ericchadwick.com/examples/provost/byf2.html

 

Przy czym artykul jest z 2003 roku. Od tego czasu zmienilo sie wiele :) I jest to ostatnia rzecz jaka mozna, by sie przejmowac. Zreszta nie wiem, czy karty graficzne nadal licza w ten sposob i nawet jesli to pewnie wplyw na wydajnosc, to jakies promile. A ludzie powtarzaja ten podzial cylindra kolejnym pokoleniom :)

 

Wiec modeluj jak Ci wygodnie. Jesli ten wierzcholek nie jest potrzebny, to go nie dawaj. Jesli chcesz gorke albo pomoze w mapowaniu, to go tam wsadz.

 

Quady stosuje sie dla wygody i czystosci siatki, bo mozna latwo stosowac edgeloopy, ciac je itp.. Exporter i tak to trianguluje. Gniazda sa ok. Unikaj tylko wielokatow wiekszych niz quad. Raz, ze nigdy nie wiadomo jak sie to podzieli. Dwaz ze czesc silnikow tego nie lyka.

Odnośnik do komentarza
Udostępnij na innych stronach

O wielokątach wiem :)

Dzięki za art, będzie co czytać nawet jeśli stare. Ogólnie to najbardziej obawiałem się tych gniazdeczek, ale myślę że dojdę do jakichś wniosków jak kilka razy coś popsuje :

 

Na razie mimo wszystko jestem na etapie wchłaniania wiedzy i podglądania siateczek : D

Odnośnik do komentarza
Udostępnij na innych stronach

O wielokątach wiem :)

Dzięki za art, będzie co czytać nawet jeśli stare. Ogólnie to najbardziej obawiałem się tych gniazdeczek, ale myślę że dojdę do jakichś wniosków jak kilka razy coś popsuje :

 

Na razie mimo wszystko jestem na etapie wchłaniania wiedzy i podglądania siateczek : D

 

Na twoim miejscu przeszedłbym na etap modelowanie :D

Takimi pierdami jak optymilzacja to sie mozna zaczac przejmowac potem.

Narazie ci tylko powiem ze liczba vertexow ma wiekszy wplyw na wydajnosc niz liczba polygonow.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się



×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności