래스터 장치는 화소 단위로 디스플레이되므로 화소보다 작은 단위로 분할할 수는 없다. 즉, 각 인점의 색이 합쳐져 하나의 화소 내부 색은 모두 완전히 동일한 밝기로 빛난다고 간주 해야 한다. 화면의 가로 방향 화소를 따라 진행되는 선을 주사선(스캔 라인) 이라고 한다. 입력 장치인 스캐너에서 스캔은 영상을 읽는다는 의미지만 이 경우에서 스캔은 전자빔을 화면 화소를 읽어가면서 빔을 쏜다는 의미이다.
래스터 장치의 전자총에서 발사되는 빔의 움직임은 왼쪽에서 오른쪽으로 진행되며 위에서 아래로 일정한 순서에 따라서 움직인다. 이렇게 움직이면서 지나가는 화소마다 해당 밝기에 비례하는 세기로 빔을 쏘게 된다. 영상은 그 영상을 구성하는 화소들의 집합으로 표현되는데 주사선은 화면에 영상을 뿌리기 위해서 화소 색상에 해당하는 세기로 빔을 쏴서 화소 내부의 인점을 밝혀야 한다.
1번 주사선의 끝에서 3번 주사선의 처음으로 되돌아가는 것을 수평 귀환(Horizontal Retrace)이라고 한다. 같은 맥락에서 3번 주사선의 끝에서 5번 주사선의 처음으로 되돌아가는 것을 수직 귀환(Vertical Retrace) 이라 한다. 수평 귀환이나 수직 귀환 도중에는 주사 빔의 방향만 이동할 뿐이지 실제로 빔을 쏘지는 않는다.
이처럼 주사선이 화면을 반쪽씩 교대로 그려내는 것을 인터레이싱(비월주사)이라고 한다. 인터레이싱 모델은 보통 저가형에 해당한다. 전체 화면을 초당 30번 재생하도록 요구될 때 인터레이싱 방식에서는 반쪽 화면을 60번 주사한다. (60Hz).
반면 논-인터레이싱(Non-Interlacing) 방식에서는 실제로 전체 화면을 30번 주사한다. (30Hz). 전체 화면을 30번 주사하는 것과 반쪽 화면을 60번 주사하는 것은 하드웨어로서는 비슷한 부담이다.
인터레이싱 방식의 중요성은 재생 속도에 있다. 논-인터레이싱을 사용하면 주사선 1, 2, 3식으로 모든 주사선을 이어서 주사하며 내려오기 때문에 화면 재생 속도가 느리다. 결국 첫 화면과 둘째 화면 사이의 시간 간격이 길어져 화면에 깜빡거림(Flickering)이 발생한다. 반면 인터레이싱 방식에서는 화면 내용은 반쪽 영상에 불과하지만 두 배 속도로 뿌려지기 때문에 화면에서 권장하는 표준 주사 방식은 '인터레이싱 방식'이다. 계단 현상을 제거하는 형식은 안티 앨리어싱이라고 한다.
래스터 장치의 기본 구조
https://youtu.be/-6YUVwGQvzM?si=knVtGb4h7ROmldxn&t=73
위 영상에서 1분 13초부터 카메라가 회전할 때 멀찍이 보이는 배의 삭구가 뭔가 자글거리는 듯한 모습을 볼 수 있다.
래스터 장치에서의 화면은 사각형 모양의 화소 단위로 표현되는데 하나의 화소는 일정 크기의 면적을 가지고 있기 때문에 그 화소가 밝혀진다는 것은 화소 면적 전체가 완전히 동일한 색으로 밝혀진다는 것을 말한다. 따라서 화소 크기 이하로 분할하여 동일한 화소의 일부는 노란색, 일부는 녹색처럼 밝힐 수는 없다.
래스터 그래픽 디스플레이의 단점은 계단 현상이 발생할 수 있다.
선은 기하학적으로 면적이 없다고 정의되지만 화면에 표현되기 위해서는 그 선을 나타내는 데 필요한 화소를 칠해야 한다. 이러한 제약 때문에 똑바로 그은 선 역시 거칠게 표현되는 것이다. 래스터 장치에서 일어나는 이러한 현상을 에일리어스(Alias)라 한다.
래스터 장치에서는 스캔 변환이 필수이다. 물체의 수학적 표현으로부터 화면 화소 단위의 표현으로 변환하는 과정을 스캔 변환(Scan Conversion) 또는 래스터 변환(Rasterization)이라 한다. 스캔 변환 알고리즘은 이런 경우에 어떤 화소를 밝혀야 하는지, 또 밝히자면 어느 정도 밝기를 줄 것인지 등에 관련된 것이다.
'프로그래밍/그래픽스' 카테고리의 다른 글
[그래픽스]래스터 그래픽 장치 - 컬러모니터의 구조 (0) | 2023.08.31 |
---|---|
컴퓨터그래픽스 - 셰이더(Shader) (0) | 2023.08.28 |
컴퓨터그래픽스(Computer Graphic : CG) - 계산 기하학, 컴퓨터 애니메이션, 렌더링, 실시간 렌더링 (0) | 2023.08.28 |
OpenGL(Open Graphics Library) (0) | 2023.08.27 |
JAVA (0) | 2023.08.24 |