본문 바로가기

분류 전체보기330

16. 불러온 FBX 파일 데이터를 파일입출력을 통해 저장 불러온 FBX 파일 데이터를 파일입출력을 통해 저장 - FBX는 씬, 카메라, 조명과 같은 다양한 정보들을 포함하고 있다. - FBXLoader 클래스는 여기서 메쉬에 해당하는 것들만 추출해서 저장하는 역할을 하는데, 트리를 재귀적으로 탐색하는 구조다보니, 시간이 오래 걸린다는 단점이 있다. - 애니메이션 클립의 경우 최종 행렬을 구하는 로직이 모든 부모 좌표계로 향하는 행렬을 곱해줘서 구하는 구조이기 때문에 이 부분이 특히 시간이 오래 걸린다. - 한 번 불러오고 난 후에는 그냥 불러온 데이터를 파일입출력을 통해 바이너리로 저장하고 다음부턴 그 파일을 다시 불러오는 식으로 구현하면 빠르지 않을까? - 오랜만에 파일 입출력을 사용해서 꽤나 애먹긴 했지만, 그래도 나름 성공적으로 구현했다. void Mes.. 2023. 8. 25.
15. 맵 제작 작업 진행 맵 제작 작업 진행 - 우리가 구현해야 할 맵의 종류가 많아서, 맵에 많은 시간이 소요될 것 같아 나도 붙어서 맵 작업을 진행하기로 했다. - 맵 제작을 위해 간단한 툴을 구현했는데, IMGUI를 사용하지 않고, 창에 폰트만 띄우는 방식으로 구현했다. - 특정 오브젝트를 움직일 수 있게끔 스크립트를 작성해서 원하는 위치에 배치한 후, Tranform 정보를 그대로 코드창에 기입하는 방식. - 1번, 2번, 3번 숫자키를 통해 Scale / Rotation / Translation 각각을 수정할 수 있도록 했다. - 이 방식은 우리 팀원의 아이디어를 참고해서 제작하였다. - 툴을 사용하면 맵을 파일로 저장해야 하는 복잡성이 있으나, 이 방식을 통해 맵을 파일로 저장하지 않으면서도 툴을 사용하는 것과 같은 .. 2023. 8. 22.
14. HDR 구현 및 림 라이트 구현 HDR 구현 - HDR이란 화면 픽셀들의 평균 휘도 값을 구해서 LDR에서 표현할 수 없는 색의 범위를 표현할 수 있게 해주는 기술이다. - 우리 게임에서 HDR을 구현하는 이유는 색의 표현 범위를 넓혀서 화면 후처리 기술들을 돋보이게 하기 위함이다. - HDR은 총 세 단계의 과정을 거치는데, 그 과정은 아래와 같다. 1. 다운스케일 - 다운 스케일을 하는 이유는 이후 블러나 블룸 효과를 넣을 때 성능 향상을 위한 것도 있지만, - 가장 중요한 목적은 HDR에 꼭 필요한 평균 휘도값을 구하는 것 - DownScale4to4, DownScale1024to4, DownScale4to1 등과 같은 함수들을 통해 다운스케일을 진행하고 평균 휘도값을 계산한다. - 평균 휘도값을 구할 때 LUM_FACTOR라는 .. 2023. 8. 18.
13. 회의 및 짐벌락 문제 해결 & 몬스터 데드 셰이더 구현 회의 및 짐벌락 문제 해결 - 회의 주요 내용은 각자 얼마나 개발했는지와 앞으로의 계획에 대한 것 - 개발 진행 상황의 경우 개인적인 사정으로 인해 많이 개발을 못한 분도 계셨고, 주기적으로 모르는 부분에 대해 질문하여 빠르게 작업해나가신 분도 계셨음 - 나의 엔진 사용법에 대한 불편사항은 없었고, 네임스페이스 사용 여부에 대한 설명과 추후 회의 일정, 미팅 일정을 잡고 회의는 마무리하였음. - 회의 이후 각자 작업하는 도중 짐벌락 문제가 발생했는데, 회전 행렬을 구할 때 Z - Y - X 순으로 곱하다보니, Y축이 90도 회전한 상태에서 X축이 소실되는 짐벌락 문제가 발생했다. - 이 문제를 해결하기 위해 축을 곱하는 순서를 Z - X - Y순으로 변경해서 짐벌락 문제를 피할 수 있었다. 몬스터 데드 .. 2023. 8. 15.