
도입 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..

3. 점성, 열전도율, 확산계수 이론 식 유도. 마지막으로 점성, 열전도율, 확산계수의 이론식을 유도하겠습니다. 유념해야 할 점은 1절에서 강조한 바와 같이, 세 현상 모두 입자의 확산에 의해 물리량이 전달되는 과정이라는 것입니다. 점성은 운동량의 전달에 관련된 계수, 열전도율은 열전달에 관련된 계수, 확산은 입자 자체의 전달에 관련된 계수입니다. 유도는 입자의 확산에 임의의 물리량이 전달되는 식을 유도할 것이며, 그 물리량에 운동량과, 열, 입자 수를 대입하여 각각의 계수들을 유도할 것입니다. 그렇다면 입자의 확산에 의하여 물리량이 전달되는 것을 어떻게 정량적으로 표현할 수 있을까요? 이는 지난 열역학 강의자료 3 ‘압력에 관하여’에서 다뤘던 식을 그대로 사용할 수 있습니다. 압력에 쓰였던 식을 밑에 ..

2. Mean Free Path 유도 유체에서 운동량 전달, 열 전달, 입자 전달(확산) 세 현상 모두 입자의 전달을 통해 이루어지므로 입자의 운동을 이해하는 것이 중요합니다. 그 중에서도 Mean Free Path, 굳이 번역을 하자면 평균 자유 행로라고 명명하는 값을 이해하는 것이 중요합니다. 이 값은 입자가 충돌하지 않고 가는 거리의 기대 값을 가리킵니다. 또한 점성, 열전도율, 확산계수에 유도에 모두 등장하는 값이므로 먼저 이 값에 대한 이해와 정량적 유도를 해보겠습니다. 먼저 마지막 충돌이 끝난 직후를 0초라 하고, 그 후 t초가 흐를 때까지 입자가 다른 입자와 충돌하지 않을 확률을 P(t)라고 하겠습니다. 그렇다면 t+dt초까지 충돌하지 않을 확률은 P(t+dt) 가 되겠지요. 충돌은 독립 시..

1. 세 물리양의 유사성. 이번 자료에선 지난 2번의 자료에서 다룬 입자 동역학 지식을 활용하여, 점성, 열전도율, 확산계수 세가지 물리양에 관해 다루도록 하겠습니다. 이 세 물리양을 한 자료에서 다루려는 이유는 여러가지 측면에서 상당한 유사성을 갖고 있기 때문입니다. 이 세가지 수치는 기체 상태에서 모두 기체의 확산 현상에 의해서 정해집니다. 때문에 이 세 수치를 좀 더 기본적인 물리량들로 표현하면, 상당히 유사한 형태를 갖습니다. 그 수식들은 아래와 같습니다. 람다를 제외한 각 기호들이 무엇을 뜻하는 지는 아래서 유도할 때 언급하겠습니다. 람다는 Mean free path라 명명된 물리량으로 입자가 충돌하지 않고 이동하는 평균 거리입니다. 세 수치 모두 입자의 확산현상으로 인해 발생하므로 이 Mean..

1. 압력의 의미 압력이란 단어는 우리가 본격적으로 과학 공부를 하기 이전부터 굉장히 친숙한 개념입니다. 오늘의 날씨가 고기압의 영향을 받아 맑을 것이라는 일기예보 속에서도 접할 수 있으며, 비행기에 탑승할 때나 물에 깊이 잠수할 때 귀에 느껴지는 감각은 공기의 압력 차 때문이라는 설명도 들어왔을 것입니다. 그런데 이 압력이란 개념의 물리적인 실체는 무엇일까요? 압력, 글자 그대로 의미는 공기 또는 액체가 누르는 힘입니다. 다른 여러가지 개념의 오류를 일으킬 수 있는 물리수치 들의 이름(예를 들어 전압)들이 비하여 비교적 직관적이고 개념 상 잘 맞게 만든 이름이라고 생각합니다. 공기가 누르는 힘이라면, 공기가 우리 피부를 누르는 것일 까요? 앞선 자료에서 언급한 바와 같이 대기 중에 공기 입자들은 자유롭..

