서로 다른 바이옴에서 완전히 다른 지형함수를 이용하면서, 완벽하게 부드럽게 이어주는 방법을 떠올려냈음.
이제 산은 험하게, 평야는 평평하게 만들 수 있음.
이게 왜 기쁘냐면, 내가 1년 전에 하던게 있음. 그때도 서로 다른 바이옴에서 다른 지형함수를 이어줬는데, 결과가 이랬음.
이 당시에는 만족했지만, 지금 와서 생각해보면 엉망임.
그리고 지형의 높이가 서로 달라도 이어줄 수가 있음.
조금 많이 과장되었지만 이런식으로
높이를 바이옴 생성에 이용하는게 아니라, 바이옴 생성을 먼저하고 거기에 맞춰서 높이를 설정할수가 있게 됨.
바다나 강을 원하는 위치에 원하는 경로로 설치할수가 있게 된거임.
이제 밑의 블렌딩 맵을 만들 수 있게 되었으니, 바이옴 생성을 순전히 노이즈에 기대지 않아도 됨.
내가 원하는대로 바이옴을 배치하고, 그 위에 강이나 바다 바이옴을 알고리즘 위에서 직접 배치할 수가 있게 되었음.
가장 쉬운 예로 바이옴 경계선은 전부 강이다 라는 규칙을 가지고 만들면,
바이옴 경계선에서 강 바이옴을 넣어주고, 강 바이옴에서 높이가 낮은 지형을 배치하고, 해당 높이에 물이 오도록 만들어주면 되겠지.
구현하기 위해서는 바이옴 블렌딩 맵이라는게 필요함.
물론 그냥 노이즈로 계산해도 가능하긴 할거임. 근데 난 좀 더 바이옴 생성에 직접적인 영향을 끼치고 싶어서 이런식으로 구현했음.
이런식으로 정의된 바이옴 맵을
이런식으로 만들어줘야 함. (윗 맵은 과거에 생성한 바이옴맵이라 살짝 다름)
변수를 조정해서 블렌딩 맵에서 범위를 조정해주면 이런식으로 높이가 섞이는 속도를 정해줄 수가 있음.
하나 보너스로 얻는 이득이 있다면, 위에서 만든 블렌딩 맵을 gpu로 보내주면,
이제 정점데이터에 추가로 아무것도 안넣어도 바이옴을 정확하게 gpu가 알아낼 수 있음.
아무도 관심 없겠지만 그래도 신나서 올려봤어. 어제 하루종일 이거 생각한다고 끙끙 앓았거든.
결과가 연속적이라는 증거를 찾아야 해서 힘들었어.
쉬어야 하는데 머릿속에 있는것 때문에 쉴수가 없어.
오늘 새벽에 일어나는데 과장없이 평소의 3배정도 피곤하더라. 조만간 쓰러질지도 몰라.
댓글 1