2006/08/17

direct3d 렌더링시 vertex 잘림, 뒷 배경이 투시되는 현상 원인 파악

다른 분이 만들어 놓은 소스를 보다 보니 제가 만든것이, 무엇이 문제였는지 알았습니다.
제가 Direct3D에 너무 많은 것을 바란 것 같았었는데, 첫째 Vertex가 잘린 현상은 VertexBuffer생성시에 정해진 VertextBuffer의 Default 최대 크기가 있는 듯 합니다. 이거를 바꿔주는 방법은 아직 못찾았고, 대신 유저가 만든 메모리 공간을 가지고 Rendering해주는 메서드가 있더군요. VetexBuffer가 더 빠르기 때문에 이쪽의 공간을 쓰고 싶은데, 이건 어떻게 해야 될지 더 찾아 봐야겠습니다.
두번째 오브젝트의 뒷면에 가려진 배경이 보이는 것은 제가 너무 Direct3D에 너무 많은 것을 바란것 같습니다. 단순히 Vertex로 물체를 만들어 놓고 사용하면 문제 없을 줄 알았는데, Direct3D는 저장된 Vertex 순서대로 그려주는 것이었습니다. 이 Vertex가 가려지는 부분이거나 시야 뒷면에 있는 것에 대한 순서 재배치나 Clipping은 프로그래머의 몪입니다. 즉 시점이 변하게 되면 Vertex의 배열 순서를 바꿔줘야 됩니다. 뭐.. 제가 아직은 무지 하기 때문에 의례 편하게 자동화 될거라 생각한게 문제였던 것 같습니다. 아직은 3D에 대해 좀더 개념을 잡아야 될거 같습니다.

[2006/08/21:추가] 계속된 삽질의 결과 Zbuffer쪽에 문제가 있었던것 같습니다. indexbuffer로 vertexbuffer의 사용양을 급감시키니 문제가 해결 되더군요.

0 Comments:

댓글 쓰기

<< Home