본문 바로가기
DirectX/[갠플] Maple Story 모작

22-08-24

by GameStudy 2022. 8. 25.

1. 오늘 배운점 / 느낀점

  - 게임 플레이 프로그래머 인턴에 지원했는데, 

    아이템/퀘스트/길드/... 구현을 주 업무로 한다고 되어있었음.

    그래서 스킬까진 안되시면 전투가 가능하므로, 아이템을 해보고자함.

  - 다른 분들은 어떻게 하셨나 하고 구글링과 서적을 뒤져봤으나,

    만족스런 자료는 못찾음..

 

2. 엔진 구현 사항

  2-1. Camera 별 랜더 타겟 생성

    - GameEngineCamera::GameEngineRenderTarget* RenderTarget 추가

      대부분의 상황에서 카메라당 랜더 타겟 한장 지정.

    - RenderTarget에는 Setting() 메서드가 있음. 

      Setting() 메서드를 호출하게 되면 "이제부터 이 RenderTarget에 그려라"라는 뜻.

    - 즉, 카메라 마다 RenderTarget이 있다는 뜻은, Setting()도 각자 카메라가 호출한다는 뜻.

      이러면 각자의 카메라에다가만 효과를 줄 수 있음. ex. 출렁이는 효과를 UI 카메라 빼고 적용 가능.

    - RenderTarget::Copy() 메서드는 호출 시에 해당 랜더 타겟의 내용을

      모두 지우고 인자의 내용으로 복사.

    - RenderTarget::Merge() 메서드는 인자의 내용을 호출 랜더 타겟의 내용으로 덮어 씌움.

    - 어찌되었든 모든 Cameras의 카메라 랜더 타겟들은 디바이스에 있는 백버퍼에 그려져야 함.

      즉, BackBuffer::Merge(플레이카메라 랜더타겟), ... 이 호출 되어야 함.

    - 랜더 타겟에 모두 그려진 뒤에 흐려지는 효과를 준다면 이를 포스트 이펙트라고 함.

      이를 위해서 RenderTarget::Effect() 함수가 추가됨. 해당 랜더 타겟에 인자 효과를 줌.

  2-2. 포스트 이펙트 구현

    - 개념에 대한 설명을 받고, 구현 중에 있음.

      모든 랜더링이 끝난 후에 효과라서 포스트 이펙트라고 불림.

 

3. 컨텐츠 구현 사항

  3-1. 인벤토리 UI 

    - 일단 띄우기 성공..

    - 기타 / 소비 탭 구현

      바보같은 실수로 하루종일 걸렸다. 

    - 인벤토리 드래그 드랍

      인벤토리 타이틀 바를 끌고 이동시킬 수 있게끔 하려함.

      근데, 마우스 위치를 반환해주는 엔진급 메서드가 조금 사용하기 어려움.

      화면 중앙에 원점이 있어서, 마우스 위치와 타이틀 바 비교가 성가심.

      해당 내용을 엔진 프로그래머분께 공유드림.

    - 이를 좀더 쉽게 처리하기 위해서 마우스 실시간 위치 GUI에 띄움.

      

'DirectX > [갠플] Maple Story 모작' 카테고리의 다른 글

22-09-02  (0) 2022.09.02
22-09-01  (0) 2022.09.01
22-08-16  (0) 2022.08.16
22-08-12  (0) 2022.08.12
22-08-10  (0) 2022.08.11

댓글