我一直在研究3D程序世界一段時間,並且想要開始添加洞穴系統。簡單的程序3D洞穴生成?
我想找到一個相當簡單的方法來創建一個程序化的3D洞穴系統。目前,我正在使用Perlin Noise產生我的世界,二維用於提升/細節,3D用於雕刻懸垂物和較小的洞穴,但是當談到長長的互連洞穴時,我會感到困惑。
我希望能找到更像Minecraft洞穴系統的東西。它們似乎非常連接,在幾乎任何方向上都是隨機分支的,幾乎洞穴中的任何一點都會有一個相當圓形的外觀,而且整個過程的半徑相當相等(不是最好的措詞,但不太確定該如何放置它)。
產生像我想要的洞穴最大的挑戰是我想要在飛行中產生世界。當前世界是由大塊生成的塊,從玩家所在的位置開始,並從那裏向外生成。我會不要產生任何對世界和然後挖洞穴出使用徘徊格局,細胞自動機等
一個很好的例子:
我這一代的結果確實只是空氣VS土地(-1到1)。我使用Marching Cubes來平滑地形。是的,我正在尋找一種算法來完全按照我所描述的方式創建負空間,但那正是我缺乏的地方。什麼算法會做這樣的事情? 究竟是從玩家的位置產生,並向外移動一件壞事?我不會從他們下面的大塊開始,因爲他們可能站在他們當前塊的泥土中,導致球員向上移動與「下降」。 – Mythics 2012-08-03 21:16:47
我會盡量想世界的一件事(即需要生成到您的規範的東西,該規範可包括作爲獨立的洞穴,但告知世界佈局算法,柏林噪聲由它的聲音衍生物,是的負空間的存在)。如果你正在創建一個高度圖,那麼它不可能創建凸面的東西,如洞穴,你將不得不首先轉換成某種網格。把玩家想象成一種不同的東西,一旦它被生成就可以放置在世界上。理解? – ceorron 2012-08-03 21:40:38
如果遍歷每個x/z的每個Y值,則可以對整列進行一次採樣,並隨時設置密度值。然後,用你的3d噪音抵消這些正面密度值,以便挖出你的洞穴/懸垂物等。這消除了浮動地形。無論哪種方式,我知道我可以像我那樣使用我的方法雕刻洞穴,但按照我想要的方式讓它們逃離我,因此我就在這裏。 – Mythics 2012-08-04 00:09:01