Autor Wątek: Terrain level of detail.  (Przeczytany 1816 razy)

Offline misiek_par

  • Użytkownik

# Październik 28, 2009, 22:52:11
Witam

Piszę pracę magisterską o algorytmach renderowania terenu. Na początek chciałem zaimplementować jakiś najnowszy algorytm i zacząłem szukać informacji na ten temat. Stronę vterrain jak i to forum już przejrzałem i się trochę zdziwiłem. Nie znalazłem żadnych nowych algorytmów, są tylko ulepszenia już istniejących. Tematyka ta jakby trochę się zatrzymała.
Czy w dobie dzisiejszych kart graficznych naprawdę nie ma sensu już stosować algorytmów LOD? W większości tematów dotyczących LOD dla terenu radzicie, że lepiej jest używać vbo niż stosować LOD. Może chodzi tylko o takie implementacje gdzie wszystko jest liczone na CPU? Bo np coś takiego http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter02.html wygląda sensownie. Więc jak to z tym jest?
Co w przypadku jeżeli chcemy renderować bardzo duży teren?

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

# Październik 28, 2009, 23:03:47
Nie znam się dobrze na temacie , ale myślę że teslacja terenu jest dobra , pod warunkiem , jeśli lecimy chelikopterem.
Dodatkowo można podzielić planszę na mniejsze fragmenty , itp

Offline counterClockWise

  • Użytkownik

# Październik 28, 2009, 23:18:43
Skoro masz taką pracę magisterską to zrób research na temat algorytmów działających na innej zasadzie niż heightmapa - opisujących niefunkcyjny w sensie 2D teren.
Albo wymyśl jakiś nowatorski, własny :) W pracy magisterskiej jest już ten pierwiastek twórczości.

Możesz podzielić algorytmy na te oparte o heightmapę i coś innego (woksele itd?)
Opisz dokładnie w czym jest ROAM, cLOD, dLOD, Geomipmapping, zaimplementuj co uznasz za słuszne.
Zaproponuj jakieś rozwiązania do renderowania ogromnego terenu - czyli szybką metodę stronicowania na dysku.

Możesz też pokazać, że można stworzyć nieskończony teren - oczywiście musi być generowany automatycznie. Był kiedyś projekt InfiniteTerrain, może Cię zainspiruje coś z niego.

Wiem, mało zapewne pomogłem i pewnie już wszystko wiedziałeś :)
« Ostatnia zmiana: Październik 28, 2009, 23:20:48 wysłana przez counterClockWise »

Offline _OskaR

  • Użytkownik

# Październik 28, 2009, 23:22:27
Witam

Piszę pracę magisterską o algorytmach renderowania terenu. Na początek chciałem zaimplementować jakiś najnowszy algorytm i zacząłem szukać informacji na ten temat. Stronę vterrain jak i to forum już przejrzałem i się trochę zdziwiłem. Nie znalazłem żadnych nowych algorytmów, są tylko ulepszenia już istniejących. Tematyka ta jakby trochę się zatrzymała.
Czy w dobie dzisiejszych kart graficznych naprawdę nie ma sensu już stosować algorytmów LOD? W większości tematów dotyczących LOD dla terenu radzicie, że lepiej jest używać vbo niż stosować LOD. Może chodzi tylko o takie implementacje gdzie wszystko jest liczone na CPU? Bo np coś takiego http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter02.html wygląda sensownie. Więc jak to z tym jest?
Co w przypadku jeżeli chcemy renderować bardzo duży teren?
Przy siatce 1x1m i widoczności rzędu 500m, masz kwadrat złożony 2 milionów trójkątów (licząc te za kamerą). Jak wrzucisz to do VBO, to nie będzie źle, ale wystarczy, że kamera znajdzie się wyżej i zasięg widoczności znacznie wzrośnie. I będzie trzeba więcej trójkątów. A dużo trójkątów to dużo roboty dla grafy, która mogłaby się zająć także efektami. Do tego tracisz moc na np. roślinność - w końcu teren to nie tylko podłoże. A co jak chcesz widzieć daleko położone górki, które mają kilkaset-kilka tys. metrów wysokości? Poza tym, przy dużym zasięgu widzenia, pojedynczy trójkąt będzie mniejszy od poksela. :D
Jakoś nie wyobrażam sobie pisania swojej pracki bez LOD. :D

Offline Dab

  • Moderator
    • blog

