컴퓨터 그래픽이란?
컴퓨터 그래픽이란, 컴퓨터를 이용해서 이미지를 제작하는 모든 작업을 말한다.
그래서, 영화, 게임, AI 등 여러 분야에서 사용되고 있으며, 영화에서 나오는 CG또한 Computer Graphics의 약자이다.
우리가 사진을 찍으면, 실물보다 훨씬 좋게 나올때가 많은데, 이 또한 인정하기 싫겠지만 카메라에 내장되어 있는 프로그램이 실제 사진을 보정하여 저장하기 때문이다.
이 섹션에서는 3D 그래픽에 대해 자세히 다룰 예정이다.
Global illumination vs Local illumination
3D 그래픽을 크게 2개로 구분하자면 Global illumination과 local illumination으로 나눌 수 있다.
Global illumination은 쉽게 말해, 영화에서 보는 CG, 현실 세계와 구분이 안 될 정도의 높은 퀄리티를 자랑한다.
Local illumination은 주로 게임이나, Mobile에서 사용되는데, 이는 실시간으로 빠르게 업데이트를 하기 위한 그래픽이다.
Global Illumination
Global illumination에서는 Ray tracing등을 적극 활용하여 최대한 현실세계와 유사한 Lighting을 만들어낸다. 현실세계에서의 빛은 물체에 반사되기도 하고, 흡수되기도 한다. 또한 어떤 물체에 반사된 빛이 다른 물체에 들어오기도 하는 등 연쇄 반응을 엄청나게 많이 일으킨다. 이 때문에 대낮에 불을 다 끄고 있더라도 미세한 광원이 들어오고 있다면 방 전체의 물체가 식별 불가능할 정도로 어둡지는 않은 것이다.
Global illumination은 이런 빛의 반사, 흡수 등을 최대한 현실세계와 유사하게 구현한다. 영화 CG를 만든다고 할 때, 30초짜리 CG로만 된 동영상을 만드려면 Rendering에만 엄청나게 많은 시간이 소요되는 것이 이 때문이다. 당연하게도 게임에서는 이 방식을 사용할 수가 없다.
Local Illumination
Local illumination에서는 이런 그래픽이 실시간으로 처리되는 것을 목표로 한다. 그래서 Global Illumination에 비해 많은 것들이 누락되어 있다. Phong reflection model 등을 사용하는데 이건 나중에 다룰 예정이다.
OpenGL
1992년에 생겨났고, Direct X와 같은 그래픽 라이브러리이다. 수많은 함수들을 제공하며, Graphic card를 사용할 수 있도록 한다. GPU 버전 마다 호환할 수 있는 Open GL version이 다른데, 이는 GPU 마다 제공할 수 있는 하드웨어가 제한되어 있기 때문이다. 게임이나 Blender와 같은 그래픽 디자이너 툴들은 대부분 OpenGL를 사용하고 있고, 그래픽 드라이버 업데이트에 최신 GPU를 호환할 수 있도록 해준다. 그래서 그래픽 드라이버를 꼭 업데이트를 해야 성능이 좋아지는 것이다.
OpenGL과 비슷한 것은, Direct X(Windows)와 Vulkan, Metal(Apple) 등이 있다. Direct X와 Metal은 각각 Windows와 Mac, Apple 제품에만 호환이 되고, Open GL과 Vulkan은 crosss platform으로 호환되고 있다.
Computer Graphics의 역사와 기초
기본 동작 시스템
기본 동작 시스템은 다음과 같다.
특정 데이터(이미지, 동영상, 3D model 등등)을 모니터에 그리기 위해서는 Buffer를 사용하게 된다. Frame Buffer는 비디오 디스플레이를 구동하는 비트맵이 담겨있는 RAM의 한 부분이다. 우리가 주로 사용하는 1920 x 1080 모니터는 1920 x 1080 픽셀을 가지고 있다. Frame buffer는 이 모든 픽셀의 색상값을 저장하는 버퍼이다. 버퍼가 전부 채워지면 화면에 그리는 방식으로 구성되어 있다. 사실 대부분은 Double Buffering을 사용한다. Frame Buffer가 2개 있다는 얘긴데 이건 다음에 설명하겠다.
역사
간단하게만 살펴보겠다.
1960년대에 생겨난 그래픽이다. 컴퓨터에 선을 직접 그려넣고 출력하는데 성공했다.
1970년대에는 이미지를 화면에 보여주게 된다.
1980년대에는 더 현실감을 추가하는 기법이 발달하였다.
1990년대부터는 토이스토리와 같은 영화도 흥행하고, Texture Mapping등을 하드웨어가 지원하기 시작했다.
이후에는 그래픽 카드의 발달로 점점 더 상용화되고 PRT(Precomputed Radiance Transfer)등이 발달하였다. 이를 통해 게임에서도 Global illumination의 사용이 가능해졌다. Global Illumination을 미리 계산 하고, 계산된 것을 불러오는 방식으로 동작하는데, 이는 나중에 설명하겠다.
https://research.nvidia.com/labs/dir/edify-3d/
NVIDIA Deep Imagination Research Homepage
NVIDIA's world class researchers and interns work in areas such as AI, deep learning, parallel computing, and more. Explore what's new, learn about our vision of future exascale computing systems.
research.nvidia.com
최근에는 이런식으로 3D 모델 또한 프롬프트로 생성할 수 있는 시스템이 정말 많아지고 있다.
'개인 공부 > 컴퓨터그래픽스' 카테고리의 다른 글
03. Objects (0) | 2025.06.09 |
---|---|
02. Camera (1) | 2025.06.07 |
01. Rendering Pipeline (0) | 2025.06.07 |