Obecnie używam 3D Perlin Noise do generowania losowego terenu w połączeniu z Marching Cubes.
Mój problem wydaje się polegać na skalowaniu funkcji hałasu, aby uzyskać rozsądne wysokości w moim terenie. Jeśli używana jest tylko jedna oktawa, wszystkie punkty w odniesieniu do szumu są oczywiście interpolowane, co powoduje dość płynne dane. Jednak, aby uzyskać zwisy / jaskinie / postrzępiony teren, muszę użyć wielu oktaw o różnych amplitudach i / lub skalować otrzymane wartości do mojej „maksymalnej” wysokości, jakiej chcę na mapie.
Być może czegoś mi brakuje, ale używając marszowych kostek z hałasem perlin 3D, regularnie otrzymuję pływające fragmenty terenu.
Jakieś pomysły na to, jak to naprawić lub czy istnieją inne funkcje szumowe, których mogę użyć, aby uzyskać wyniki takie jak opisuję? Chcę wzgórza / doliny / góry / jeziora / itp. Nie ma potrzeby używania pływających bitów oddzielonych od reszty mapy. Wierzę, że jest to podobny problem do tego, co ma Minecraft, gdy ma teren, który po prostu unosi się na niebie od czasu do czasu po pokoleniu.
Dzięki za wszelką pomoc, Mythics
może być za późno, by odpowiedzieć, ale zacząłem teraz od tego generowania wokseli z Perlin Noise i znalazłem sposób na stworzenie terenu bez tych pływających elementów. Myślę, że to może ci pomóc. Aby utworzyć teren, najpierw generuję mapę wysokości, a następnie czytam piksele z tej mapy wysokości. Teraz nadchodzi interesująca część, czytam wartość „jasności” (w rzeczywistości jest to skala szarości) każdego piksela na tej mapie wysokości i która daje mi wysokość dla tej konkretnej części mapy, a następnie, aby utworzyć teren, zakładam, że ta mapa wysokości jest mój teren widziany z góry, więc jeśli wartość skali szarości piksela (po zmapowaniu do mojego terenu „maxHeight”) na tej mapie wysokości wynosi, powiedzmy 30, oznacza to, że w tym konkretnym punkcie mojego terenu wygeneruję tylko 30 wokseli na osi y, co daje mi teren bez części pływających. Jeśli chcesz jaskinie i tak dalej, możesz zastosować kolejny hałas na oryginale (pod powierzchnią), aby je utworzyć. Mam nadzieję, że to Ci odpowiada.
źródło