Zależy to od zastosowanej metody podziału przestrzennego, chociaż wszystkie metody podziału (jak każda metoda kompresji) ostatecznie określają, gdzie nie może nastąpić dalsza kompresja, ze względu na narzuty struktury danych i inne czynniki logiczne / matematyczne. Przykład można znaleźć w oktatach. Dla każdego węzła w oktcie wskaźnik musi być zachowany dla jego rodzica i / lub dzieci (w zależności od tego, jak postępujesz w architekturze struktury danych), aby umożliwić znaczące przejście. Każda struktura drzewa może zawierać n dzieci. Im niższy stosunek 1: n, tym bardziej efektywne wykorzystanie przestrzeni zyskujesz, a tym samym większe koszty ogólne w przechodzeniu przez drzewo, ponieważ musisz mieć więcej węzłów przodków, aby zawierać tę samą liczbę wokseli liści (w twoim przypadku około 510 bilionów dolarów z nich reprezentujących powierzchnię).
Biorąc pod uwagę, że w twoim przypadku podstawowymi kwestiami są koszty przechowywania i renderowanie całej planety (lub jej części) z dużej odległości, nie ma struktury danych, którą poleciłbym ponad oktok. Mapowanie jest koniecznością: średnica 12,8 miliona metrów przy najbliższej wyższej mocy 2 wynosi 2 ^ 24 = 16,8 miliona. 24 poziomy oktawy do przejścia oznaczałyby gigantyczną ilość rozgałęzień - bardzo kosztowne zarówno dla procesorów graficznych, jak i procesorów. Ale pod warunkiem, że postępujesz właściwie, będziesz musiał przejść tylko kilka poziomów jednocześnie. Biorąc jednak pod uwagę wymaganą ilość miejsca, alternatywy są nieliczne i dalekie (patrz poniżej).
Możliwości mapowania w oktatach sprawiają, że jest to niezwykle potężne narzędzie do dużych woluminów, takich jak te, które opisujesz. W przeciwieństwie do wszystkich innych znanych metod podziału (z wyjątkiem drzew KD), oktree utrzymuje podział na poziomie minimalnym, co oznacza, że wizualne i fizyczne różnice między poziomami mipmap są również utrzymywane na minimalnym poziomie, co oznacza znacznie drobniejsze delty w ziarnistości, gdy wchodzisz i w dół drzewa.
Z drugiej strony, jeśli chcesz stworzyć świat, w którym hierarchiczne przechodzenie przez siatkę jest ograniczone do minimum, musisz wymienić miejsce na zwiększenie prędkości.
Mówiąc o idealnym stosunku 1: n, nie ma pod tym względem drobniejszej struktury niż drzewo kd. Tam, gdzie liczba oktetów dzieli się na 2 dla każdej osi, co daje 2 ^ 3 = 8 pojedynczych komórek potomnych, drzewo kd dzieli się dokładnie raz na poziom podziału. Problem polega na tym, że musisz wybrać hiperpłaszczyznę do podziału, a ta hiperpłaszczyzna może być wybrana wokół dowolnej z 3 osi. Chociaż jest optymalny pod względem przestrzeni, sprawia, że przechodzenie przez 3D (takie jak podczas rymowań, podstawowa operacja przy użyciu oktetów do fizyki lub renderowania) jest znacznie trudniejsze niż w oktawie, ponieważ dynamiczna struktura typu portalu musi być zachowana, aby nagrywać interfejsy między poszczególnymi węzłami drzewa kd.
RLE jest innym podejściem do kompresji, ale pod wieloma względami trudniej jest zastosować do takiego problemu (gdzie podstawa operacji jest sferyczna), ponieważ kompresja RLE jest jednowymiarowa i musisz wybrać oś, w której działa. planetę, można wybrać oś biegunową, ale każdy wybór jednej osi wprowadziłby pewne problemy z przechodniami do renderowania i fizyki, gdy działałby pod pewnymi nieoptymalnymi kątami. Oczywiście można również uruchomić RLE w 3 osiach jednocześnie, trzykrotnie zwiększając koszt przechowywania lub w 6 osiach (-x, + x, -y, + y, -z, + z) jako dalszą optymalizację.
Aby odpowiedzieć na twoje pytanie (lub nie!)
Nie zamierzam bezpośrednio odpowiadać na pytanie, jaki rodzaj sprzętu, ale myślę, że patrząc na to z perspektywy oktetu, zaczynam dać ci wyobrażenie o tym, co w rzeczywistości jest możliwe na jakim sprzęcie. Zachęcam do zejścia tą drogą, jeśli naprawdę chcesz wiedzieć, może być najłatwiej wdrożyć prostą rzadką oktodę(patrz artykuł Laine'a w odnośnikach) i umieść w nim kulistą skorupę wokseli powierzchniowych i zobacz, jakie jest wynikowe wykorzystanie przestrzeni. Podejdź stamtąd. Zobacz, jak daleko możesz się posunąć, zanim pamięć systemowa zacznie się rozdawać. Nie wymaga to napisania renderera, chyba że chcesz wizualizacji. Należy również pamiętać, że najlepiej to zrobić na procesorze - procesory graficzne na ogół nie mają wystarczającej pojemności pamięci, aby poradzić sobie z problemami na taką skalę. Jest to jeden z powodów, dla których Intel dąży do przejścia na masowo równoległe procesory: korzyści GPGPU, które są lepsze w tego rodzaju sprawach, można zastosować w znacznie większej przestrzeni pamięci bez wąskich gardeł magistrali systemowej. Prawdopodobnie są tu inni lub na mathematics.stackexchange.com,
Jeśli chodzi o wymagania dotyczące nieskończonej odległości widzenia, jasne, ale pytanie zawsze sprowadza się do: „ile szczegółów w jakiej odległości”. Renderowanie nieskończonych szczegółów wymagałoby nieskończonych zasobów. Właśnie tutaj zaczyna się mipmapowanie zmiennej sceny. Należy również pamiętać, że wszystkie struktury danych zawierają pewien kompromis prędkości dla przestrzeni kosmicznej i odwrotnie. Oznacza to mniej / wolniejsze renderowanie, jeśli chcesz mieć większy świat przy takim samym nakładzie pracy inżynieryjnej.