2012-08-03 2 views
2

나는 잠시 동안 3D 절차 세계에서 일해 왔으며 동굴 시스템을 추가하기를 원합니다.간단한 절차 3D 동굴 생성?

저는 절차 적 방법으로 3D 동굴 시스템을 만드는 아주 간단한 방법을 찾고 싶습니다. 저는 현재 Perlin Noise, 2D로 표고/디테일, 돌출부와 작은 동굴을 조각 내기위한 3D를 사용하여 세계를 만들고 있습니다. 그러나 오랫동안 동굴을 연결하는 데는 어려움이 있습니다.

저는 Minecraft의 동굴 시스템과 비슷한 것을 얻고 싶습니다. 그들은 매우 연결되어있어 거의 모든 방향으로 무작위로 분기하고 동굴의 거의 모든 지점은 동등한 반지름으로 전체적으로 둥근 모양을 갖습니다.).

내가 원하는 것처럼 동굴을 생성하기위한 가장 큰 도전은 내가 세상을 빠르게 만들고 싶다는 것입니다. 현재 세계는 청크에 의해 청크에 의해 생성되며 플레이어가있는 곳에서 시작하여 거기에서 바깥쪽으로 생성됩니다. 나는 하지는 세계의 어떤과 을 생성하는 등 방황 패턴, 셀룰러 오토마타를 사용하여 동굴을 발굴 할 것

좋은 예 : 난

enter image description here

답변

0

세상을 생성 할 때 생성 알고리즘에 대해 상당한 가정을 할 것입니다.

당신은 Minecraft와 비슷한 세계를 만들고 있습니다. 이것은 세계가 블록으로 이루어져 있고 그 블록이 없다는 것이 "공기"또는 플레이어 공간을 구성하는 것임을 의미합니다. 따라서 세계에 블록을 만들 때 블록을 배치하지 않거나 반대로 동굴을 원할 때 배치 된 블록을 반대로 제거하려고합니다. 승인?

본질적으로 부정적인 공간 인 동굴을 어떻게 생성할지는 귀하에게 달려 있습니다. 그러나 귀하의 질문에 아마 당신의 대답이 거짓말을합니다. 동굴은 "매우 연결되어있어 거의 모든 방향으로 무작위로 나뉘며 동굴의 거의 모든 지점은 상당히 둥근 모양을 가지고 있으며 동등한 반지름을 가지고 있습니다." 그런 다음 그 사양을 생성하는 생성 알고리즘이 필요하며, 블록을 배치하거나 이미 배치 된 블록을 제거하거나 자신의 단어를 "추출"하는 생성 알고리즘 만 있으면됩니다.

부수적으로 생성 알고리즘을 플레이어의 위치에서 생성하는 것은 다소 바람직하지 않지만 작동한다면 가정합니다.

+0

제 세대의 결과는 실제로 공기 대 땅 (-1 대 1)입니다. 나는 마칭 큐브를 사용하여 지형을 부드럽게합니다. 네, 설명했던 것과 똑같은 부정적인 공간을 만드는 알고리즘을 찾고 있는데, 그게 제가 부족한 부분입니다. 어떤 알고리즘이 그런 일을 할 것입니까? 플레이어가있는 곳에서 정확히 생성하는 방법과 바깥으로 나쁜 것을 옮기는 방법은 무엇입니까? 나는 그들이 현재 덩어리 내에서 흙에 서있을 수 있기 때문에 그 아래의 덩어리부터 시작하지 않을 것이다. 그 결과 플레이어는 위쪽으로 움직이고 아래쪽으로 움직인다. – Mythics

+0

나는 세상을 하나의 것으로 생각하려고 노력할 것이다. (스펙은 당신의 스펙을 생성 할 필요가있다. 스펙은 분리되어 있지만 세계 배치 알고리즘, 그것의 소리에 의한 Perlin Noise의 파생물, 부정적인 공간의 존재). 당신이 높이지도를 만들고 있다면 동굴과 같은 볼록한 것들을 만들 수 없을 것입니다. 당신은 어떤 종류의 메쉬로 먼저 변환해야합니다. 플레이어가 생성되면 세계에 배치 할 수있는 다른 것으로 생각하십시오. 알다? – ceorron

+0

x/z 당 모든 Y 값을 반복 할 경우 전체 열에 대해 노이즈를 한 번 샘플링하고 이동하면서 밀도 ​​값을 설정할 수 있습니다.그런 다음 동굴/돌출부/등을 개척하기 위해 3D 노이즈로 양극 밀도 값을 상쇄하십시오. 이것은 떠있는 지형을 제거합니다. 어느 쪽이든, 나는 내가 한 것처럼 내 방법으로 동굴을 개척 할 수 있다는 것을 알지만, 내가 원하는 방식으로 그들을 얻는다면 나를 피할 수있다. 그러므로 나는 여기에있다. – Mythics