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에 띄움.
댓글