1. 입자 당 갖는 에너지의 양 지난자료에선 온도의 정의에 대해 논하였고, 미시적 상태(Microstate)와 거시적 상태(Macrostate)에 대하여 논하였습니다. 도출된 결론은, 결국 온도는 거시적 개념이며, 에너지의 이동의 기준이 된다는 점입니다. 또한 압력과 점성, 열전도율과 같은 개념들도 모두 거시적인 개념들로써, 입자의 운동량과 위치라는 미시적개념들 로부터 도출될 수 있습니다. 이를 위해선 볼츠만 분포라는 개념에 대한 이해가 먼저 필요합니다. 볼츠만 분포는 열역학적 평형을 이룬 시스템에서 한 입자가 갖고 있는 에너지 양을 나타내는 분포라고 할 수 있습니다. 열역학적 평형이 이루고 온도가 일정해지면 모든 입자들은 같은 양의 에너지를 갖고 있을까요? 만약 그럴 것 같다는 의견이시라면 이전 자료를..

여러가지 시뮬레이션 프로그램 개발을 목표로 하고 있으며, 이 블로그에는 그 개발 과정에서 같이 공유하고 싶은 지식을 기록, 공유하는 것에 있습니다. 가장 먼저 개발해보고 싶은 시뮬레이션 현상은 열 현상입니다. 열의 전달과정에 관한 시뮬레이션을 통해 커피의 식어가는 것과 같은 일상현상을 재현해볼 예정입니다. 프로그램 개발 과정과 열 현상이론에 관한 두 가지 내용을 모두 다루고 싶었으나, 프로그램 개발과정은 계속 변화하기 때문에 프로그램이 완성된 후에 한꺼번에 공개하도록 하겠습니다. 그럼 열 현상 이론에 관한 글은 온도(0법칙), 기체동역학, 이동 현상, 에너지(1법칙), 엔트로피(2법칙), 통계역학 이렇게 6가지 큰 주제를 통해 다루도록 하겠습니다. 대학개론 수준으로 상세하게 진행하면 너무 장황하고 지루할..

지난 시간에 정의한 벡터의 일반적인 곱셈을 통하여 쿼터니안 연산의 유도과정을 전개해보겠습니다. 이 과정이 150여년전 해밀턴의 사고 과정과 얼마나 유사할 지는 확신은 못하지만 이 것을 고민하는 와중에 폭 넓은 이해를 할 수 있었습니다. 1. 이차원 회전 삼차원 회전에 앞서서 분명 평면상에서 이차원의 회전에 대해 공부했을 것입니다. 이차원 회전은 아래 그림과 수식으로 설명 가능합니다. a벡터의 방향을 i방향으로 잡고 회전 축의 방향을 k방향으로 잡은 후 회전하는 이미지를 나타낸 것입니다. i방향으로는 cos값 만큼 줄고 j방향으로 sin값이 곱해진만큼 더해지는 것을 통해 회전이 표현됨을 볼 수 있습니다. 위 연산은 일반적인 벡터 곱 연산을 사용하여 표현 가능할 것으로 보입니다. 우선 기존 벡터 a에 cos..
- Total
- Today
- Yesterday
- 강화학습
- Unity
- NDC
- reference type
- Scriptable Render Pipeline
- 유니티
- MeshProcessing
- 값 형식
- perspective projection
- transform
- Mesh
- collision detection
- Transformation
- SRP
- Unreal
- 참조 형식
- VTK
- 최적화
- Mesh Processing
- RubiksCube
- RL
- C#
- value type
- opengl
- 루빅스큐브
- normalized device coordinate
- Bounding Volume Hierarchy
- AABB
- DirectX12
- CollisionDetection
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |