일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- C언어
- Array
- 운영체제
- map
- 수광 소자
- Deque
- Stack
- 아두이노 컴파일러
- Arduino
- stl
- directx
- 컴퓨터 그래픽스
- Algorithm
- c++
- list
- Visual Micro
- arduino compiler
- html
- priority_queue
- 라인트레이서
- WinAPI
- vector
- set
- 통계학
- queue
- LineTracer
- 자료구조
- 아두이노
- 시스템프로그래밍
- 아두이노 소스
- Today
- Total
Kim's Programming
2차원 그래픽스 문자와 색상 표현 본문
문자의 표현
폰트(Font)의 종류
컴퓨터그래픽스에서 사용되고 있는 폰트에는 래스터 폰트(좌) 형식과 벡터 폰트(우) 형식이 있습니다.
래스터 폰트 (Raster Font 또는 Bitmap Font)는 좌측처럼 일일이 픽셀마다 처리를 해서 글자를 만드는 것입니다. 래스터 폰트 방식은 메모리 내에서 비트맵에 대한 연산으로 처리하므로 출력속도가 빠르고 글자의 설계과정은 이미지 편집과정과 비슷하여 제작도 간단하지만 확대 했을 때 계단현상(Aliasing)이 일어납니다. 또 회전, 밀림들의 기하변환이 매우 어렵습니다.
벡터 폰트(Vector Font 또는 Outline Font)는 오른쪽 처럼 글자의 윤곽선을 여러 부분으로 나누어 직선, 원호, 곡선 등으로 표현하고 이들의 제어점을 저장하여 글자를 표현합니다. 벡터 폰트는 확대 또는 축소를 하여도 출력 품질이 저하되지 않습니다(Aliansing 현상이 없습니다.) 또한 회전, 밀림 등의 기하변환이 용이 하지만 기하변환을 위한 계산 시간이 증가한다는 특징이 있습니다.
문자와 텍스트의 속성
슈퍼샘플링(Super Sampling) 기법
앨리어싱을 제거할 때 가장 간단히 처리할 수 있는 방법은 단순히 nxn배로 해상도를 높여서 표현하는 방법이 있습니다. 원래 해상도에서 그려야 하는 픽셀의 명암값을 결정합니다. 원래 해상도에서 픽셀의 영역에 포함되는 고해상도 픽셀 중 그림에 포함된 작은 픽셀의 개수에 비례하여 명암 값을 계산합니다.
영역 샘플링(Area Sampling) 기법
영역 샘플링 기법은 다각형의 경계선이 지나는 (테두리에 걸치는 픽셀)에 대해여 얼마나 다각형에 표현되냐를 계산하여 그 비율에 따라 명암을 결정하여 앨리언싱을 합니다. 위의 오른쪽 사진에서 양 끝의 y좌표는 다음과 같이 되게 됩니다.
계산의 결과는 1과 0 사이 이므로 그 비율에 따라 색을 입혀주면 됩니다.
비트 수 |
표현가능 색상 수 |
비고 |
1 |
2^1=2 |
흑백 |
4 |
2^4=16 |
팔레트 사용 |
8 |
2^8=256 |
팔레트 사용 |
16 |
2^16=65536 |
하이컬러(R:G:B = 5:5:5) |
24 |
2^24=16777216 |
트루컬러(R:G:R = 8:8:8) |
32 |
2^24=16777216 + 알파 채널 8비트 |
트루컬러 + 알파 채널 |
RGB에서는 프레임 버퍼의 메로리의 크기에 따라서 표현할 수 있는 양이 정해집니다. 비트가 k가 사용될 때 2^k개의 색상을 이용할 수 있습니다. 이중 256색 이하의 색상을 이용할 때는 사용자가 필요한 색깔인 인덱스 컬러를 사용하게됩니다. 그리고 사람의 눈이 인지할 수 있는 색깔은 1600만개가 전부이기 때문에 24비트를 트루컬러라고 불리우며 32비트의 경우는 24비트 색상을 표현하되 나머지 8비트를 이용하여 투명도, 안개효과, 은면제거 등에 이용되는 알파채널로 표현하게 되며 RGB가 아닌 RGBA 컬러 표현방식이라고 부릅니다.
- 프레임 버퍼 메모리 계산법
- 프레임 버퍼에 따른 색상수 계산법
프레임버퍼가 많이 작을 때는 색상의 수가 제한될 때 인덱스 컬러방식으로 사용자가 원하는 색상을 이용하여 자연스럽게 표현할 수 있습니다. 만약 어떤 그림을 256개의 일반적인 색상을 이용하여 표현한다면 색상의 표현이 어색할 수 있습니다. 하지만 원래 사진과 가장 가까운 색 256개의 색깔을 모아서 표현하게 되면 원래의 그림에 훨씬 가까운 색상으로 더 자세하게 표현할 수 있습니다. 이렇게 원래 사진가 가까운 색들의 집합음 색상보기표(CLUT : Color Look Up Table)라고 합니다. 위의 그림에서는 16가지의 색상만으로 앵무새를 표현한 것입니다.
'Computer Theory > Computer Graphics' 카테고리의 다른 글
2차원 그래픽스의 동차좌표계 변환 (0) | 2016.01.23 |
---|---|
2차원 그래픽스의 변환 (0) | 2016.01.23 |
2차원 그래픽스 다각형 영역과 채우기 (0) | 2016.01.23 |
2차원 그래픽스 기본요소와 그리기(2/2) (0) | 2016.01.23 |
2차원 그래픽스 기본요소와 그리기(1/2) (0) | 2016.01.22 |