티스토리 뷰
지난번 포스팅으로 컴퓨터에서 어떻게 공간을 채색하는지 알아보았습니다.
이번 포스팅은 이 채색을 무슨 Color로 하는지에 대한 포스팅입니다.
1. Color의 표현
컴퓨터 상에서 한 Pixel마다 Color를 정의할 때 보통 4개의 Element를 이용하며, 대표적으로
1_1. RGB Color Model
현실에서 Red, Green, Blue 3개의 원소를 가지고 표현한 색좌표입니다.
1_2. CMYK Color Model
RGB와 반대로 Cyan, Majenta, Yellow 3가지 색상을 이용하며, RGB Color Model의 값에 Not을 취한 결과와 같습니다.
하지만 이때 CMY 에 추가로 K(key)가 있습니다. Grey의 농도를 조절하는 부분이 추가되어 있습니다.
1_3. HSV Color Model
이 경우 기존의 3차원 좌표와는 약간 다르게 3차원 원뿔 모양의 색좌표를 보여줍니다.
Hue(색조), Saturnation(채도),Value(명도) 3가지 Element를 사용하여 Color를 표현합니다.
위 3개의 Model은 표현하는 방법이 다를 뿐, 3개의 Element를 조절해 같은 색을 얻을 수 있습니다.
이때 4개의 Element라고 하였는데, 위 3개의 Element + 투명도(alpha)를 포함해 4개의 Element가 됩니다.
p.s : 이때 모니터를 보면 8,10,12bit color와 같은 설명을 보신적이 있을겁니다.
이는 4개의 각 Element가 몇개의 bit으로 설정할 수 있냐를 의미합니다.
만약 8bit이면 Element를 2^8 = 256단계,10bit은 2^10 = 1024단계,12bit은 2^12 = 4096단계
로 조절이 가능하단것을 의미합니다. 보다 세밀한 색표현을 통해서 색의 계단현상이 없어진다고 볼 수 있습니다 ^^
2. Pixel의 Color를 저장하는 방법
이제 컴퓨터가 Color를 표현하는 방법을 확인 하였습니다.
그럼 이제 이 Color를 각 Pixel이 가져야만 최종적으로 화면에 색을 표현할 수가 있게됩니다.
이경우(8bit color라고 가정하겠습니다)
1. Pixel마다 3Element에 해당하는 8bit값을 모두 저장하여 각 Pixel에는 24bit의 메모리가 할당하는 방법이 있습니다.
FHD의 경우 24bit * 1920 * 1080 = 약 50Mb = 약 6MB의 메모리 용량을 요구합니다.
2. 다른 방법으로 Pixel에 필요한 색좌표를 미리 저장하고, 해당 색좌표를 Pointing 하는 방법이 있습니다.
8bit*3의 모든 Color를 저장할 경우 약 16Mb = 2MB의 메모리가 필요합니다.
하지만 각 Pixel마다 메모리 주소를 저장해야하기 때문에, 모든 Pixel에 메모리값을 저장한다면
각 Pixel은 결국 24bit의 메모리 주소를 저장해야하기 때문에 큰 Merit이 없어보입니다.
==> 하지만 모든 색좌표를 쓰지않고, 제한된 색좌표를 사용한다면 Color를 저장한 Table의 메모리와
각 Pixel에 필요한 메모리 주소가 감소하게 됩니다.
이제 위 둘중 하나의 과정을 통해서 각 Pixel의 Color를 컴퓨터가 알고 있습니다.
이제 이걸 Rendering하면, 최종적으로 화면에 이미지가 Display 되어 우리가 볼 수 있게 됩니다 :)
'컴퓨터 그래픽스' 카테고리의 다른 글
9. 2차원 선분 클리핑 (0) | 2021.02.22 |
---|---|
8. 2차원 뷰잉 (0) | 2021.02.17 |
6. 채색 알고리즘(수정중) (0) | 2021.02.15 |
5. 기하변환 3(복합기하변환, 아핀변환) (0) | 2021.02.13 |
4. 기하변환2(동차좌표ver) (0) | 2021.02.12 |
- Total
- Today
- Yesterday
- C++
- 완전탐색 알고리즘
- hash
- SIMD
- stack
- GDC
- prime number
- git
- Python
- 동적계획법
- AVX
- 프로그래머스
- Search알고리즘
- 알고리즘
- Greedy알고리즘
- 사칙연산
- 컴퓨터그래픽스
- heap
- Sort알고리즘
- 이분탐색
- 자료구조
- 코딩테스트
- 병렬처리
- 분할정복
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |