Teren oparty na mapie wysokości z drogą

12

Jaki jest najlepszy sposób na wdrożenie funkcji szczegółowej, takiej jak droga, w terenie opartym na mapie wysokości?

wprowadź opis zdjęcia tutaj

Aktualizacja: Na obrazie jest trochę trudny do zauważenia, ale droga schodzi ze szczytu kamieniołomu, aby zrobić swoją bazę.

Adam Kane
źródło

Odpowiedzi:

14

To, co jest świetne w obrazach, to to, że zwykle osadzają do 4 kanałów (czerwony, zielony, niebieski i alfa). Ponieważ mapa wysokości wymaga tylko jednego wymiaru, możesz po prostu użyć czerwonego kanału do przechowywania informacji o wysokości (nadal masz 256 poziomów dla wysokości), a następnie użyć innych kanałów do innych celów (takich jak użycie zielonego kanału do mapowania dróg , niebieski kanał dla wody / wilgoci) itp ...

W ten sposób możesz mieć pewność, że podczas budowania terenu strefy, w których należy zbudować drogę, będą płaskie, zamiast podążać za gradientem wysokości.

XGouchet
źródło
1
Czy możliwe jest użycie obrazu HDRI, więc liczby zmiennoprzecinkowe można wykorzystać do przechowywania dokładniejszych informacji o wysokości?
Quazi Irfan,
1
Obraz HDRI nie jest formatem pliku, ale koncepcją, ale tak, można użyć określonych formatów plików, aby zapewnić większą dokładność. Zależy to głównie od twojego sprzętu / oprogramowania, ale istnieje zmiennoprzecinkowy obraz RG, który możesz zapisać na 32 lub 64 bitach. Ale bez względu na format, jeśli użyjesz większej liczby bitów na kanał, zawsze możesz przekonwertować wartości int na liczbę zmiennoprzecinkową w następujący sposób: f = (v / 256.0) gdzie f jest liczbą zmiennoprzecinkową, v bieżącą wartością int
XGouchet
Czy dobrym pomysłem jest przechowywanie wszystkich obiektów statycznych mapy na mapie (wysokości)? jak roślinność, liście, dom? lub wskaźniki, na których zostanie umieszczony inny obiekt? czy istnieje jakiś inny sposób?
Quazi Irfan,
Nie zapisałbym dokładnej lokalizacji, ale może po prostu informacji o gęstości, a następnie wygenerowałem dane (roślinność, dom itp.) Na podstawie informacji o gęstości. Ale najlepszym sposobem jest ręczne umieszczenie tych obiektów i zapisanie ich za pomocą pliku danych binarnych lub pliku opisu xml
XGouchet,
1
@iamcreasy oczywiście możesz użyć mapy wysokości, aby twój dom dotykał podłogi, ale musisz opisać, jak wygląda model domu (ściany, drzwi, wszelkie meble w środku), czego nie można opisać za pomocą piksela. Również informacje o pikselach jsut nie zapewnią dokładnej orientacji, więc wszystkie domy zostaną wyrównane (co nie będzie wydawać się naturalne ani „ładne”).
XGouchet,
1

Sposób, w jaki to robię, to oddzielenie mapy wysokości (używam na przykład liczb zmiennoprzecinkowych, na przykład 513 * 513) i splatmapy („tekstury kontrolnej”), które często wymagają większej rozdzielczości (używam 32-bitowych bitm / s, 512x512).

Mapa wysokości tworzy siatkę (teren, trójkąty).

Mapa kontrolna obejmuje cały teren, a każda z jej warstw (RGBA) mówi, ile mówi Kamień, Brud, Droga itp., Które powinieneś zobaczyć Na terenie.

W ten sposób możesz użyć edytora, aby: a) stworzyć teren ib) Namalować teren (za pomocą skały, brudu, drogi itp.)

Zrób szybki przegląd „malowania mapy wysokości”, „mapy wysokości” i innych, aby uzyskać bardziej szczegółowe wyjaśnienia lub pobierz powiedz Unity3D, aby sprawdzić, jak może działać w „rzeczywistości”.

Valmond
źródło