
도입 OpenGL의 Perspective Projection 마지막 포스트입니다. 저번 2 개의 포스트를 통해 Matrix의 형태가 아래와 같다는 것까지 왔습니다. 이제 마지막으로 알아야 할 것은 Matrix의 3번째 행입니다. 보시다시피 zc를 만드는 핵심 행입니다. Z 값이 선형 변환 하지 않는 이유 앞 포스팅에서 z 값을 선형 변환하지 않는다고 설명했었습니다. 그 이유는 메모리와 정밀도 때문이라고 했습니다. 지겹겠지만 다시 한 번 이야기하면 컴퓨터 그래픽스는 3D 공간을 2D 모니터로 표현하는 일입니다. 2D 모니터는 픽셀들로 이루어져있고 각 픽셀마다 색이 값으로 정해져서 그리면 됩니다. 불투명한 물체를 볼 경우 상대적으로 카메라와 가까운 물체가 뒤에 있는 물체를 가리므로 이러한 연산을 그래픽..

도입 오늘은 저번 포스트에 이어 OpenGL에서 Perspective Projection을 다루는 Matrix에 대해 알아보겠습니다. 이번에는 본격적으로 Matrix의 각 원소에 대해서 알아보고 저번 시간에 다루지 못했던 자세한 내용에 대해서도 알아보겠습니다. 바로 이 포스트를 읽으면 이해가 어려우니 저번 포스트를 먼저 읽으시길 바랍니다. View Frustum 가장 먼저 Matrix를 만들려면 View Frustum이 어떤 Parameter들을 통해 정의되는지 알아야 합니다. Frustum은 두 가지 데이터셋 중 하나의 형태로 정의할 수 있습니다. *여기서 데이터셋을 통해 정의될 수 있다는 말은 데이터셋의 값을 알면 유일한 형태를 만들 수 있다는 뜻입니다. 예를 들어 3개의 정점의 위치를 알면 삼각형의..

도입 오늘은 OpenGL에서 Perspective Projection을 다루는 Matrix에 대해서 알아보겠습니다. OpenGL을 기준으로 쓰였고 DirectX와 세세한 부분이 다르니 주의하시기 바랍니다. 다시 한 번 복습하자면 컴퓨터 그래픽스가 하는 일은 결국 가상의 3차원 공간을 2차원 모니터에 색으로 표현하는 일입니다. 물체는 대체로 3차원 공간의 삼각형들의 조합으로 표현이 되고 삼각형들은 3개 정점의 조합으로 표현이 됩니다. 정점은 3차원 위치, 색 등의 정보를 가지고 있습니다. 이 정점을 2차원 모니터에 표현하려면 여러 공간 변환을 거쳐야 합니다. 아래는 3차원 공간에서 2차원 모니터로 옮기는 일반적인 변환 과정입니다. 출처: https://learnopengl.com/Getting-starte..

앞선 포스팅에서 스켈레톤 애니메이션의 개념과 구현에 필요한 수학적 지식을 알아보았습니다. 이번 포스팅에서는 직접 코드를 이용해서 스켈레톤 애니메이션을 구현해보겠습니다. 우선 결과 영상은 다음과 같습니다. Windows 환경에서 개발하였고 C++, OpenGL, Assimp를 이용해서 구현했습니다. DAE 파일은 본문 맨 아래에 표기한 웹사이트에서 가져왔습니다. Overview 먼저 전체 과정을 Overview 해봅시다. 총 3개의 과정으로 이루어집니다. 첫 번째는 DAE 파일을 로드하는 부분입니다. DAE 파일에는 Mesh의 정점 정보, Animation 정보 및 정점과 Bone을 연결시켜주는 정보 등을 담고 있습니다. 두 번째는 시간에 따라 각 관절의 형태를 선택하는 부분입니다. 애니메이션은 정점에 영..

앞 포스팅에서 캐릭터의 표면을 이루는 정점들이 뼈대에 속해있고 뼈대의 움직임에 따라 정점들을 움직임으로써 애니메이션을 구현한다는 것을 이야기했습니다. 또 뼈대를 계층 구조로 만들면 팔만 움직이거나 손만 움직이거나 하는 애니메이션을 구현할 수 있다고 이야기했죠. 이론상으로는 간단해 보이지만 우리는 컴퓨터에게 규칙을 알려줘야 하기 때문에 수식을 통해 위와 같은 상황을 표현해야겠죠. 그래픽스를 해본 여러분이라면 변환(Transformation)에 대해서 알고 계실 겁니다. Transformation은 두 개의 관점으로 볼 수 있습니다. 첫 번째 관점은 한 공간 안에 있는 모든 정점들을 특정 규칙에 따라 움직이는 연산으로 생각하는 것이고 두 번째 관점은 하나의 가만히 있는 정점에 대해 다른 좌표계에서 바라보도록..
- Total
- Today
- Yesterday
- MeshProcessing
- transform
- 강화학습
- normalized device coordinate
- 유니티
- Scriptable Render Pipeline
- 값 형식
- RL
- C#
- 최적화
- AABB
- perspective projection
- Transformation
- RubiksCube
- opengl
- Bounding Volume Hierarchy
- Mesh Processing
- Mesh
- CollisionDetection
- value type
- collision detection
- Unity
- 참조 형식
- SRP
- DirectX12
- 루빅스큐브
- NDC
- VTK
- Unreal
- reference type
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |