수정 및 추가된 부분먼저 이전에 원근 투영 변환 행렬에 대해서 조금 잘 못 알고있던 부분을 수정했고 투영 변환 행렬에 대한 정확한 의미?를 추가하였습니다.원근 투영 변환 행렬이란?우선 원근 투영은 인간의 눈과 비슷하게 3차원 공간의 객체를 2차원 평면에 사영(Projection)하여 화면에 나타내는 방식이다. 즉, 3D 뷰 공간(space)으로 부터 2D 뷰포트 공간에 정점들을 변환 하는 행렬을 말한다.근데, 보통 구글링을 하면 3차원 공간에서 바로 2차원 뷰포트로 가는듯이 말을하는 글들이 많은데 중간 과정이 있다.바로 아래와 같이 카메라 시야각(FOV)안에 담긴 물체들을 -1~1크기의 정육면체 안으로 변환한다.NDC좌표계로 변경된 좌표를 이제 뷰포트 매핑을 해주어 화면에 보이게 되는 것이다. 왜 변환을..
뷰 스페이스란?'뷰 행렬은 카메라의 위치와 방향을 기반으로 3D공간을 카메라의 시점으로 변환하는 행렬'이다..이 행렬이 필요한 이유는 월드 공간은 매우 넓은 영역인데 이 영역을 다 보여준다면 프레임이 쭉쭉 떨어질 것이다.그래서 가상의 카메라 개념을 넣어서 카메라를 중심으로 화면이 보이도록 하겠다라는 것이다.이렇게 하기 위해서는 '월드 공간'에 있던 여러 오브젝트들을 카메라를 중심으로하는 좌표계로 변환 시켜야 하는데이 공간을 view space라 한다. (view space로 변환 시켜주는 행렬이 View Matrix이다) 이 과정을 짧게 정리하면 카메라를 월드 시스템의 원점으로 변환하고, 카메라가 양의 Z축을 보도록 회전 시켜야 한다는 것이다. 이때 월드에 대한 관점이 바뀌지 않도록 하기 위해서는 카메라..
렌더링 파이프 라인이란?3차원으로 만들어진 모델(Texture, Material, Animation, Geometry 등등)을 2차원 스크린 좌표계까지 투영하는 과정의 프로세스를 자세하게 표현한 것입니다. 컴퓨터의 메모리에 존재하는 3D Resource가 모니터에 출력되는 과정이 렌더링 파이프 라인을 따르게 됩니다.초록색 부분은 Fixed Function(고정 단계) : 미리 정해진 특정한 연산들만 수행이 가능하고, 실행 시점에서 기능은 바꿀 수 없지만 상태 객체라는 개념을 이용하여 설정들의 변경이 가능합니다. 빨간색 부분은 Programmable 단계로 HLSL로 shader 프로그래밍이 가능한 단계. 렌더링 파이프라인의 핵심 5단계는 IA(Input Assembler) - VS(Vertex Shade..
DX물방울책을 읽으면서 간단하게 정리한 글입니다 :) Vector란? 크기와 방향을 모두 가진 수량을 가르키는 말입니다. 벡터는 힘이나 변위, 속도를 나타내는데 쓰입니다. 벡터에서 "상등"하다는 말은 두 벡터가 있을 때 오직 길이가 같고 같은 방향을 가리킬 때만 두 벡터는 상등하다고 말할 수 있습니다. DX물방울 책 P7을 보면은 "우리가 어떤 벡터를 좌표로 규정하거나 식별할 때 그 좌표는 항상 어떤 기준계에 상대적임을 뜻하기 때문이다" 해당 문장을 이해할려고 유튜브 강의나 여러 블로그를 보았습니다. 저는 위의 문장을 (2차원 평면이라 가정) "어떤 벡터공간의 기저는 유일하지 않다"는 말로 이해를 하였습니다. 여기서 "기저"라는 말이 등장하는데 기저는 "어떤 벡터공간 V의 벡터들이 선형독립이면서 벡터공간..