본문 바로가기

분류 전체보기564

[Programmers] (2022 KAKAO BLIND RECRUITMENT) Lv 2. 주차 요금 계산 https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr #include #include #include #include #include using namespace std; int time_diff(string in, string out) { int h1 = stoi(in.substr(0, 2)); int m1 = stoi(in.substr(3, 2)); int h2 = stoi(out.substr(0, 2)); int m2 = stoi(out.sub.. 2023. 7. 7.
[DirectX12 - Shadow Mapping] Chapter 01. Shadow Mapping GitHub : https://github.com/developeSHG/DirectX12-Shadow-Mapping/commits/main GitHub - developeSHG/DirectX12-Shadow-Mapping: DirectX12 - Shadow Mapping DirectX12 - Shadow Mapping. Contribute to developeSHG/DirectX12-Shadow-Mapping development by creating an account on GitHub. github.com 물체가 다른 물체의 위치에 의해서 그림자 영향을 받는 것. 여태까지 그리는 방식은 물체마다 개별적으로 그려지기 때문에 다른 물체가 내 앞에 있는지 판단할 길이 없었다. 빛을 기준으로 앞에 물체가 있.. 2023. 7. 7.
[Programmers] (힙(Heap)) Lv 2. 더 맵게 https://school.programmers.co.kr/learn/courses/30/lessons/42626 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr #include #include #include using namespace std;int solution(vector scoville, int K) { int answer = 0; priority_queue, greater> q; for (const auto& e : scoville) q.push(e); int first, second, result; while (true.. 2023. 7. 4.
[DirectX12 - Particle] Chapter 03. Instancing GitHub : https://github.com/developeSHG/DirectX12-Particle/commits/03.Instancing GitHub - developeSHG/DirectX12-Particle: DirectX12 - Particle DirectX12 - Particle. Contribute to developeSHG/DirectX12-Particle development by creating an account on GitHub. github.com 파티클 시스템을 다루면서 draw call 부하를 줄이기 위해 인스턴싱 이란 기법을 사용했었다. 지금까지 렌더링 파이프라인이 동작하는 원리를 살펴보면, Input Assembler 단계에서 Vertex buffer, Index Buff.. 2023. 7. 3.
[DirectX12 - Particle] Chapter 02. Particle System GitHub : https://github.com/developeSHG/DirectX12-Particle/commits/02.Particle_System GitHub - developeSHG/DirectX12-Particle: DirectX12 - Particle DirectX12 - Particle. Contribute to developeSHG/DirectX12-Particle development by creating an account on GitHub. github.com 만약 파티클을 그냥 기존에 했던 렌더링 파이프라인 방식대 렌더링한다면, 그 개수만큼 많은 부하를 잡아먹게 될 것이다. 파티클 자체가 어떤 특수 효과를 내기 위해서 사용하는 거지만, 사실 인게임적인 관점에서 볼 때 중요한 요소라.. 2023. 7. 3.
[Programmers] (2018 KAKAO BLIND RECRUITMENT) Lv 2. [3차] n진수 게임 https://school.programmers.co.kr/learn/courses/30/lessons/17687 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr #include #include #include using namespace std; string to_bit(int num, const int& bit) { string ans = ""; string hex[] = { "A", "B", "C", "D", "E", "F" }; while (num > 0) { const auto& val = num % bit; ans += (val >= 10) ? .. 2023. 7. 3.
[Programmers] (2018 KAKAO BLIND RECRUITMENT) Lv 2. [3차] 압축 https://school.programmers.co.kr/learn/courses/30/lessons/17684 코딩테스트 연습 - [3차] 압축 TOBEORNOTTOBEORTOBEORNOT [20, 15, 2, 5, 15, 18, 14, 15, 20, 27, 29, 31, 36, 30, 32, 34] school.programmers.co.kr #include #include #include using namespace std; #define ALPHABET 64 vector solution(string msg) { vector answer; unordered_map m; for (size_t i = 0; i < msg.size();) { int j = 2; while (m.count(msg.subs.. 2023. 7. 3.
[DirectX12 - Quaternion] Chapter 01. 오일러 각 쿼터니언은 4원수 유니티에서 오일러 방식으로 보여줌 오일러 방식이란, x축 y축 z축 하나씩 가지고 있고, 호도법이 아닌 우리가 일반적으로 각도로 설정한 것을 얘기한다. 그렇게 각각 회전하는 각도를 입력해서 조합한 다음, 물체를 회전시킬수있다 라는게 오일러 방식의 아이디어다. 회전은 우리가 오일러방식의 회전을 사용하고있었는데 여기엔 문제가있다. 각기 회전들이 결합할 때 문제가 생긴다 만약 x축 각도를 90으로 해놓고, y축 회전을 할 시, y축회전방향이 아닌 z축회전방향으로 회전을 한다. 이런걸 짐벌락 현상이라 한다. = 세 축중 하나의 축이 먹통이 되는 현상 회전은 이동과 다르게 하나의 축으로 회전을 할 때, 다른축도 영향을 받아서 같이 회전을 하게 되는데 운이 안좋게도 어떤 두축이 겹치는 상황이 발생.. 2023. 7. 1.
[DirectX12 - Vector & Matrix] Chapter 06. Projection, Screen 변환 행렬 PROJECTION SPACE (HOMEGENEOUS CLIP SPACE) 투영행렬 3D화면 좌표계를 2D화면 좌표계로 만드는 변환 행렬 원근투영 near(n) 와 far(f) 가 있다. 그 안에 들어가는 것들만 보여준다. 투영 좌표게는 정사각형 비율은 1로 들어간다. x와 y는 최소 -1,-1 좌표에서 최대 1,1, 좌표다 그래서 뷰에서 투영 좌표계로 들어가려면 어떤 값이던 간에 적절히 비율을 따져서 연산하게 돼서 -1 ~ 1 사이의 점으로 표현이 돼서 나중에 화면의 비율을 이용해서 화면에 물체를 그려준다고 생각하면 된다. 투영좌표계에서 x와 y는 -1에서 1 사이의 범위를 표현한다했는데, 깊이(z)는 0 ~ 1까지를 표현한다 또 이 과정에선 최종적으로 물체를 그릴지말지 체크하는 DSV(뎁스 스텐실 뷰.. 2023. 6. 30.
[DirectX12 - Vector & Matrix] Chapter 05. World, View 변환 행렬 로컬 스페이스 -> 월드 스페이스 -> 뷰 스페이스 투영 - 카메라에 찍힌 모든 물체들을 비율에 맞춰 화면안에다가 맞게 찍히게 변화하는 단계 화면안에 들어오는 것들의 범위를 Clip Space 라 한다. 마지막 단계로 스크린에다가 그려주는 것을 뷰포트 라고 한다. 해상도마다 비율이 다르니 비율에 맞춰주는 작업들. 로컬스페이스 -x,y,z 쪽을 순서대로 right, up, look 벡터라고 한다. 로컬스페이스에서 월드 스페이스로 갈려며 월드행렬을 해주면 된다. 반대로 월드스페이스에서 로컬 스페이스로 갈려며 월드역행렬을 해주면 된다. 월드행렬 (x, y, z, 1) [right.x right.y right.z] = (X, Y, Z, 1) 2023. 6. 30.