그림을 픽셀에 담기
원을 ‘중심과 반지름’으로 기억할 수도 있고, 작은 칸마다 색을 기록해 기억할 수도 있습니다. 벡터 표현은 모양의 규칙을, 래스터 표현은 픽셀값을 저장합니다.
화면의 작은 칸
픽셀은 이미지 격자의 한 칸입니다. RGB는 빨강, 초록, 파랑 성분으로 색을 나타냅니다. 알파는 다른 색과 합성할 때 쓰는 불투명도 정보입니다. 해상도는 가로와 세로 픽셀 수이며, 프레임 버퍼는 한 화면을 그리는 데 쓰는 색 등의 값을 저장합니다.
width, height = 100, 60
bytes_per_pixel = 4
print(width * height * bytes_per_pixel)
100×60 이미지에서 RGBA 성분을 각각 1바이트로 담으면 순수 색 데이터는 24000바이트입니다. 파일의 압축률, 헤더, 깊이 버퍼 같은 추가 데이터는 포함하지 않은 계산입니다.
벡터도 화면에서는 픽셀이 됩니다
벡터 원은 크기를 바꿔도 원의 수학적 모양을 다시 계산할 수 있습니다. 하지만 픽셀 화면에 표시할 때는 어느 칸이 원에 포함되는지 정해야 합니다. 이때 가장자리가 계단처럼 보일 수 있습니다. 벡터 파일이라는 이유만으로 화면의 계단 현상이 자동으로 없어지지는 않습니다.
3차원 그래픽스도 좌표로 표현한 물체를 화면의 픽셀 값으로 바꾸는 과정을 거칩니다. 이후 수업에서는 이 변환의 각 단계를 살펴봅니다.
확인 문제
가로와 세로 해상도를 각각 2배로 늘리면 같은 색 형식의 버퍼 크기는 몇 배가 될까요?
해설 보기
픽셀 수가 2 × 2로 늘어 4배입니다. 한쪽 길이만 보고 2배라고 계산하면 안 됩니다. 픽셀마다 처리하는 조명이나 깊이 검사 작업도 더 많아질 수 있습니다.