2009-05-29 17 views
11

Kończę na planecie 3D z ROAM (ciągły poziom szczegółowości).CLOD Teksturowanie planety w OpenGL

Moim celem jest teraz renderowanie dobrej jakości przy użyciu tekstur.

Próbuję znaleźć sposób, w jaki mogę użyć systemu układania płytek (małe dobre tekstury połączone), ale w pewnym sensie mogę wykorzystać moją siatkę CLOD.

Obecne algorytmy (z tego, co znalazłem) przy użyciu tego systemu płytek, dają ogromną teksturę, a następnie ją stosują. To nie jest to, czego chcę ... planeta jest bardzo duża i potrzebuję więcej mocy niż tylko zwiększenie rozmiaru tekstury.

Czy jest jakiś znany algorytm/funkcja OpenGL dla tego rodzaju rzeczy?

Nie wiem zbyt wiele na temat shaderów, ale czy można stworzyć taki, który sam maluje obiekty ... To znaczy, nie podaję texcoordów, ale umieszczam odpowiedni kolor dla każdego piksela (a nie wierzchołka) siatka?

PS: Mój świat jest zbudowany przy użyciu Perlin hałasu ... więc mogę uzyskać wysokość w dowolnym punkcie świata (mapa Wysokość z nieskończonej rozdzielczości)

+2

Niesamowite pytanie, niestety, brakuje mi na chwilę głosów. – dss539

+1

Cieniowania pikseli robią to, co chcesz: dla każdego piksela oblicz, jaki powinien być kolor. Język modułu cieniującego ma pewne ścisłe ograniczenia, ale działania takie jak "produkt dot-dot" i "przeglądaj w mapie 1d/2d/3d" są prymitywami. – pjc50

+0

Jaki jest dokładnie twój problem? - nie masz współrzędnych tekstury (u, v) i chcesz wygenerować trochę w locie? - chcesz, aby twoja tekstura dodawała szczegółów podczas powiększania –

Odpowiedz

2

Użyłeś 3D Perlin hałasu dla terenu, dlaczego nie generować również teksturę? Ogólnie rzecz biorąc, programy takie jak Terragen, Vistapro i podobne używają wysokości do losowego wybierania zakresu kolorów z palety, modyfikują ten kolor na podstawie nachylenia i być może dodają szczegóły z mniejszych tekstur na podstawie nachylenia i wysokości. W twoim przypadku odległość może również modyfikować szczegóły. W tym przypadku hałas perliński 2d będzie działał dobrze dla tekstury szczegółów.

Czy w ogóle zmodyfikowałeś mapę wysokości? Coś takiego jak ocean byłoby trudne do osiągnięcia przy czystym 3die Perlin, ale spłaszczenie wszystkiego poniżej pewnej wysokości i zastosowanie ładnej algorytmicznej tekstury oceanu (odpowiednio dostrojony szum Perlina 2d z przezroczystością poniżej pewnego poziomu) dobrze by wyglądało.

+0

Czy możesz podać więcej informacji na temat drugiego zdania? Jakąkolwiek próbkę lub link na algorytmicznym oceanie używając hałasu perlin? głównie w jaki sposób poradzi sobie ze światłami ... – fabiopedrosa

+0

Spójrz na ten slajd. (http://www.noisemachine.com/talk1/9.html) Perlin demonstruje szmatkę, ale pomijając operacje, które wprowadza, aby oddzielić włókna, tworzyłby przyjemną wodę, zwłaszcza jeśli byłbyś ostrożny w kwestii specularity. To, co zrobił na marmurowej wazie na początku tej prezentacji, dobrze by działało na bardziej obcy ocean. Myślę, że slajd 22 jest najlepszy dla wody - tylko suma wartości absoulte serii wywołań funkcji szumu. –