본문 바로가기
게임 개발/[D2D_Portfolio] DirectX2D 포트폴리오 작업일지

3. Pallete 클래스 작업_230313

by 헛둘이 2023. 3. 13.

Pallete 클래스

- 이 클래스는 타일 맵 툴에서 사용될 녀석이다

- 마우스로 Pallete에 있는 타일을 클릭해서 화면상에 찍어 주면, 그 타일이 화면에 출력된다

- 이렇게 맵에 타일을 깔아주면, 그 타일들이 모여서 맵이 만들어진다.

- 이렇게 맵 단위로 만들게 되면 당연히 그 맵에 몬스터도 같이 추가시킬 것이기 때문에 나중에 추가할 Prefab 기능을 고려해서 작성하고 있다.

 

ImGui::ImageButton

- 이 함수는 첫 번째 인자로 ShaderResourceView를 받고, 두번째 인자로 사이즈를 받는다.

- Pallete의 전체적인 로직은 메인 함수에서 툴을 초기화할 때 특정 경로에 있는 타일들을 다 텍스쳐로 로드한 후,

- 그 텍스쳐를 Resources (리소스 매니저)에 저장함과 동시에 벡터에 담아서 Tool 클래스에 전달한다

- 그러면 Tool 클래스는 자신을 초기화하면서 이 벡터를 Pallete에게 전달해주고, Pallete는 매 업데이트 때마다 그 정보를 토대로 이미지를 출력하게 된다.

 

Raycast

- 레이캐스트는 아직 학원에서 개념만 배우고, 실습을 해보진 않았지만 이전에 인프런 dx12 강의에서 Picking을 배웠던게 도움이 많이 되었다.

- 이번에 한 게 정확히 레이캐스팅은 아니지만 실습해보면서 스크린 좌표계에서 NDC좌표계로 변환하는 과정을 디버깅해보면서 제대로 매칭되는지, 배운 내용을 잘 기억하곤 있는지 확인 겸 복기하는 경험을 할 수 있었다.

- 그리고 NDC 좌표계에서 뷰 좌표계로 넘긴 다음, 뷰 좌표계에서 다시 카메라 월드행렬의 역행렬을 곱해서 월드 좌표로 이동하는 것까지 브레이크포인트로 잡아가며 확인할 수 있었다.  

 

내일 작업해야 할 것

- 타일 클래스 생성 (타일이 가져야 할 규격 설정 등)

- 툴에서 처리해줘야 할 필수적인 기능들 추가

(들고 있는 타일을 취소하는 기능과 이미 그린 타일을 지우는 기능 등..)

 

 

댓글