Autor Wątek: Tworzenie rozbudowanych map  (Przeczytany 2210 razy)

Offline Maxoss

  • Użytkownik

# Październik 17, 2013, 00:18:21
Przed chwilą natknąłem się na film Autodesk'a w którym prezentowana jest gra firmy QD pt. Beyond Two Souls.
http://www.youtube.com/watch?v=ncYA2nLF71A

Gra nie jest jako tako rewolucją jeśli chodzi o grafike, ale i tak podoba mi się to co osiągnęli przy jej tworzeniu level-designer'rzy. Nasuwa się jednak pytanie ... jak? Masa elementów, różne rodzaje obiektów, jak można to ogarnąć aby nie ześwirować i się nie pogubić?

Rozchodzi mi się głównie o jedną rzecz, o tworzenie asset'ów do scen/map.

1. Jak poradzić sobie z tworzeniem assetów budynków do których mamy możliwość wchodzić - czyli na chłopski rozum, posiada teksture na zewnątrz jak i wewnątrz?
Tworzenie planu naszej budowli, potem stworzenie go w programie 3D i dzielenie go na konretne elementy aby potem móc złożyć go w UDK lub Unity (o teksturach potem)? Wtedy jednak nasze podzielone elementy w dużej mierze będą należeć tylko do jednego typu budynku, a co jeśli chcielibyśmy stworzyć więcej rodzaji budynków, różniące się innym umiejscowieniem ścian, okien itp?
1.1 Powinniśmy się skupić raczej na tworzeniu małych elementów, które pozwolą zrobić wiele budowli, czy jednak nie skupiać się na tym i tworzyć tyle elementów ile będziemy chcieli?
2.Tekstury, tekstury, odwieczny problem. Czy tekstury powinny być przystosowane do modularności? Czyli tak, aby jedna tekstura była używana przez wiele innych elementów (propsów)? Jest to bardzo optymalne szczególnie dla sprzętu komputerowego, bo zamiast wczytywać wiele tekstur na raz, można wczytać jedną a będzie używana przez wiele elementów, ale czy napewno konieczne w dzisiejszych czasach, kiedy posiadanie 8GB to prawie że norma, a silniki gier stają się coraz bardzie optymalne?
2.1 Czy małe elementy, które wzbogacają naszą gre, powinny mieć jedną wspólną teksture, czy to jednak nie byłby problem, aby dla każdego pojedycznego modelu (puszka, butelka, monitor, komuter, aparat fotograficzny itp) przygotowywać osobne tekstury? Choćby nawet dlatego, że czasami konieczne jest wypalenie tekstury z hp do lp.
2.2. Jak wygląda sprawa z rozmiarem tekstur małych obiektów (puszki, butelki, lampki, monitor itp) do tych dużych (ściany, samolot, samochód, łóżko). Owszem, bedzie się to rzucać w oczy, jeśli tekstura ściany będzie miała przykładowo 1024x1024 oraz będzie powtarzalna, a tekstura aparatu fotograficznego która będzie miała ten sam rozmiar. Jak powinniśmy sobie dawać z tym rade, aby nie dochodziło do takich sytuacji jak w Skyrim'ie, że gdy chodziliśmy po górach, można było dostrzec czasami różne rozmiary tekstur skał (niektóre były pikselowe, a niektóre bardzo duże)? To właśnie jest ten problem o którym mówie. Czy z góry powinniśmy założyć, że tekstury małych obiektów powinny mieć 512x512 (pojedyczno dla każdego) a duże, (rozmiar zbliżony do wysokości kamery, którą poruszamy się podczas gry - FPP) powinny mieć narzucony rozmiar 2048x2048?

Z góry przepraszam za chaotyczność, wierze jednak że znajdzie się ktoś, kto przynajmniej będzie mógl  odpowiedzieć na częsć tych prostych pytań.
« Ostatnia zmiana: Październik 17, 2013, 00:21:38 wysłana przez Maxoss »

Offline Mr. Spam

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

Offline Xenox93

  • Użytkownik

# Październik 17, 2013, 01:47:47
1. Na ogół stosuje się te same budynki, jeśli jest ich na prawdę dużo, to można użyć - "Instancing". Nawet za pomocą tej technologii można stworzyć niewielki modyfikacje, które obrócą model, zmniejszą go, tak aby nie był łudząco podobny. A jeśli chcesz tworzyć każdy, odmienny, innowacyjny nowy model budynku to dodajesz go do sceny, trochę roboty no i wydajność spadnie, ale za pomocą QuadTree(?), LOD( Level of Detail ) i wielu innych metod optymalizacyjnych wydajność może być akceptowalna.

1.1 Za bardzo nie rozumiem tego pytania. Ale na ogół robi się tak, że tworzy się kilka wersji różnych elementów, np. okien, drzwi, drzew itp. A następnie tworzy się budynek i dopiero dodaje do niego te okna, drzwi i coś jeszcze ;)
BTW, sposób zależy od Cb, jeżeli tworzysz grę mocno LowPoly, to tworzysz całą bryłę i co najwyżej na teksturze lub za pomocą małej ilości trójkątów tworzysz niby drzwi i okna. Wszystko zależy od Cb, w jaki segment celujesz, czy w wydajne maszyny czy raczej w żółwie, swoją drogą, jedno nie wyklucza drugiego ;p

2. No wiesz, tekstury na ogół tworzy się w różnych rozdzielczościach. Mało widoczne elementy raczej nie będą miały tekstury 8K, haha. Na ogół stosuje się daną teksturę i zmienia się ją w ten sposób, że dodaje się kilka kolejnych, które np. dodają efekt wilgotności, mchu, śladów destrukcji itp. Albo się je obraca. Na ogół się kombinuję ;) Ale nie popadajmy w paranoję, nie każdy ma 8 GB RAM, ja cały czas mam 4 GB ;p Dodatkowo nie powinieneś patrzyć tylko na pamięć RAM, bo ważna jest również pojemność pamięci GPU, a tu dopiero teraz można zauważyć powiększenie się jej, np. ja mam GeForce GTX 460 1GB, więc gdybym chciał zastosować super jakości tekstury, na dodatek kilkanaście, do tego HighPoly modele to śmiem wątpić czy wystarczyłoby mi pamięci GPU, hah.

2.1 No ogólnie stosuje się ten sam model puszki i tą samą teksturę. A sprawę "Retopology", bo chyba mniej więcej się to jakoś tak nazywa, można załatwić poprzez zmienienie UV, bo chyba nie jest problemem tekstura, a raczej to jak tekstura ma się układać na modelu ;)

2.2 Hmm, tu ciężko powiedzieć, możesz do gry dodać kilka wersji tekstury, np. 512, 1024, 2048, 4K, bo za kilka lat ma podobno wejść Quad HD, a na ogół zakłada się że zanim skończy się grę to minie ogromna ilość czasu, a wtedy Quad HD powinno być standardem, no może przesadziłem, ale połowa już powinna mieć ;p Więc na takich ekranach tekstura, która wyglądała idealnie w rozdzielczości Full HD to w wyższych rozdzielczościach może wyglądać okropnie ;) Ale jeśli celujesz w słabsze maszyny lub z średniej półki to nie powinieneś przesadzać.