임의의 수영장 또는 호수 생성


9

다각형 모양을 그릴 수있는 함수를 구현했지만 호수의 둥근 모서리를 모방 한 부드러운 모양을 생성 할 수 없었습니다. 두 개의 원을 생성하고 가장자리를 결합하려고 시도했지만 변형이나 부드러움이 충분하지 않습니다. 누구든지 이런 모양을 만들 수있는 포인터 나 아이디어가 있습니까?


베 지어 곡선을 살펴본 결과 호수를 생성 할 수있을 것으로 보입니다. 누구든지 2D 어레이에서 경험이 있습니까?
Manderin87

답변:


8

alwynd 는 Perlin 소음을 언급했습니다. 다음은 폴리곤 맵 생성기의 섬 모양을 생성 한 방법입니다.

  1. 펄린 노이즈를 생성합니다.
  2. (x, y)노이즈 비트 맵의 각 위치 에 대해 비트 맵이 2x2가되도록 정규화 된 중심으로부터의 거리를 계산합니다 (dx, dy) = (2 * x / width - 1, 2 * y / height - 1); d = sqrt(dx*dx + dy*dy).
  3. 위치 (x, y)는 섬의 일부입니다 noise[x, y] > 0.3 + 0.4*d*d. 이 단계는 중심에서 멀리 떨어진 영역을 잘라서 모양을 둥글게 만듭니다.

그러나 섬은 호수보다 조금 더 울퉁불퉁하기 때문에 이러한 모양이 마음에 드는지 확실하지 않습니다. 나는 두 개의 매직 넘버를 제어하기 위해 하단에 버튼 이있는 위의 알고리즘 데모를 작성했습니다 . 원하는 모양을 생성하는 매직 넘버 0.3과 0.4의 값이 다를 수 있습니다.


2
당신의 작업은 중요한 영감입니다, Amit. 내가 할 수 있다면 + 10k, 5 년 정도의 경이로움과 즐거움으로 블로그를 읽지 못했습니다.
엔지니어

4

Perlin Noise 알고리즘을 사용하여 호수를 생성 할 수 있습니다. 만약 하향식보기 (다각형, 당신과 같은 소리)를 사용하고 있다면 스탠포드 출신의 사람이 그렇게했습니다.

http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/


1
"스탠포드 출신의 사람"도이 사이트의 사용자입니다.
엔지니어

누가 아니에요? =) 나는 약간의 잡음 (펄린, 프랙탈)에서 시작할 수 있지만 덜 "재미있는"결과를 위해 결과를 흐리게합니다. 위대한 기사, btw-그가 강을하는 방법을 좋아합니다.
Jari Komppa 2012 년

0

한 가지 방법은 기본 다각형으로 시작하는 것입니다. 아마도 두 개의 원이 접근 할 수 있습니다.

먼저 모든 점을 무작위로 오프셋하므로 원처럼 너무 많이 보이지 않습니다. 모든 모서리에 대해 2로 나누고 중간 점을 약간의 임의의 양으로 오프셋하십시오. 필요한 세부 사항이 나올 때까지 계속하십시오.
번개 포크를 생성 할 때 수행되는 작업과 유사합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.