Graphics

이미지 스트라이드(Image Stride)
https://learn.microsoft.com/en-us/windows/win32/medfound/image-stride 이미지(비디오 포함)가 메모리에 저장될 때, 메모리 버퍼에는 각 행(row)마다 여분의 패딩(padding) 바이트가 포함될 수도 있다. 패딩 바이트는 이미지가 메모리에 어떻게 저장되는지에 영향을 주지만, 이미지가 화면에 표시되는 형태에는 영향을 주지 않는다. 이미지는 테이블 형태(2차원 배열)로 저장된 픽셀이라고 생각할 수 있다. 이때, 스트라이트(stride)는 한 행의 시작지점에서 다음 행의 시작 지점까지의 바이트의 크기가 된다. 스트라이드는 피치(pitch)라고 부르기도 한다. 만약 패딩 바이트가 있다면 스트라이드는 이미지의 너비보다 클 것이고, 패딩이 없다면 스트라이드는 ..
1인칭 시점(First Person View) 구현하기
0. 개요컴퓨터 그래픽스에서 시점은 3차원 가상 공간을 바라보는 관점이라고 볼 수 있다. 3차원 공간에 있는 어떤 물체를 2차원 스크린에 표현하기 위해서 일반적으로 model, view, projection 행렬을 곱해주는데, 그 이유는 다음과 같다.물체는 자신의 원점(0.0, 0.0, 0.0)을 기준으로 버텍스 정보를 가지고 있다.(모델 좌표계)이 버텍스 정보에 model 행렬을 곱해주면 3차원 가상 공간의 월드 좌표로 변환이 된다.(모델 좌표계 -> 월드 좌표계 변환)월드 좌표에 view 행렬을 곱해주면 뷰 좌표로 변환이 된다.(월드 좌표계 -> 뷰 좌표계)뷰 좌표에 projection 행렬을 곱해주면 스크린 좌표로 변환이 된다.(뷰 좌표계 -> 스크린 좌표계)이 중에서 월드 좌표에 view 행렬을 ..

yaw, pitch, roll
https://en.wikipedia.org/wiki/Aircraft_principal_axes 3차원 공간에 있는 물체를 회전시키는 경우, x축이나 y축처럼 특정 좌표축을 기준으로 회전한다고 표현하는 것도 가능하지만 yaw, pitch, roll을 기준으로 회전한다고 표현하기도 한다. yaw, pitch, roll은 비행중인 항공기가 3차원 공간에서 비행기의 축을 중심으로 자유롭게 회전하는 것으로부터 나온 이름이다.1. yaw yaw는 항공기가 좌우 방향으로 회전하는 것을 의미한다. 컴퓨터 그래픽스에서는 y축을 기준으로 회전하는 것과 동일하다.2. pitch pitch는 항공기가 상하 방향으로 회전하는 것을 의미한다. 컴퓨터 그래픽스에서는 x축을 기준으로 회전하는 것과 동일하다.3. roll roll은..

림(rim) 효과
레퍼런스: https://honglab.co.kr/courses/graphicspt2 림 효과(혹은 림 라이팅(lighting))은 3차원 공간에 있는 물체의 가장자리에 특정 색이나 빛을 강조하여 돋보이게 하는 기법을 의미한다. 림 효과가 적용된 물체는 보다 입체적으로 보이며, 배경과 잘 구분되는 특징을 가진다.림 효과를 적용하는 방법은 비교적 간단하다. 림 효과가 적용된 물체는 가장자리에 특정 색이 강조된다. 이는 곧 물체를 바라보는 관찰자의 시점과 물체의 노멀 벡터 사이의 각을 통해 림 효과를 통해 강조할 부분을 결정할 수 있다는 것을 의미한다. 노멀 벡터 $n$은 물체의 가장자리로 갈수록 물체의 버텍스에서 관찰자의 시점으로 향하는 벡터 $e$와 이루는 각이 커질 것이다. 이는 곧 $n$과 $e$를 ..