Make Unreal REAL.
article thumbnail
운영체제 소개

쉽게 배우는 운영체제 CPU의 성능이 낮고 메모리 크기도 작은 시스템에 내장하도록 만든 운영체제를 임베디드 운영체제(Embedded operating system)라고 한다. 운영체제란, 사용자에게 편리한 인터페이스(Interface) 환경을 제공하고, 컴퓨터 자원(Computer resource)을 효율적으로 관리하고 활용할 수 있도록 하는 소프트웨어다. 운영체제는 응용 프로그램(Application program)을 통한 성능 향상 뿐만 아니라, 자원 관리(Resource management)라는 중요한 역할도 한다. 응용 프로그램은 컴퓨터 자원을 직접 사용할 수 없고, 운영체제를 통해서만 사용할 수 있다. 자원 관리는 응용 프로그램에 컴퓨터 자원을 할당하고 회수하는 일이다. 응용 프로그램이 컴퓨터 ..

article thumbnail
Level 2. 줄 서는 방법

Level 2. 줄 서는 방법 next_permutation() 함수로 간단하게 해결하면 시간 초과가 발생한다. // 이 풀이는 시간 초과가 발생한다. #include #include #include #include using namespace std; vector solution(int n, long long k) { vector answer(n); iota(answer.begin(), answer.end(), 1); while (--k) next_permutation(answer.begin(), answer.end()); return answer; } #include #include #include using namespace std; long long factorial(int n) { return (n

article thumbnail
완독 및 후기

이득우의 게임 수학 총 쪽수: 652p 공부 기간: 2023.04.03 - 2023.06.11 (70일) 평점: ★★★★☆ 좋은 내용들로 구성되어 있으나, 삼각함수나 행렬에 대한 지식이 부족한 사람에게는 꽤 어렵게 느껴질 수 있는 책이라고 생각한다. 물론 수학 개념들이 생략되어 있지 않고 모두 설명되어 있긴 하나, 그래도 쉬운 내용들은 아니다. 게임 엔진을 통해 게임을 만들 때 필요한 수학보다는 게임 엔진 자체를 구성하는 개념들에 관한 책이다. 책에서 다음과 같은 내용들을 배웠다. 벡터의 결합과 기저 삼각함수와 그 역함수 극좌표계 행렬과 역행렬 아핀 공간과 아핀 결합 브레젠험 알고리즘 코헨-서덜랜드 라인 클리핑 알고리즘 내적과 외적의 활용 램버시안 반사율 모델 메시 텍스처 매핑과 UV 모델링 행렬의 설계..

article thumbnail
Level 2. 하노이의 탑

Level 2. 하노이의 탑 유명하고 전형적인 하노이의 탑 알고리즘이다. 3개를 A에서 B를 거쳐 C로 옮긴다고 할 때, A에 있는 2개를 C를 거쳐 B로 옮긴다. A에 남은 1개를 C로 옮긴다. 1단계에서 B로 옮겼던 2개를 A를 거쳐 C로 옮긴다. #include #include #include using namespace std; vector solution(int n, int from, int through, int to) { if (n == 1) return {{from, to}}; vector result = solution(n - 1, from, to, through); result.emplace_back(vector{from, to}); vector t = solution(n - 1, th..

article thumbnail
캐릭터 메시와 애니메이션

이득우의 게임 수학 트랜스폼의 계층 구조 시스템이 완성됐으니, 이를 기반으로 계층 구조를 이루는 캐릭터를 직접 제작해본다. 실습해 볼 캐릭터의 본 구조는 다음과 같다. 책의 예제인 CK소프트렌더러에서 캐릭터 메시를 생성하고 계층 구조로 본을 생성한 후, 리깅을 진행해 스킨드 메시를 완성하는 부분은 다음과 같다. 하나의 정점에 하나의 본만 연결하는 단순한 구조로 리깅한다. // 책의 예제인 CK소프트렌더러에서 캐릭터 메시를 선언하고 데이터를 설정하는 부분 bool GameEngine::LoadResources() { // 각 부위의 직육면체 크기를 지정 constexpr Vector3 headSize(0.5f, 0.5f, 0.5f); constexpr Vector3 bodySize(0.5f, 0.75f, ..

article thumbnail
Level 2. 모음사전

Level 2. 모음사전 #include using namespace std; bool rDFS(string s, string& word, int& answer) { const static string alphabets[] = {"A", "E", "I", "O", "U"}; ++answer; if (s == word) return true; else if (s.length() == 5) return false; for (const string& alpha : alphabets) if (rDFS(s + alpha, word, answer)) return true; return false; } int solution(string word) { int answer = 0; const string alphabe..

검색 태그