본문 바로가기

프로그래밍/맵툴(추가포트폴리오준비)

13. 브러쉬 그리기 및 지형높이측정


브러쉬 그리기는 xyz좌표가 표시되게 했던 첫번째 작업처럼 버텍스버퍼를 이용하였다. 즉 좌표와 디퓨즈값만 들어간 정점정보정도의 데이터를 토대로 그려주었는데,

머리가 나빠서 여기서부터 종이에 간략히 그려가면서 했다. 과정은 그리 어렵지않았다.
그냥 크게잡아 90도로 90도일때, 180도일때, 270도일때, 360도일때... 이렇게 생각했던것이 
x는 사인곡선을 닮은 값이고, z는 코사인곡선을 닮았구나~ 요정도로 알고 그려주면 큰 문제는 없다.
그래서 저런 브러쉬 형태의 그림이 나오게 된다.

각 정점당 그리기방식은 D3DPT_LINESTRIP형태로 하였다.


좌측 상단 붉은 숫자인 전작업에서 매번 마우스움직임에대해 픽킹처리 결과값이 나오게끔 하였는데, 그 위치를 토대로 일단 x,z를 잡아서 지형위 높이값을 추출하는 함수를 만들었다.
그동안 많이 공개된 지형관련 클래스 혹은 엔진의 지형관리를 통해서 쉽게 할 수도 있겠지만....
참.. 나는 가져다쓰는 스타일인가......ㅎ 그래도 만들어보니 뿌듯하고 좋긴하다.

getHight(float x, floatz)로 float형을 내뱉는 함수를 만들고 이리저리 정말 노트에 그림을 잔뜩그려가며 하게되었는데
음.. 만들고보니 용책과 많이 흡사하고 나름 올바른 방향으로간다고 생각하고 만족하며 함수만들기가 끝이났다.

작동은 위화면과 같이 잘된다.


와이어프레임으로도 본결과.....

어쨋든 브러쉬크기변화나 그런건 문제가 안될것이다. 이제 브러쉬에 들어있는 정점을 잡아서 곡선형태의 높낮이로 갱신시켜야 하는데.......