D3D12엔진 진행상황 – 본격 3D model 렌더링

폰트와 스프라이트는 xy평면에 Projection된것으로 간주하기 때문에 Vertex구조와  constant buffer구조가 간단하다. 그래서 쉽게 처리했다.

이번에 처리한 오브젝트 타입은 캐릭터를 비롯해서 Light map을 사용하지 않는 모든 오브젝트에 범용적으로 사용하는-나는 VLMeshObject라 부른다-범용 오브젝트라 Vertex구조와 constant buffer구조가 매우 복잡하다. 덕분에 descriptor table설정하는데 상당히 시간을 보냈다.

그랬는데 렌더링이 안됨. 안될뿐 아니라 VS2015의 Graphics Debugging으로 돌려보면 d3d12에러가 발생함. 전혀 엉뚱하게 IASetVertexBuffer에서 command list에 없는 리소스를 억세스하고 있다는 괴상한 에러 메시지가 뜬다.

졸리니까 일단 잤다.

스벅에서 새벽의 그 문제를 잡으려고 surface book으로 디버깅을 하는데 데스크탑 GTX970에서 나오던 D3D에러가 Surface book에선 나오지 않음. 에러는 안나고 렌더링 되어야할 판대기는 렌더링이 안됨. 일단 에러 문제는 넘어가고 판대기 렌더링 안되는 문제를 살펴보다가 렌더링 절차에 문제가 있었음을 발견. 문제가 있는건 맞는데 왜 그게 IASetVertexBuffer()가 실패하는 식으로 에러가 떴는지는 모르겠다. 하여간 문제 해결하고 이제 렌더링 제대로 됨.

Visual Studio 2015의 그래픽 디버거 엄청나게 도움된다.이거 아니면 아직도 버그 못찾았을듯. ALT+F5입니다. 두번 기억하세요. ALT+F5…
dx12_vlemsh_rendering

 

 

 

 


답글 남기기

댓글을 게시하려면 다음의 방법 중 하나를 사용하여 로그인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중