Make Unreal REAL.
article thumbnail
Level 0. 배열 만들기 6

Level 0. 배열 만들기 6 스택을 활용하는 문제다. #include #include using namespace std; vector solution(vector arr) { vector answer; for (int e : arr) if (answer.empty() || answer.back() != e) answer.emplace_back(e); else answer.pop_back(); return answer.empty() ? vector{-1} : answer; }

article thumbnail
렌더링 파이프라인

이득우의 게임 수학 렌더링은 그릴 물체의 정보를 GPU에 위임해 처리하도록 하는 것이 일반적이다. CPU 내부에 설정된 워크플로우를 렌더링 파이프라인(Rendering pipeline)이라고 한다. 책의 예제인 CK소프트렌더러는 학습을 위해 4단계로 렌더링 파이프라인을 단순화시켜 구성했다. 정점 변환 게임 오브젝트에 연결된 메시의 모든 정점 정보를 정점 버퍼와 인덱스 버퍼에 직렬화하는 과정이다. 정점 처리 직렬화된 모든 정점을 모델링 행렬을 통해 로컬 공간에서 월드 공간으로 변환하는 과정이다. 픽셀화 메시를 구성하는 삼각형 폴리곤마다 픽셀화를 진행하는 과정이다. 무게 중심 좌표를 활용해 각 폴리곤에 속하는 픽셀들을 추려낸다. 픽셀 처리 폴리곤을 구성하는 각 픽셀의 최종 색상을 구하는 과정이다. 텍스처로부..

article thumbnail
속성 기본값 설정

Advanced Unreal Engine 5 Multiplayer Gameplay Programming ` 키를 누르고 콘솔 창에서 showdebug abilitysystem을 입력하면, GAS 관련 디버그 정보를 확인할 수 있다. 좌측에서 태그와 속성 값 등을 확인할 수 있다. 현재 체력과 최대 체력의 기본 값이 0으로 설정되어 있다. 속성에 기본 값을 적용할 Gameplay Effect를 생성한다. 최대 체력, 현재 체력 각각에 대해 Modifier를 추가하고 다음을 적용한다. Attribute: 알맞은 속성을 지정해준다. Modifier Op: Override Magnitude Calculation Type: Scalable Float Scalable Float Magnitude: 100.0 캐릭터..

article thumbnail
Level 0. 그림 확대

Level 0. 그림 확대 단순하게 for문으로 문자열을 계속 더하거나, vector::insert() 함수로 계속 삽입할 수도 있다. 나는 메모리 재할당을 최소화하기 위해 미리 공간을 확보해놓고 인덱스를 계산해 해결했다. #include #include #include using namespace std; vector solution(vector picture, int k) { for (string& pic : picture) { pic.resize(pic.length() * k); for (int i = pic.length(); 0 < i; i -= k) fill(pic.begin() + i - k, pic.begin() + i, pic[i / k - 1]); } picture.resize(pictu..

article thumbnail
Level 0. 무작위로 K개의 수 뽑기

Level 0. 무작위로 K개의 수 뽑기 배열의 인덱스와 값을 활용해 O(1) 시간에 중복을 확인했다. #include #include #include using namespace std; vector solution(vector arr, int k) { int* p = new int[100'001](); vector answer(k, -1); int i = 0; for (int e : arr) { if (k

article thumbnail
게임 엔진의 워크플로우

이득우의 게임 수학 게임 엔진이 제공하는 실행 흐름을 워크플로우(Workflow)라고 한다. 책의 예제인 CK소프트렌더러는 총 4단계의 워크플로우를 제시한다. 리소스 로딩 메모리에 게임 진행에 필요한 메시, 텍스처 등의 리소스를 미리 올려둔다. 씬 구축 씬에 속한 게임 오브젝트를 생성하고 트랜스폼 정보가 설정되며, 리소스 정보가 게임 오브젝트에 연결된다. 게임 로직 게임 오브젝트의 트랜스폼을 변경하는 작업이다. 렌더링 로직 게임 로직에서 완성된 씬 정보를 바탕으로 최종 화면을 그려내는 과정이다. 게임 오브젝트의 트랜스폼 정보와 오브젝트에 연결된 메시, 텍스처 등의 리소스를 활용한다. 매 프레임마다 3 -> 4 과정을 반복한다. 1. 리소스 로딩 단계 불러들인 리소스에 고유한 키를 설정한다. // 책의 예..

검색 태그