전체 글
-
[28] - Bindable/Drawable System - 2Graphics 2021. 8. 2. 14:30
(28) C++ 3D DirectX Tutorial [Bindable / Drawable System Part 2] - YouTube planetchili/hw3d at T21.2-End (github.com) GitHub - planetchili/hw3d: C++ 3D graphics engine under Direct3D 11. Developed in a Planet Chili video tutorial series that can C++ 3D graphics engine under Direct3D 11. Developed in a Planet Chili video tutorial series that can be found on YouTube. https://youtu.be/_4FArgOX1I4 -..
-
[27] - Bindable/Drawable SystemGraphics 2021. 8. 1. 22:36
(26) C++ 3D DirectX Tutorial [Bindable / Drawable System Part 3] - YouTube planetchili (chili) (github.com) planetchili - Overview planetchili has 36 repositories available. Follow their code on GitHub. github.com hw3d/hw3d at T21.1-End · planetchili/hw3d (github.com) 개념에 대한 좋은 강의를 제공하는 채널입니다. 이번엔 어떤 개념을 배우기 보다는 Architecture에 대한 것을 배웁니다. DrawTestTriangle이라는 함수에 너무 많은 것들을 넣었으니 이 부분을 개선하려는 겁니다. 매 ..
-
[26] - Z-bufferGraphics 2021. 7. 31. 18:19
코드 hw3d/hw3d at T19-End · planetchili/hw3d (github.com) 강의 (26) C++ 3D DirectX Tutorial [3D Cube / Z-buffer] - YouTube 지금껏 그린 것은 이차원 Mesh입니다. 삼차원 Mesh로 넘어가도록 합니다. 만들어 두었던 Vertex Structure에는 z axis가 반영되어 있지 않습니다. 또한, Projection Matrix등의 개념도 도입되어 있지 않습니다. 그래서 문제를 하나씩 해결합니다. z축을 추가하고 Vertex를 큐브를 만들 수 있게 해줍니다. 그럼 Index의 값도 함께 바꿔주어야 합니다. 그리고 PerspectiveLH 행렬을 끝에 곱해주면 될 것 같습니다. 그런데 회전을 z축으로만 하면 돌고 있는지..
-
[25] - DirectXMathGraphics 2021. 7. 31. 01:09
hw3d/hw3d at T19-End · planetchili/hw3d (github.com) (26) C++ 3D DirectX Tutorial [Introduction] 0 - YouTube 큰 도움이 되는 강의입니다. D3D에는 여러 수학 기법들을 제공합니다. 보통 D3D Library에 포함이 되어 있습니다. [24]에서 행렬을 손으로 다 기입했던 것처럼 해도 큰 상관은 없습니다. 그런데 귀찮습니다. 행렬 간의 연산, 행렬과 벡터의 연산 등을 일일이 구현하기도 귀찮습니다. 그래서 선택할 수 있는 것이 DirectXMath입니다. 추가적으로 DirectXMath는 SIMD[Single Instruction Multiple Data] Optimization을 제공합니다. 가령, Row vector [..
-
[24] - Constant BufferGraphics 2021. 7. 30. 22:03
(24) C++ 3D DirectX Tutorial [Constant Buffers] - YouTube hw3d/hw3d at T17-End · planetchili/hw3d (github.com) 이번에는 Vertex들의 Transformation을 실질적으로 구현해보도록 합니다. 이전에 귀엽고 엉성한 육각형을 만들었습니다. 그리고 이전에 이론으로 어떤 Mesh의 Rotation, Translation, Scailing을 배웠습니다. 여기에 추가로 배워야 할 것이 있는데 바로 Constant Buffer라는 것입니다. 이 과정은 GPU가 아닌 CPU쪽에 처리하게 됩니다. 왜 CPU가 아닌 GPU 쪽에서 이 Transformation을 처리하게 되는 것일까요? 사실 CPU에서 모조리 처리를 할 수 있긴 ..
-
[23] - Pipeline experimentsGraphics 2021. 7. 30. 20:24
[22]에서 드디어 삼각형을 만들 수 있게 되었습니다. 기본적인 디버그, 파이프 라인의 구성까지 구현했습니다. 이번엔 여태 만든 것을 토대로 다양한 것들을 해보도록 합니다. 가장 먼저 삼각형을 하나 더 그려보는 작업을 해보도록 합니다. 이전에 Graphics.h의 DrawTestTriangle 함수를 만들 때, 정점[Vertex/Vertices]을 함께 만들었습니다. 거기에 삼각형을 하나 더 만들 것이니 다른 정점을 추가해줍니다. 될 것 같으나 막상 실행을 해보면 화면에는 똑같이 단 하나의 삼각형만이 보입니다. 출력이 되지 않는 이유 중 하나는 두 번째로 정의한 정점들은 방향이 반시계 방향이라는 점입니다. 그것부터 고쳐봅시다. 두 개의 삼각형이 보입니다. 한 가지 뿌듯한 것은 코드를 상당 Reactive..
-
-
[ Open Data Structures ] - Skiplists - 2DataStructure 2021. 7. 29. 13:49
SkiplistList 이렇게 되면 Get/Set 함수도 함께 자명해집니다. ? 어렵습니다. Add 함수가 두 개라서 헷갈릴 수 있습니다. 그런데 둘은 Parameter가 다르다는 점을 알아야 합니다. 노드를 받는 Add를 하나씩 분석해보며 이해하도록 합시다. 각 노드의 변의 길이를 결정하는 부분이 조금 헷갈렸으나 천천히 짚어보니 이해가 됐습니다. Node* u = sentinel; 은 기존 Skiplist처럼 좌상단의 노드부터 시작합니다. k는 추가하려는 노드의 높이를 나타냅니다. r = h는 Skiplist의 높이를 취합니다. 첫 번째 While문은 Skiplist의 높이를 조건으로 사용합니다. 두 번째 while 문에서 처음 j가 등장합니다. 기본적으로 j는 수직으로 이동할 때는 값이 변화하지 않습..