Jak mogę uzyskać tekstury na krawędziach ścian jak w Super Metroid i Aquaria?

57

Gry takie jak Super Metroid i Aquaria przedstawiają teren z innymi przeciwległymi częściami ze skałami i innymi rzeczami, podczas gdy głębiej za nimi (tj. Pod ziemią) znajdują się inne szczegóły lub po prostu czerń.

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Chciałbym zrobić coś podobnego za pomocą wielokątów. Teren jest tworzony na moim obecnym poziomie jako zestaw nakładających się kwadratowych pól. Nie jestem pewien, czy ta metoda renderowania zadziała w takim systemie do tworzenia terenu, ale jeśli ktoś ma pomysły, chciałbym je usłyszeć. W przeciwnym razie chciałbym się dowiedzieć, jak powinienem ponownie napisać system renderowania terenu, aby właściwie rysował teren w ten sposób ...

leki
źródło
1
Aquaria zawiera edytor poziomów, więc możesz na to spojrzeć, aby zobaczyć, jak dokładnie zbudowali zasoby.
2
Oprócz patrzenia na edytor poziomów Aquarii, podstawową zastosowaną tutaj metodą jest renderowanie dwóch (lub więcej) warstw terenu.
thedaian

Odpowiedzi:

133

Metroid po prostu używa kafelków, nic specjalnego się tam nie dzieje.

Akwaria robi jednak coś sprytnego. Jeśli zauważysz, wiele kamieni na łóżku powtarza się kilka razy. Oto na przykład jedna ze skał:

jedna odmiana powtarzającej się skały przy każdym wystąpieniu

Wygląda na to, że właśnie zrzucili duszki wzdłuż krawędzi swojego terenu. To trochę tak, jak to robił Metroid - ogromny arsenał płytek krawędziowych, ale jeśli zwrócisz uwagę, zauważysz powtarzanie się płytek. Acquaria robi to samo, z wyjątkiem duszek skalnych, a nie na siatce.

Jak to powielić?

Może nie tak dokładnie to robią, ale jest to jeden ze sposobów na uzyskanie tego samego rezultatu końcowego.

Po pierwsze, załóż sobie fajną grupę rockowych duszków takich jak to:

niektóre perdy rockowe duszki

Teraz musisz wykonać proces, abyś wiedział, gdzie je umieścić.

Określ wierzchołki i krawędzie tworzące teren.  Przemierzaj je jak pająk idący przez linię wstęgi i w regularnych odległościach przechowuj aktualną współrzędną.  Odległość inverval zależy od wielkości twoich duszków!  Pokoloruj jedną stronę na czarno, a następnie zrzuć duszka na każdy zarejestrowany punkt.

Tada!

Możesz użyć tego raz, aby wygenerować listę skał i gdzie je narysować, a następnie po prostu narysować wszystkie skalne duszki. A może po prostu narysujesz wszystkie punkty i wybierzesz innego duszka, aby narysować go na każdym kroku, tworząc krawędź wykopu lawy lub obcego terenu!

I inne cechy terenu ...

Akwaria mogła zastosować bardzo podobną metodę, aby zrzucić wszystkie grzyby, koralowce i inne elementy dna morskiego (w tym gigantyczne skaliste struktury tworzące tło). Grzyby mogły zostać wygenerowane w następujący sposób:

  1. Zbierz kilka punktów w przypadkowych odstępach czasu, a nie w ustalonych odstępach czasu.
  2. Nie tylko przechowuj sens. Przechowuj również normalną krawędź, z której wybrałeś punkt.
  3. Wybierz losowy obrót w pewnym zakresie obrotu normalnego. Na przykład, jeśli normalna jest skierowana w stronę 30 stopni, wybierz obrót w granicach 20 stopni (tj. Między 10-50 stopni).
  4. Narysuj swojego grzyba przy wybranym obrocie i na losowej długości łodygi.

Wszystko inne jest prawdopodobnie odmianą tych samych instrukcji: koral nie obraca się zbytnio, te dwie skorupy / kamienie są prawdopodobnie umieszczane tylko wtedy, gdy normalny teren jest skierowany mniej więcej w górę (tj. Płaski teren).

Uwagi końcowe

Ponieważ komentator zapytał: Te obrazy tworzę w Adobe Photoshopie (zmniejszonym tutaj o 50% dla wyraźnych linii) za pomocą tabletu Wacom Intuos3 (który pozwala mi rysować odręcznie i naturalnie oraz zmieniać szerokość linii itp.).

doppelgreener
źródło
25
Niezła odpowiedź! Świetna grafika towarzysząca.
Tim Holt
2
Wow, najwięcej rysunków i zdjęć, jakie widziałem w odpowiedzi.
Xeoncross,
Najlepsza odpowiedź. Świetna robota
Ellis,
2
@Jonathan Hobbs: Bardzo fajna grafika. Narysowałeś to wszystko? Jeśli tak, jakiego programu użyłeś? Naprawdę podoba mi się wynik i efekt, który daje, próbując coś pokazać. Dzięki.
Jesse Emond
4
Myślę, że „muszę zdobyć jeden z tych tabletów, aby móc tworzyć dobrą sztukę w ten sposób!” Potem myślę: „No tak, i tak nie jestem dobry w rysowaniu, a tablet nie pomoże”
MichaelHouse
3

Wykonanie tego z użyciem wielokątów byłoby dość proste, o ile masz ładny wzór powtarzania / układania kafelków, możesz łatwo ustawić modele na duplikowanie wzdłuż krzywej, nic złożonego.

Mam nadzieję, że to pomaga.

Dan_Tsukasa
źródło
Po tym MOŻESZ renderować i używać samolotów, aby osiągnąć ten sam wynik (pod warunkiem, że są tylko na pierwszym planie, a gracz nigdy ich nie dotyka), w ten sposób polikount w scenie byłby mniejszy, ponieważ możliwe jest, że mając tak wiele obiekty zduplikowane (jak w dwóch powyższych przykładach) będą intensywnie intensywnie korzystać z wielu elementów
Dan_Tsukasa
Jeśli użyjesz paska trójkąta do utworzenia ramki, będzie ona mniej intensywna w zakresie poli (N / 2) +2, ale nie będziesz w stanie uzyskać ładnego efektu „nakładania się” bez tworzenia określonych płytek.
Jonathan Connell