희곤의 블로그

컴퓨터그래픽스 21. Stencil Buffer가 무엇인가

Stencil Buffer가 무엇인가? 특정 픽셀의 렌더링을 제한하거나, 제어할 수 있다. 이를 통해 마스킹 효과, 특수한 이미지 효과를 구현할 수 있다. Stencil Buffer는 8비트(0~255) 정수형 데이터 타입으로 구성된다. 렌더링 여부만 파악하면 1비트만 있어도 되는거 아닌가? 왜 8비트나 사용할까? 여러 비트를 다른 목적으로 동...

컴퓨터그래픽스 20. Backface Culling이 무엇인가

Backface Culling는 무엇인가? 카메라를 등지는 면은 보통 카메라에 보이지 않는다. 따라서 렌더링에서 제외하면 연산을 많이 줄일 수 있다. 어디까지를 Backface인지 그 기준은 무엇이고, Backface를 어떻게 감지할까? 만약 면의 법선 벡터를 알고 있다면, 카메라 시선 벡터와 면의 법선벡터가 나란하면 후면일 것이고, 나란하지 ...

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

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

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

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

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

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