Łatwo to zrobić. Używając Octtree, po prostu dzielisz świat na stopniowo mniejsze części, aż osiągniesz wymagany poziom szczegółowości. Może to być na przykład rozmiar ziarna piasku. Pomyśl, że Minecraft doprowadził do skrajności.
Co więc renderujesz? Jeśli szczegół jest wystarczająco mały, możesz rozważyć renderowanie bloków - węzłów liści octree. Inne opcje obejmują kule, a nawet prymityw geometryczny. Kolor i normalna mogą być przechowywane w każdym węźle, a dla zredukowanego LOD można przechowywać złożone informacje na wyższych poziomach drzewa.
Jak możesz zarządzać tak dużą ilością danych? Jeśli drzewo jest faktyczną strukturą danych, możesz mieć wiele wskaźników odnoszących się do tych samych poddrzewa, podobnie jak ponowne użycie tekstury, ale obejmuje również geometrię. Sztuką jest, aby uzyskać jak najwięcej możliwości ponownego wykorzystania na wszystkich poziomach. Na przykład, jeśli połączysz 4 oktany w układzie czworościennym wszystkie z tym samym węzłem potomnym na wszystkich poziomach, możesz zrobić bardzo duży fraktal sierpinsky'ego 3d prawie bez pamięci. Rzeczywista scena będzie oczywiście znacznie większa.
Problem polega na tym, że będzie działać tylko w przypadku geometrii statycznej, ponieważ rzeczywista animacja wymagałaby manipulacji wszystkimi tymi danymi w każdej klatce. Renderowanie jednak, zwłaszcza ze zmienną LOD, nie stanowi problemu.
Jak renderować coś takiego? Jestem wielkim fanem ray tracingu i radzi sobie całkiem dobrze z tego typu procesorami i bez nich.
Wszystko to oczywiście spekulacje. Nie mam konkretnych informacji na temat sprawy, o której mówisz. A teraz coś pokrewnego, ale innego:
Ogromna ilość renderowanych danych
EDYCJA I oto jedna, którą zrobiłem, ale celowo zmieniłem normalne, aby pola były bardziej widoczne:
Królik Stanforda w wokselach
Ta liczba klatek była na jednym rdzeniu IIRC. Podwojenie głębokości drzewa ogólnie zmniejsza szybkość klatek o połowę, a użycie wielu rdzeni będzie dobrze skalować. Zwykle trzymam prymitywy (trójkąty i tym podobne) w moim octree, ale dla uśmiechów postanowiłem w tym przypadku renderować węzły liści samego drzewa. Lepszą wydajność można uzyskać, optymalizując konkretną metodę.
Gdzieś na ompf jest samochód z wokselami, który jest naprawdę fantastyczny - poza tym, że jest statyczny. Teraz nie mogę go znaleźć ...