OpenGL

[OpenGL] 래스터 저장방식과 컬러

usingsystem 2024. 4. 3. 08:53
728x90

래스터 저장방식

이는 기본적으로 3D 모델을 화면에 픽셀로 렌더링하는 프로세스를 의미합니다. 래스터화란, 3차원 공간에서의 객체들을 2차원 화면에 표현하기 위해 필요한 작업들을 의미합니다.

OpenGL에서 래스터화는 다음과 같은 단계로 이루어집니다:

  1. 정점 처리(Vertex Processing): 래스터화 프로세스는 우선 3D 모델의 정점들을 처리합니다. 이 과정에서는 정점의 좌표를 변환하고, 조명, 텍스처, 카메라의 시점 등과 같은 다양한 효과들이 적용됩니다.
  2. 기하 처리(Geometry Processing): 정점 처리 이후, OpenGL은 이들 정점을 기하적으로 처리합니다. 이 과정에서는 정점들을 선, 삼각형 등의 기본 기하 요소들로 결합하고, 클리핑(화면 영역 밖의 기하 요소들을 제거) 등의 작업을 수행합니다.
  3. 래스터화(Rasterization): 기하 처리 후, OpenGL은 화면에 실제로 픽셀을 그리기 위해 래스터화 단계로 이동합니다. 이 과정에서, 기하 요소들은 화면 상의 픽셀로 변환됩니다. 이 과정에서는 대부분의 그래픽카드의 하드웨어 가속을 사용합니다.
  4. 픽셀 처리(Pixel Processing): 래스터화된 픽셀은 최종적으로 텍스처 매핑, 조명, 셰이딩 등과 같은 처리 단계를 거치게 됩니다. 이 단계에서 픽셀의 색상이 결정되고, 깊이 버퍼 등의 기능을 사용하여 깊이 및 투명도를 처리합니다.

이미지 -> 색상이 있는 사각형의 2차원 배열(ex) 엘레베이터 표시 화면)

 

Color Depth

색 깊이, 비트 깊이를 나타낸다. 더 많은 bit를 쓸 수록 더 좋은 품질이 나오지만 더많은 memory를 사용한다.

일반인은  200단계 생상차이를 인식한다. 그래서 2^8만큼 단계의 차이를 인식하기 때문에 1pixel 8bit를 사용한다.

Color Image

color image는 3color channels(RED, GREEN, BLUE)를 이용한다.

Color channel 마다 8bit를 사용한다. 1pixel =3 * 8bit로 24bit color 모델이라고한다. 반드시 24bit로 표현하는 것 은아님. 과거에는 메모리 자원이 중요해서 너 낮추기도 했음. 

 

True Color System

3n = 24bit  현재 가장 많이 사용하는 LCD 모니터

HDRI

3B = 30bit 더 넓은 명도 범위 품질

 

RGBA color model

RGB + A(alpha channel)로 a는 투명도를 저장한다.

1pixel당 4n = 32bit

 

728x90