안녕하세요. DirectX 9.0기반의 3d 프로그래밍을 공부중인 학생입니다.
지금 원하는 맵의 크기를 입력해서 생성하는 맵툴을 만들어보려고 하는데 DrawIndexedPrimitive 함수로 맵을 그리는데 65535개(맞나?) 이상의 점은 그려지지가 않는군요.
필요한건 144*144이상의 맵인데 점의 갯수가 8만개 이상이다보니 6만여개 넘어가면 그 이상은 안그려지네요.
그래서 생각한 방법이 연속으로 두번 호출해서 한번에 반씩만 그려주는건데요..
//x : 맵의 가로길이, y:맵의 세로길이.. x,z는 짝수만 입력받습니다.
DrawIndexedPrimitive( D3DPT_TRIANGLELIST, //앞부분 절반
0, //첫번째 인덱스
0, //이번에 사용될 시작 인덱스
x*z*2, //이번에 사용될 점의 갯수
0, //이번에 사용될 인덱스의 시작 위치
x*z ); //그려질 삼각형의 수
DrawIndexedPrimitive( D3DPT_TRIANGLELIST, //나머지 뒷부분 절반
0, //첫번째 인덱스
x*z*2, //이번에 사용될 시작 인덱스
x*z*2, //이번에 사용될 점의 갯수
x*z*3 //이번에 사용될 인덱스의 시작 위치. 사각형 하나당 6개의 인덱스가 들어가므로 그 절반을 잡았습니다.
x*z ); //그려질 삼각형의 수
이렇게 실행을 시켰는데 정상적으로 나오지를 않네요...
카메라를 이동시켜서 이동하다보면 오류나면서 닫히기도 하고 맵이 깨지기도 하고,,
으읔...
제가 뭔가 잘못 생각하고 있는건지???
조언과 도움 부탁드립니다.(__)
위의 경우에는 버텍스 버퍼와 인덱스 버퍼의 내용을 알지 못하는 상태에서는 원인을 알 수가 없군요.