아래의 동영상은 높이 값을 추출해 큐브를 높이마다 다른 위치에 둔 것이다.
그렇다면 중간 높이를 계산하는 방법을 알아보자.
지형에서 각 정점마다 높이가 다르다. 그때 저 빨간 점 vPos의 높이를 알고 싶다면 보간을 통해 계산해야 한다.
먼저 빨간 점 vPos가 있는 셀의 인덱스를 알아야 한다.
지형을 처음에 설정할 때, 원점을 중심으로 (w/2,-h/2) 떨어진 곳에서 부터 시작했기 때문에 인덱스를 찾을 때도 이것을 감안해야 한다.
인덱스를 알았다면 그 인덱스의 번호는 초록 점이 될 것이고 그것으로 파란 점, 노란 점의 높이 값을 알아낸다.
초록 점을 기준으로 빨간 점 vPos는 (0.1,0,-0.6) 만큼 떨어져 있다.
[y 값은 임의로 0이라고 했다.]
만약 x의 절대값이 z의 절대값보다 크다면 우 상단 폴리곤이고, x의 절대값이 z의 절대값보다 작으면 좌 하단 폴리곤이다.
초록 점, 노란 점, 파란 점의 높이 값을 각각 f[0],f[2],f[3]이라고 하자.
초록점으로 부터 (0.1,0,-0.6) 만큼 떨어져 있는 빨간 점 vPos의 높이는
(f[3] – f[2]) * 0.1 + (f[2] – f[0]) * -0.6 + f[0]
이다.
f[0] 로 부터 x는 0.1 만큼 떨어져 있기 때문에 가로 길이에 0.1 만큼을 곱했고, z는 -0.6만큼 떨어져 있기 때문에 -0.6을 곱했다.
'예전 > 3D' 카테고리의 다른 글
DrawPrimitive , DrawPrimitiveUP (0) | 2013.01.08 |
---|---|
[3D] 지형(Terrain) (0) | 2013.01.08 |
[3D] 픽킹 (Picking) (3) | 2013.01.08 |
[3D] 알파 블렌딩 (ALPHABLEND) (0) | 2013.01.07 |
[3D] 컬링 모드 (0) | 2013.01.07 |