일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Unreal Engine 5
- 자료구조
- 투 포인터
- 다이나믹 프로그래밍
- 문자열
- 시뮬레이션
- c++
- 우선순위 큐
- VR
- 다익스트라
- 브루트포스
- 알고리즘
- 유니온 파인드
- XR Interaction Toolkit
- 정렬
- 스택
- 누적 합
- 백준
- 유니티
- DFS
- 백트래킹
- 수학
- 재귀
- 그리디 알고리즘
- 트리
- 구현
- Team Fortress 2
- 그래프
- ue5
- BFS
- Today
- Total
목록c++ (497)
1일1알

현실세계에서 물체가 우리의 눈에 보이는 원리는 간단하게 말하자면 광원에서 나온 빛이 물체에 닿은 후 반사되어 눈에 들어오는 것이다. 이런 빛을 가상의 공간에서 표현하려면 어떻게 해야할까? 광원이 하나가 아닐수도 있고, 광원에서는 온갖 방향으로 빛을 쏠것이고, 물체에 반사된 빛은 또 다른 물체에 반사되기도 하는 상황도 있기 때문에 이런 모든 상황에 대해 빛을 추적하여 실시간으로 계산하는 것은 매우 힘들 것이다. 그래픽스에서 선택한 방법은 최소한의 비용으로 그럴듯하게 보이는 조명 연산식을 이용하여 빛을 흉내내는 것이다. 이런 빛 연산들 중 하나인 고전적이고 간단한 방법인 Phong Reflection Model이 있다. Phong Reflection Model은 표면에서 반사되는 빛을 세가지 요소로 나누고 ..

물체의 어떤 지점에서 표면과 수직인 방향벡터를 노말 벡터라고 한다. 이 노말 벡터는 빛 연산을 할때 사용된다. 노말 벡터와 빛이 들어오는 방향을 이용해 내적 연산을 해서 해당 픽셀에 들어오는 빛의 세기를 구할 수 있다. shared_ptr _geometry; struct VertexTextureNormalData { Vec3 position = { 0, 0, 0 }; Vec2 uv = { 0, 0 }; Vec3 normal = { 0, 0, 0 }; }; void P_3Normal::Init() { _shader = make_shared(L"_3_Normal.fx"); // Texture _texture = RESOURCES->Load(L"Veigar", L"..\\Resources\\Textures\\..

이번 시간에는 메쉬에 텍스쳐를 입히고 카메라를 추가하여 카메라의 위치에 따라서 물체가 다르게 보여지도록 하는 코드를 작성한다. 텍스쳐를 입히기 위해서는 UV좌표에 대한 이해가 필요하다. UV좌표란 텍스쳐 이미지를 메쉬에 입히기 위한 텍스쳐의 2D좌표이다. 텍스쳐의 크기에 상관없이 최소 좌표는 (0,0), 최대 좌표는 (1,1)이다. 텍스쳐에서 입히고 싶은 부분을 오려서 메쉬에 적용한다고 생각하면 이해하기 수월하다. 메쉬의 정점에 uv좌표를 포함시켜서 쉐이더에 올리면 Rasterizer 단계에서 uv좌표들이 보간되고 최종적으로 PixelShader 에 보간된 uv좌표가 전달되어서 텍스쳐에서 해당 좌표의 픽셀값을 가져오게 된다. 우리는 게임을 할때 가상의 3D 게임 세상을 2D 화면으로 보고 플레이하고있다...

가상의 공간에 등장하는 3D 모델들은 사실 삼각형으로 이루어져있다. 수많은 삼각형들로 기하학적인 모형을 만들고 그 위에 텍스쳐를 입혀서 화면에 출력하는 것이 우리가 보는 3D모델의 모습이다. 가장 기본이 되는 삼각형을 화면에 띄워볼건데, 삼각형을 띄우는 작업도 처음에는 생각보다 간단하지 않다. struct VertexColorData { Vec3 position = { 0, 0, 0 }; Color color = { 0, 0, 0, 0 }; }; vector _vertices; vector _indices; void Triangle::Init() { _shader = make_shared(L"_Triangle.fx"); _vertices.resize(3); // 정점 정보 설정 _vertices[0].p..

https://www.inflearn.com/course/directx11-%EA%B2%8C%EC%9E%84%EA%B0%9C%EB%B0%9C-%EB%8F%84%EC%95%BD%EB%B0%98/dashboard [게임 프로그래머 도약반] DirectX11 입문 강의 - 인프런 게임 프로그래머 공부에 있어서 필수적인 DirectX 11 지식을 초보자들의 눈높이에 맞춰 설명하는 강의입니다., [사진][사진] [사진] 게임 개발자는 Unreal, Unity만 사용할 줄 알면 되는 거 아닌가요? 엔 www.inflearn.com 위 강의를 보며 약 2달간 DirectX11을 학습하며 이론으로만 알고있던 렌더링 파이프라인 과정들을 직접 실습해보고 다양한 렌더링 기술들에 대해 학습하였다. int WINAPI WinM..
https://www.acmicpc.net/problem/3184 3184번: 양 첫 줄에는 두 정수 R과 C가 주어지며(3 ≤ R, C ≤ 250), 각 수는 마당의 행과 열의 수를 의미한다. 다음 R개의 줄은 C개의 글자를 가진다. 이들은 마당의 구조(울타리, 양, 늑대의 위치)를 의미한다. www.acmicpc.net bfs #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using int64 = long long; int dRow[4] = { -1,0,1,0 }; int dCol[4] ..