희곤의 블로그

컴퓨터그래픽스 15. 컴퓨터에서 색깔을 어떻게 표현할까

색깔은 어떻게 표현할까? 빛은 전자기파면서 광자(Photon)다. 우리는 전자기파 중 특정 파장의 영역만 볼 수 있다. 가시 광선이다. 특정 가시광선 파장을 갖는 단일 전자기파가 우리 눈에 들어오면, 색을 볼 수 있다. 그런데 전자기파는 항상 단일로 존재하진 않는다. 파동이기 때문에, 여러 파장 성분이 중첩되어 있을 수 있다. 여러개의 가시광선으로 중...

컴퓨터그래픽스 14. Rasterization 과정에서 픽셀을 생성하는 방법

Rasterization에서 픽셀을 어떻게 생성하는가? 먼저 Primitive 테두리에 해당하는 픽셀을 구한다. 이후 내부 픽셀들은 Fill Algorithm으로 구하여 프래그먼트를 생성한다. 선분의 시작과 끝 Vertex점의 픽셀 위치를 알고 있다 치면.. 선분은 어떻게 그리는가? 방법 (1) 시작 점을 기준으로 주변 점 8개를 (\varep...

컴퓨터그래픽스 13. 왜 NDC 좌표계가 필요할까

왜 NDC 좌표계가 필요한가? 만약 클립 공간에서 바로 스크린 공간으로 넘어간다고 가정해보자. 뷰포트 변환을 어떻게 할 진 모르겠지만, 비율이 같아도 해상도가 다르다면 다른 화면을 보게 된다. 그것을 해결하기 위해 표준화된 좌표계를 만든다. 이를 Normalized coordinate라고 한다. OpenGL의 normalized coordinate는...

컴퓨터그래픽스 6. 데이터를 받은 GPU는 어떤 작업을 하는가 - Pipeline

데이터를 받은 GPU는 무슨 작업을 하는가? Geometry State 부분에 해당한다. 데이터는 Graphics Pipeline을 타고 내려가서 프레임 버퍼에 쓰여진다. Pipeline이란 Vertex에서 Pixel이 되는 흐름이다. Pipeline 과정을 살펴보자. 위 그림에서 초록색은 프로그래머가 프로그래밍 가능한 부분이다. 노란색은 프로그...