2011-08-30 3 views
0

저는 물 표면을 시뮬레이트하기 위해 DirectX10을 사용하고 있습니다. 이제 높이 (height) (y)의 점 (x, z)에서 2D 배열 인 높이 맵을 사용하고 있습니다. 그러나 그것을 화면에 그리려면 삼각형 토폴로지를 그릴 메쉬로 바꾸거나 색인을 가져야합니다.화면에 하이트 맵을 그리는 방법은 무엇입니까?

하지만 데이터가 너무 커서 수동으로 처리 할 수 ​​없습니다. 화면에 그것을 그릴 수있는 방법이 있습니까? 구현하기 쉽기를 바랍니다. 그것을 만들 수있는 DirectX10에 포함 된 기능이 있다면, 그것은 나를위한 최고의 하나입니다.

+0

"너무 큽니까?" –

+0

Emmm ... 내가 "너무 큼"이라고 말했을 때, 필자는 필자가 직접 유형학을 타이핑 할 수 없다는 것을 의미했다. – moonkey

답변

2

두 개의 사각형으로 구성된 격자 모양의 메쉬를 만들고 모든 꼭지점을 설정하십시오. y = 0. 버텍스 셰이더 에서 높이 맵을 샘플링하고 높이 맵에 저장된 값을 버텍스의 y에 추가합니다.

This might help you.

P.S : 당신이 그것을 커버 할 영역이 너무 큰 경우 지형 LOD 기술을 살펴 (물 동일하게 작동한다)해야한다.

1

메쉬를 만들 수 있습니다. 나는 너무 거대하여 물이 흐트러져있는 물 표면에 대한 하이트 맵을 생성 할 수 있을지는 의문입니다.

왜 다이아몬드 광장을보고 있습니까? 512x512 높이 맵의 경우 점 집합을 정의한 다음 삼각형을 생성하면됩니다. 그것의 진짜로 아주 간단한.

+0

방금 ​​높이 - 맵을 생성 할 수있는 다이아몬드 - 스퀘어 (Diamond-Square) 방법이라는 메서드를 발견했습니다. 나는 512 * 512를 생성했다. 실제로 당신은 그것에서 더 큰 것을 얻을 수있다. 그러나 어떻게 그것을 망칠 수 있습니까? – moonkey

관련 문제