현실적인 "임의"분포가 종종 Perlin Noise을 사용하여 수행을 할 수있는 당신이 언급 한 것처럼 "덩어리"를 가진 배포판을 제공하는 데 사용되었습니다. 이는 무작위 데이터 포인트의 선형 보간 값의 여러 레이어를 합산/결합하여 작동합니다. 각 레이어 (또는 "옥타브")는 마지막 데이터 포인트보다 두 배 많은 데이터 포인트를 가지며 더 좁은 범위의 값으로 제한됩니다. 결과는 임의의 질감을 보는 "사실적인"것입니다.
다음은 Hugo Elias의 the theory behind Perlin Noise의 아름다운 데모입니다.
여기 내가 처음 발견 한 것은 Perlin Noise in C#입니다.
당신이 할 수있는 일은 펄린 노이즈 이미지를 생성하고 "임계 값"을 설정하는 것입니다. 값 위에있는 것이 모두 "켜짐"이고 그 아래의 모든 것은 "꺼짐"입니다. 당신이 끝낼 것 인 것은 불규칙하고 굉장하게 보이는 문지방 위에 물건이있는 덩어리입니다. 임계 값보다 높은 지형 기능을 원하는 위치에 지정하기 만하면됩니다.
Here is a demonstration 프로그램이 Perlin Noise 비트 맵을 생성하고 시간이 지남에 따라 차단 임계 값을 조정하는 경우. 명확한 "clumping"이 보입니다. 그것은 당신이 원하는 것일 수 있습니다.
임계 값이 높으면 그 위에있는 점이 거의없고 스파 스가 있습니다. 그러나 임계 값이 낮아짐에 따라 이러한 포인트가 (펠린 노이즈의 특성에 따라) 덩어리로 성장하고, 이러한 덩어리 중 일부는 서로 결합하여 기본적으로 매우 자연스럽고 지형과 같은 것을 만듭니다.
기본적으로 PN 기능의 최고점과 최저점을 강조하는 Perlin Noise 기능의 "난기류"를 설정하여 "덩어리 요소"또는 기능의 덩어리를 설정할 수도 있습니다. 가까이 다가 가라.
이제 임계 값을 설정할 위치는? 임계 값이 높을수록 최종지도에서 지형지 물의 비율이 낮아집니다. 임계 값이 낮을수록 비율이 높아집니다. 당신은 그들과 어울릴 수 있습니다.당신은 아마도 약간의 수학으로 주위를 둘러 보면서 정확한 백분율을 구할 수 있습니다 (값의 분포가 Normal Distribution을 따르는 것 같아요, 틀릴 수 있습니다). 조정할 때까지 조정하십시오.
EDIT 주석에서 지적했듯이 누적 막대 그래프 (임계 값 미만의지도의 % 인덱스)를 작성하여 정확한 비율을 찾을 수 있습니다. 당신에게 필요한 퍼센트를 줄 수 있습니다.
여기서 가장 멋진 점은, 습지 기능과 같은 특정 기능 (예 : 습지 기능)을 주변에 집중시키는 기능을 만들 수 있다는 것입니다. 동일한 Perlin Noise지도를 두 번 사용합니다. 두 번째로 임계 값을 낮 춥니 다. 첫 번째는 덩어리가되고 두 번째 것은 동일한 영역에서 덩어리가 될 것입니다. 그러나 덩어리가 확대됩니다 (앞서 게시 한 플래시 애니메이션 참조).
hedgerows와 같은 다른 기능의 경우 회전보다 직선으로 이동하는 경향이 큰 간단한 random walk 행을 모델링하여 페르 린 기반지도에 임의의 위치에 배치 할 수 있습니다.
샘플 여기
은 샘플 50 × 50 타일 스파 스 숲지도입니다. 덤불은 갈색이며 나무는 푸른 색 (미안)으로 어느 것이 어느 것이 명확하게 보이게됩니다.
나는 정확한 임계 값이 50 % 일치하지 않은이지도를 들면
Sparse Forest http://img688.imageshack.us/img688/7005/forestmap.png
; 나는 임계 값을 최대 값의 50 %로 설정했다. 통계적으로 이것은 매번 정확하게 정확히 50 %로 평균화됩니다. 그러나 그것은 당신의 목적을 위해 충분하지 않을 수도 있습니다. 이 작업을 수행하는 방법에 대한 이전 참고 사항을 참조하십시오. 그래서,
Marshes http://img202.imageshack.us/img202/5092/marshdemo.png
이 단지 50 × 50이다 : 여기
다시 회색과 깊은 습지, 얕은 습지와 습지 기능 (명확성을 위해, 덤불을 포함하지 않음)의 데모입니다 거기에서 유물이 있지만 깊이있는 습지에서 얕은 습지를 쉽게 자랄 수있는 방법을 볼 수 있습니다 - 동일한 Perlin 맵에서 임계 값을 조정하기 만하면됩니다. 이 중 가장 눈을 즐겁게하는 결과를주기 위해 임계점 수준에 눈을 돌 렸습니다. 그러나 자신의 목적에 따라 이전에 언급 한 것을 할 수 있습니다. 여기
같은 펄린 노이즈 맵에서 생성 된 습지지도이지만, 대신에 250x250 크기의 타일을지도 밖으로 뻗어 : 당신은
Voronoi 패턴 영역의 특정 유형에 대한 약간의 성공이있을 수 있습니다
Marshes 250x250 http://img251.imageshack.us/img251/2867/marshdemo250.png
그리드 기반 맵입니까? 귀하의 설명이나 링크에서 명확하지 않습니다. – academicRobot
예, 그리드 기반, 아마도 20x20보다 작지는 않습니다 (더 큰 가능성이 있지만 약 50x50ish?) – dlras2