다이렉트x12 2

Detail Object Map - 지형 위에 풀숲 (2)

이전 포스트에서 디테일 오브젝트를 위한 클래스를 선언했다. 이제 정의를 작성해야하는데, 해야할 코딩은 렌더링 부분과 디테일 맵과 텍스쳐를 읽어 리소스를 준비하는 것이 되겠다. 우선 바이너리로 저장한 디테일 맵을 읽는 것과 텍스쳐를 로드하는 것은 생성자에서 하기로 한다. 생성자의 시그니쳐는 다음과 같다. CDetailObject(ID3D12Device* pd3dDevice, ID3D12GraphicsCommandList* pd3dCommandList, std::shared_ptr pShader, void* pContext) 생성자는 다이렉트12 디바이스와 커맨드 리스트, 그리고 셰이더에 대한 포인터와 void* 형의 pContext를 받는다. 여기서 pContext로는 터레인의 포인터를 넘겨줄 것이다. 터..

Rampage 2023.07.29

Detail Object Map - 지형 위에 풀숲 (1)

저번에 이어서 오늘의 주제는 저 오른쪽 위에 보이는 풀숲을 그리는 것이다. 지금까지 만든 지형은 단순히 땅만 있는 상태인데, 실제 지형은 그렇게 단순하지 않기에 여러 디테일을 추가해줄 필요가 있다. 이런 디테일의 대표적인 것 중 하나가 풀숲이다. 풀숲 이외에도 나무나 돌맹이 등도 포함될 수 있으나 이번에는 풀숲만을 추가해볼 것이다.(위 스크린 샷에는 돌멩이도 보이긴 하는데, 이는 오브젝트가 아니고 텍스쳐에 포함된 녀석이다.) 그러면 어떻게 풀숲을 구성하느냐가 이제 관건인데, 상용 엔진에 경우 디테일과 관련된 여러 툴을 제공하여 이 툴을 이용해 터레인 위에 마우스 클릭 앤 드래그를 하면 원하는 위치에 풀이나 나무, 돌 등을 그릴 수 있다. 하지만 당연히 풀숲 몇개 그리기 위해 이런 툴을 만들기엔 작업량도 ..

Rampage 2023.07.24