# Październik 28, 2009, 23:42:28
LOD jest potrzebny, owszem, ale nie LOD który zajmuje CPU, aby odciążyć GPU które sobie radośnie idluje. ;)

Offline Angru

  • Użytkownik

# Październik 29, 2009, 00:39:35
Dodatkowo możesz poruszyć osobno problemy LOD geometrii terenu (ROAM itp) oraz LOD efektów (zmienne texcoordy, nasilenie detali, czy przełączanie całych shaderów). No i to wszystko w zależności od odległości, kąta widzienia i różnicy ilości renderowanych trójkątów od ustalonego optimum.

Offline skalniak

  • Użytkownik
    • Home page

# Październik 29, 2009, 20:03:27
LOD jest potrzebny, owszem, ale nie LOD który zajmuje CPU, aby odciążyć GPU które sobie radośnie idluje. ;)

Zazwyczaj rola CPU sprowadza sie jedynie do ustalenia LODa, mysle ze przy dobrze zaprojektowanym renderku moze mu to zajac na tyle malo czasu ze bedzie on znikomy w porownaniu z zyskiem jaki uzyskamy przy zmniejszeniu LODa.

Pozdrawiam
skalniak

Offline ConayR

  • Użytkownik

# Październik 30, 2009, 00:14:13
W mojej magisterce był przegląd technik renderowania terenu. Do nie height-map proponowałem łaty wpasowujące się w pominięte fragmenty terenu. Praca jest padaczna na maks, ale może Ci zaoszczędzić czasu na researchu starych technik (pisałem prawie 4 lata temu, więc sporo się mogło zmienić). Jestem przeciwny plagiatom, ale nie mam nic przeciw pomocy, więc jeśli nie zamierzasz robić copy/paste, to mogę poszukać w czeluściach moich dysków własnych wypocin.

Offline misiek_par

  • Użytkownik

# Listopad 03, 2009, 23:42:15
Więc skąd ta wypowiedź Krzyśka K. w tym topicu http://forum.warsztat.gd/index.php/topic,5079.msg70435.html#msg70435 ? A tym bardziej skąd ta wypowiedź Carmacka?
Cytuj
"Level of detail wise, the terrain does not render with any sophisticated geometry morphing situation. That’s one of those things that for years I think most of the research that’s gone into has been wasted. Geometry level of detail on terrain…there have been thousands of papers written about it, and I honestly don’t think it’s all that important. The way the hardware works, you’re so much better off setting down a static mesh that’s all in vertex and index buffers, and just letting the hardware plow through it, rather than going through and having the CPU attempt to do some really clever cross blended interpolation of vertices."
Myślę, że chodzi tutaj o różne bardziej wyrafinowane techniki LOD?

W mojej magisterce był przegląd technik renderowania terenu. Do nie height-map proponowałem łaty wpasowujące się w pominięte fragmenty terenu. Praca jest padaczna na maks, ale może Ci zaoszczędzić czasu na researchu starych technik (pisałem prawie 4 lata temu, więc sporo się mogło zmienić). Jestem przeciwny plagiatom, ale nie mam nic przeciw pomocy, więc jeśli nie zamierzasz robić copy/paste, to mogę poszukać w czeluściach moich dysków własnych wypocin.
Byłbym bardzo wdzięczny jakbyś poszukał. Zapewniam, że o copy/paste nie ma mowy. Nie jestem typem co tak robi. Ponadto temat ten (jak i ogólnie programowania) grafiki bardzo mnie interesuje, chcę sam to zrobić i ten rendering terenu później użyć w swojej grze, a zarazem silniku.

Offline Will

  • Użytkownik

# Listopad 04, 2009, 13:37:31
W perełkach w 6 części był fajny algorytm renderingu terenu na GPU. Spisywał się całkiem nieźle, chyba mam jeszcze jego implementacje na dysku(Jeśli chciałbyś zerknąć mogę poszukać).

Offline misiek_par

  • Użytkownik

# Listopad 12, 2009, 21:07:36
Właśnie się z nim zapoznałem. Ale chciałbym wrócić do pytań z mojego poprzedniego posta. Miałem nadzieję wywołać dyskusje podsumowującą temat renderowania terenu. Jej wyniki umieściłbym w postaci artykułu na stronie. Po skończonej pracy moje wyniki także zamierzam przedstawić w artykule na stronie. Niestety nikt nie podjął dyskusji.Sporządziłem już plan swojej pracy, który chciałbym abyście także ocenili lecz najpierw chciałbym poznać Wasze zdanie na pytanie z poprzedniego posta.