2012-02-19 4 views
1

C#에서 Marching Cubes 알고리즘을 구현할 수있었습니다. 지금까지는 구를 렌더링하는 알고리즘을 시도했습니다. 밀도 함수는 코드 작성이 매우 복잡하지 않기 때문에 쉬운 방법입니다.Voxel 기반 지형에 적합한 밀도 함수는 무엇입니까?

하지만 알고리즘을 좀 더 발전시키고 게임에 흥미로운 지형을 렌더링하고 싶습니다. 그래서 나는이 작업에 적절한 밀도 함수가 필요할 것이다. 내 머릿속에 제일 먼저 들어오는 것은 Perum Noise Volumetric입니다. 괜찮습니다.하지만 볼록한 모양이없는 지형을 찾고 있습니다. 즉, 동굴과 비슷한 지형은 아직 없습니다.

좋아, 그 간단한 높이지도 작업을 할 수 있지만 그 사실을 알고 있지만 voxel 생성 된 지형 싶습니다. 의사 코드를 구현하려면 어떤 유형의 밀도 함수가 필요합니까?

답변

2

하이트 맵을 보셀 지형으로 쉽게 변환 할 수 있습니다. 하이트 맵의 각 픽셀은 보셀 세계의 보셀 열에 해당합니다. 높이 맵의 주어진 픽셀에 대해 높이를 읽습니다. 그런 다음 해당 열의 각 보셀을 반복하고 참조 높이보다 작 으면 '솔리드'로 설정하고 참조 높이보다 큰 경우 '비어 있음'으로 설정하십시오.

여기 PolyVox 라이브러리를 사용하는 일부 sample code입니다.

+0

감사합니다. 나는 그것이 좋은 접근이라고 생각한다! – B3y0nd3r

관련 문제