Łatwo jest poradzić sobie ze sposobem interakcji lokalizacji na czystej siatce kartezjańskiej. To tylko matematyka waniliowa. I możesz zignorować geometrię powierzchni kuli dla jej garści, jeśli chcesz po prostu obciąć bieguny lub coś w tym rodzaju. Ale ciągle wymyślam pomysły na gry, w których liczy się przestrzeń polarna. Geo-kodowane ARG i globalne roguelike i tak dalej.
Chcę kwadratowych (ish?) Lokalizacji - zresztą reprezentatywnych dla kwadratowych kafelków tego samego rozmiaru na całym świecie.
To musi być rozwiązany problem, prawda?
Jakie są rozwiązania?
ETA:
Na równiku - i zakładając, że twoje lokalizacje kwadratowe są stosunkowo małe, jest wystarczająco blisko prawdy, że możesz uciec, mając jeden kwadrat w rzędach na północ i południe od najbardziej równikowego rzędu. I prawdopodobnie można to zrobić, machając ręką do około 45 stopni. Ale ostatecznie musisz mieć mniej kwadratów w obwodowym rzędzie totemu. Jeśli zmniejszę długość wiersza o jeden i przesunę kwadraty o 1/2, wówczas będą one jak heksy i stosunkowo łatwo jest wykonać kodowanie, aby śledzić połączenia. Ale kiedy dostajesz totem, staje się coraz bardziej ekstremalny.
Rzucanie powierzchni świata na powierzchnię sześcianu jest kuszące. Ale pomyślałem, że muszą być w użyciu bardziej eleganckie rozwiązania.
Gdybym zrobił sześcian (nie analizując go dalej przez geodezję) Czy są jakieś plusy i minusy związane z umieszczeniem bieguna na środku twarzy lub na wierzchołku z trzech stron?
źródło
Odpowiedzi:
Myślę, że szukasz siatki geodezyjnej . Wiele osób przybliża ziemię sześcianem:
Carlos A. Furuti ma wiele map ziemi, które składają się w sześcian
Być może zainteresuje Cię również pięcioroczna projekcja Peirce, która odwzorowuje całą Ziemię na jeden lub dwa kwadraty.
Dwudziestościan (mapa Dymaxiona; „Jaki jest najlepszy sposób na piksele kuli?” ) Daje nieco mniejsze zniekształcenie, ale jest bardziej skomplikowane.
źródło
Zawsze chciałem zobaczyć grę, w której mapa sferyczna używa jakiegoś zwykłego wielościanu zamiast grać w świat torusem. Ta technika nazywa się mapą Dymaxion . (źródło: grunch.net )
Chciałbym polecić dwudziestościan . Umieść bieżący trójkąt tak, aby był wyrównany na jednej krawędzi kwadratu. Kiedy gracz zejdzie z trójkąta, pociągnij następny trójkąt i ponownie odwzoruj go identycznie. Współrzędne gracza zostaną wówczas ponownie przypisane do nowej sekcji. Tak więc każda sekcja mapy ma własny układ współrzędnych. Musisz także narysować tło dla 3 sąsiednich i 9 pół sąsiednich sekcji. Nie sądzę, aby użytkownik był w stanie określić, w jaki sposób zostanie zaimplementowany, jeśli będzie dobrze zrobiony.
Oto przykład, jak to może działać.
Oczywiście po przeczytaniu tego prawdopodobnie użyjesz klasycznej mapy torusów i będę czekał, aby zobaczyć prawdziwy wielościenny wszechświat.
źródło
Jeśli tworzysz sferę przy użyciu podstawy geodezyjnej, obszar biegunowy jest traktowany nie inaczej niż jakikolwiek inny region pod względem odstępów między wierzchołkami, co ułatwia jednolite odwzorowanie UV.
Większość aplikacji do modelowania pozwala tworzyć prymitywne sfery za pomocą projektu geodezyjnego.
źródło
Nie ma możliwości „mapowania” kuli za pomocą kwadratów (lub prostokątów) i połączenia ich w „wspólnych” wierzchołkach.
Czy byłoby jednak możliwe wygenerowanie „lokalnego widoku” na żądanie? Problematyka nie jest tak naprawdę określona w pytaniu, ale gdybym pracował nad czymś, co chciałem zobaczyć miasto, ale chciałbym móc obracać świat, mógłbym tymczasowo po prostu odwzorować siatkę na „wystarczająco płaską” sekcję świat. Początek siatki byłby wszędzie tam, gdzie był twój lokalny środek, a normalna w tym punkcie odpowiada normalnej powierzchni planety.
Następnie, gdy ktoś schodzi z sieci, na żądanie generowana jest nowa.
To może, ale nie musi, działać dla PO, ale dla niektórych może być przydatne.
źródło
Weź sześcian o odległości między wierzchołkami i środkiem sześcianu równej pożądanemu promieniu. Masz kulę zbudowaną z 6 quadów.
Teraz na każdym kroku, weź każdy quad, podziel go na 4 i przesuń nowe 5 wierzchołków (jeden na środku i 4 na krawędziach - uwaga, są UDOSTĘPNIONE) od środka, aby podobały się pożądanym promień.
Nie, ta metoda nie jest doskonała, ale przynajmniej jest to mniej więcej równy rozkład w kuli.
źródło
Z dymaxion max masz sześciokąty ułożone w trójkąty na płaskiej powierzchni, ale ponieważ mapa nie jest tak płaska, są pięciokątami. Jeśli chcesz pozwolić graczowi zachować orientację podczas przechodzenia przez określone części, musisz oddzielić mapy lokalizacji od tego, jak są faktycznie przechowywane. W przypadku obiektów takich jak budynki możesz zapisać małą mapę wektorów prostokątnych, a następnie wykonać ciężką pracę, rysując je w dowolnej potrzebnej orientacji.
Nie musisz zawsze sprawiać, by wnętrze wyglądało tak, jakby miało miejsce niedawne trzęsienie ziemi, ponieważ myślę, że przeciętny gracz nie powinien nawet mrużyć oczu przed wejściem na północno-wschodnie drzwi, ale wejściem na ekran z ukierunkowanymi frontowymi drzwiami południe i cały budynek na regularnej siatce.
Chociaż jeśli zamierzasz po prostu przechowywać budynki i ważne takie witryny, to i tak wykonałeś całą pracę nad wzorem piłki nożnej. Efektem końcowym jest to, że przechowujesz świat jako jakiś niekwadratowy wzór, a następnie wciskasz go w taką siatkę, gdziekolwiek jest gracz.
Jest jeszcze jedna alternatywa - jeśli nie podasz im tak dokładnego wskazania kuli, tak jakbyś po prostu dał im kompas o niskiej precyzji, aby powiedzieć im, który z czterech ortogonalnych kierunków jest najbliżej północy, możesz uciec po prostu wykonując obrót o 90 stopni dla dowolnej lokalizacji, do której poszedł gracz. Biorąc pod uwagę założony poziom grafiki, nie jest tak, jakbyś musiał się martwić o wysoki budynek zasłaniający niektóre drzwi. Tak długo, jak wiedzą, czy znajdują się w pobliżu biegunów, czy nie, nie powinni się denerwować, że kompas się na nich zmienia, chyba że otaczający ich NPC polecili im udać się na północny wschód lub próbować faktycznie dotrzeć do określonych współrzędnych szerokości i długości geograficznej .
źródło
Pytasz pytanie, że ludzie, którzy tworzą mapy zostały z prośbą o długim czasie :)
Zdecydowanie poczytaj o Map Projekcjach, aby uzyskać spostrzeżenia i pomysły, które mogą pomóc. Wyzwanie polegające na reprezentowaniu powierzchni kuli na płaskiej płaszczyźnie 2D było czymś, o czym ludzie myślą od dawna.
Krótka odpowiedź brzmi: nie, nie możesz tego zrobić. Dlatego gdy patrzysz na mapy świata, niektóre części są zniekształcone, a niektóre nie. Zwykle są to bieguny, ponieważ większość map dotyczy obszarów niepolarnych.
Jak już powiedzieli inne odpowiedzi, odpowiedzią jest albo użyć innego kształtu (na przykład sześciokąty lub trójkąty), albo dynamicznie wygenerować mapę w locie dla bieżącego punktu widzenia użytkownika.
Kwadratowymi kafelkami można łatwo zarządzać bez żadnych wątpliwości, ale nie sądzę, aby tworzenie mapy heksadecymalnej było tak trudne.
Oto starszy artykuł z GameDev.net, który może Ci się przydać. Chodzi o wykonywanie płytek izometrycznych i sześciokątnych na siatce.
http://www.gamedev.net/reference/articles/article747.asp
Googling „kafelkowa mapa heksadecymalna” da ci wiele trafień, niektóre przydatne, a niektóre nie.
źródło
Używam kilku kamer sieciowych PTZ Sony, model SNC-RX570N, w celu śledzenia ruchomych obiektów na niebie i triangulacji w celu uzyskania prawdziwych ścieżek 3D. Jednym z aspektów wstępnej konfiguracji jest zdefiniowanie nienadzorowanych „tras”, dla których należy wybrać punkty trasy. Istnieje ograniczona liczba takich programowalnych punktów orientacyjnych i chcę objąć całą półkulę („sferę niebieską”) od horyzontu do zenitu, nie pozostawiając żadnych przerw.
Zadałem sobie więc pytanie „Jaka jest minimalna liczba punktów potrzebnych do pełnego pokrycia (bez przerw)?”. Odkryłem, że tak naprawdę nie mogę tego w pełni zrozumieć.
Aparat ma nieskończoną panoramę (360 stopni) i pochylenie 0-90 stopni, więc teoretycznie możliwe jest uzyskanie pełnego zasięgu. Wyświetlacz aparatu, przeznaczony do użytku komputerowego, ma prostokątny format 4: 3. Szorstkie poziome pole widzenia przy 1x powiększeniu wynosi 58 °.
Istnieją dwa sposoby przedstawienia problemu, w zależności od tego, który rzut wybierzesz: - prostoliniowy jak Mercator, przy czym horyzont jest „równikiem”, a zenit jest „biegunem”, rozszerzonym o ponad 360 stopni obrotu. - biegunowy, przy czym horyzont jest obwodem koła, a zenit jest jego środkiem.
Uważam polar za najłatwiejszy sposób na rozwiązanie tego problemu. Mogę wykroić koło na poziome plastry ciasta o wielkości FOV, a to mówi mi, że potrzebuję 7 punktów na całym okręgu z tym 58 ° H FOV. Jak na razie dobrze. Promień wewnętrzny to po prostu nachylenie lub V-FOV, czyli 3/4 z 58 stopni. Jak dotąd tak dobrze - pokryłem najbardziej zewnętrzne części koła.
Ale staje się trudniejsze, gdy zbliżamy się do zenitu. Zakładam, że jeden z moich punktów orientacyjnych znajduje się dokładnie w zenicie. Jak odwzorować prostokąt widoku na region wokół środka koła? Czy ten kształt to prostokąt, elipsa, poduszeczka na szpilki, czy co? Jak wypełnić środkowy bit między ładnym, schludnym pokryciem zewnętrznym a tym dziwnym kształtem w zenicie? Flummoxed.
Zauważam, że kąt bryły półkuli wynosi 2 * steradiany PI, a kąt mojego pola widzenia przy powiększeniu 1x wynosi 0,762 st, co oznacza, że potrzebuję minimum 9 teselacji. Podejrzewam, że odpowiedź jest wyższa niż 9.
źródło
Jeśli chcesz stworzyć ogólnoświatową siatkę, proponuję podzielić planetę na kraje lub kontynenty i ustawić kwadratową siatkę odpowiednio na środku. Niech ocean zakryje szwy.
źródło