최근 수정 시각 : 2023-12-27 16:58:08

컴퓨터 그래픽스

그래픽에서 넘어옴

파일:나무위키+유도.png  
CG은(는) 여기로 연결됩니다.
방공시스템을 장착한 순양함에 대한 내용은 순양함 문서
번 문단을
부분을
, Center of Gravity에 대한 내용은 무게중심 문서
번 문단을
번 문단을
부분을
부분을
, 리그 오브 레전드 프로게임단에 대한 내용은 Clutch Gaming 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
참고하십시오.

||<tablealign=center><tablewidth=100%><tablebordercolor=#0066DC><tablebgcolor=#fff,#191919>
컴퓨터 과학 & 공학
Computer Science & Engineering
||
{{{#!wiki style="margin:0 -10px -5px"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin:-6px -1px -11px"
<colbgcolor=#0066DC><colcolor=white>기반 학문수학(해석학 · 이산수학 · 수리논리학 · 선형대수학 · 미적분학 · 미분방정식 · 대수학(환론 · 범주론) · 정수론) · 이론 컴퓨터 과학 · 암호학 · 전자공학 · 언어학(형태론 · 통사론 · 의미론 · 화용론 · 음운론) · 인지과학
SoC · CPU · GPU(그래픽 카드 · GPGPU) · ROM · RAM · SSD · HDD · 참조: 틀:컴퓨터 부품
기술기계어 · 어셈블리어 · C/C++ · C# · Java · Python · BIOS · 절차적 프로그래밍 · 객체 지향 프로그래밍 · 해킹 · ROT13 · 일회용 비밀번호 · 사물인터넷 · 와이파이 · GPS · 임베디드 · 인공신경망 · OpenGL · EXIF · 마이크로아키텍처 · ACPI · UEFI · NERF · gRPC · 리버스 엔지니어링 · HCI · UI · UX · 대역폭 · DBMS · NoSQL · 해시(SHA · 브루트 포스 · 레인보우 테이블 · salt · 암호화폐) · RSA 암호화
연구

기타
논리 회로(보수기 · 가산기 · 논리 연산 · 불 대수 · 플립플롭) · 정보이론 · 임베디드 시스템 · 운영 체제 · 데이터베이스 · 프로그래밍 언어{컴파일러(어셈블러 · JIT) · 인터프리터 · 유형 이론 · 파싱 · 링커} · 메타데이터 · 기계학습 · 빅데이터 · 폰노이만 구조 · 양자컴퓨터 · 행위자 모델 · 인코딩(유니코드 · MBCS) · 네트워크 · 컴퓨터 보안 · OCR · 슈퍼컴퓨터 · 튜링 머신 · FPGA · 딥러닝 · 컴퓨터 구조론 · 컴퓨터 비전 · 컴퓨터 그래픽스 · 인공지능 · 시간 복잡도(최적화) · 소프트웨어 개발 방법론 · 디자인 패턴 · 정보처리이론 · 재귀 이론 · 자연어 처리(기계 번역 · 음성인식)}}}}}}}}}

1. 개요2. 활용3. 예시4. 종류
4.1. 2차원 컴퓨터 그래픽스4.2. 3차원 컴퓨터 그래픽스
5. 한국의 CG 제작 환경6. 대학 과목
6.1. 참고 자료
7. 외부 링크8. 관련 문서

1. 개요

Computer Graphics (CG)

컴퓨터 화상처리. 컴퓨터를 이용하여 화상(이미지)을 제작하는 작업을 모두 통칭한다. 컴퓨터 활용 분야 중 컴퓨터 사양의 발전과 맞물려 매우 빠른 속도로 발전해 대중문화에 저변을 넓혔다. 애니메이션이든 광고든 컴퓨터를 활용하면 인력으로 회화 작업을 하였던 이전보다 비용은 절감된다는 장점이 있기 때문이다. 또한, 다른 소프트웨어 분야와는 달리 연구하면 그만큼 결과물이 바로 보인다는 것도 한몫 했다.

영어에 CGI라는 용어도 쓰이는데 이는 'Computer-generated Imagery'(컴퓨터 제작 화상)의 약자로, CG 기법을 활용해서 완성된 결과물에 한정된다.

2. 활용

영화, 광고 등 영상매체에서는 시각효과(VFX)의 중요한 한 갈래로써 작용된다. 특히 블록버스터 영화나 판타지 영화에서 현실에 없거나, 재현하기 힘든 요소들을 CG로 구현해 스토리를 풀어내는 하나의 요소다. 비단 블록버스터처럼 '스케일이 큰' 영화뿐만 아니라, 일상 드라마, 로맨스, 코미디, 작가주의 영화에서도 일부 CG가 들어간다. 봉준호 감독의 2019년 영화 기생충이 CG를 매우 적극적으로 활용하였다.

할리우드에서는 터미네이터 2: 심판의 날쥬라기 공원, 토이 스토리가 CG 기술의 시대를 연 대표적인 작품으로 여겨진다. 시각효과 자체는 고전 영화부터 쭉 활용되고 있었지만, 애니매트로닉스, 스톱 모션, 미니어처 등등을 제치고 CG가 곧 시각효과의 대명사가 된 것에는 해당 작품들의 공이 컸다. 토이 스토리의 경우, 순수 3D 컴퓨터 그래픽으로만 이뤄진 장편 애니메이션의 원류로서 그 가치가 인정된다. 21세기로 넘어와서는 굉장히 큰 발전을 이루어서 현실과 구분하기 힘든 경위까지 왔다. 그러나, 그 정도 그래픽을 원하려면 컴퓨터 구성에 소요되는 예산이 급격히 커져서, 클라우드 컴퓨팅을 활용하여 렌더 팜[1]을 구성한다. 계산량을 효율적으로 줄이기 위한 알고리즘도 많이 개발되었다.

영상매체서의 CG(CGI)는 시각효과와 동일한 의미로 사용되고 있다. 괴리감이 크거나, 노골적으로 티가 나는 것을 발 CG라고 부른다. 사람 혹은 동물이 죽거나, 높은 곳에서 떨어지는 장면 등등의 윤리적인 문제가 발생할 수 있는 장면들은 의도적으로 CG인 게 티가 나도록 제작하기도 한다.

비디오 게임은 사용자가 조작한 행위에 대해서 컴퓨터가 연산하여 상황을 표현하는 그래픽 요소를 스크린에 띄우는 응용 프로그램이다. 이나, 브레이크아웃 같은 1960~70년대 게임은 형태만 구분될 정도의 단순한 객체로만 이루어져 있다. 생긴 것도 단순했고 객체 수도 많지 않았기에 컴퓨터가 이를 처리하는 데 별 문제가 되지 않았다. 곧 복잡한 형태와 다채로운 게임 화면이 소요되지만, 당대 컴퓨터 사양으로는 이들을 처리하는 데 상당한 부하가 요구되어 스프라이트(컴퓨터 그래픽)이라는 개념이 도입된다. 1990년대, 기존의 상하좌우 같은 단편적인 움직임에서 벗어나 현장감을 증폭시킨 1인칭 슈팅 게임(FPS 게임)이 탄생해 3D 컴퓨터 그래픽스 역시 게임에 본격적으로 적용된다.

FPS 게임 이후, 비디오 게임 업계는 3D CG를 실시간에 가까운 매우 빠른 속도의 렌더링 기술이 필요하는 점을 느꼈다. 만일 프레임 하나를 구성하는 데 5분이 걸린다면, 플레이어가 그냥 옆을 보는 데만 [math(5n)]분씩이나 잡아먹으니 자연스레 "그냥 게임 안 하고 말지"라는 생각이 들 것이다. 영상은 이미 렌더링이 완료된 채로 대중에게 공개되기 때문에 CG 초창기부터 고퀄리티의 영상을 감상했던 것이 가능했지만, 가정에 보급된 컴퓨터로 실시간 상호작용이 필요한 비디오 게임에서의 CGI는 상당히 많은 것을 포기했어야 했다. 그럼에도 기술은 꾸준히 발전하면서 3D 그래픽 렌더링 중 가장 많은 연산량을 요구하는 빛 추적이 제한적으로나마 실시간 처리가 가능해지며 게임에 적용되었고, 이미 2010년대부터 정교한 모델링텍스처, 조명 디자인으로 현실에 가까운 게임 그래픽을 보여주고 있다. 대형 게임사의 경우, 기술력을 과시하기 위해 인 게임 자산만으로 예고편, 컷신을 제작하기도 한다.

대중은 게임의 3D 그래픽이 얼마나 현실에 가까운지 혹은 카툰 렌더링 같이 현실적이지 않은 비주얼이라도 얼마나 심미적으로 아름다운지에 대해 "그래픽이 좋다"라고 표현하다. 한편, 비주얼 노벨처럼 일본의 영향을 받은 게임 장르에서는 이야기 진행 등 게임 내의 이벤트를 보여주기 위한 삽화를 CG라고 부른다.

3. 예시

파일:zq9czzKr.png
터미네이터 제니시스의 장면

위 장면은 CG 기술의 발전의 대표적인 예시이다. 왼쪽이 2015년 터미네이터 제니시스의 CG로 만든 아놀드 슈워제네거이고, 오른쪽이 1984년 터미네이터(영화)에서의 장면이다.[2]


대디 양키의 Limbo(림보) 뮤직비디오에도 CG가 사용되었다. 촬영된 장소는 오토미 예배당이고, 실제 이곳에서는 가깝게는 히키필코(Jiquipilco), 멀리는 익스틀라와카 데 라욘(Ixtlahuaca de Rayón) 시내를 내려다볼 수 있어야 정상이지만, 뮤비 시작부에 치첸 이트사를 심어놓고 그 뒤에 산들이 있어서 CG가 사용되었음을 알 수 있다. 따라서 림보 뮤직비디오에서 보는 풍경은 오토미 예배당에 가면 절대로 볼 수 없다. 실제로 오토미 예배당부터 치첸 이트사에 하루 정도 걸리며, 수도고속도로를 타고 가야 하는 건 덤이다.

최초의 디지털 이미지는 1957년에 러셀 커쉬와 동료 과학자들로 말미암아 제작된 아들 워든의 사진(176x176 픽셀)이고, 보잉의 윌리엄 페터가 1960년에 전투기 파일럿의 모습을 가정해 인간의 와이어프레임 이미지를 최초로 제작했다("Boeing Man").

4. 종류

4.1. 2차원 컴퓨터 그래픽스

가로와 세로, x와 y라는 두 가지 좌표만을 가지는 평면의 그림을 컴퓨터로 그려내는 것. 2D 애니메이션, 일러스트, 문자 디자인 등이 그 예이다. 여기서 세부 분류로 래스터 그래픽벡터 그래픽이 나눠진다.

아래 3D 그래픽에 밀려 사용 빈도가 줄어들고 있다고 생각하겠지만 인쇄물, 영상 편집, 일러스트, 만화, 애니메이션 등 아직도 수요는 차고 넘친다.

2차원 컴퓨터 그래픽스의 최고 난이도를 자랑하는 분야 중에서 일러스트와 더불어서 컬러 그레이딩이 최근 들어서는 상당한 중요성을 차지하고 있다. 영화 및 드라마 분야에서는 VFX 작업 등 3차원 컴퓨터 그래픽스 기법을 많이 이용하지만 영상 색감을 구현하는 데에는 있어서 여전히 2차원적인 작업이 필요한 편이다. 그리고 컬러 그레이딩은 VFX 작업 못지않게 영화의 분위기를 좌우하는 큰 요소이기 때문이다.

4.2. 3차원 컴퓨터 그래픽스

모든 현상은 3차원 공간에 존재하는 단순정량자와 몇 가지의 법칙에 지배되는 운동에 의한다. - 르네 데카르트
CG의 진수. 3가지 좌표를 가지는 공간, 물체 등을 모델링렌더링하는 것이다. 여러 모델, 수학적 물리학적 이론등을 근간으로 질감, 양감, 명암을 표현해내고 폴리곤(드물지만 다른 방식도 쓴다)을 이용해 물체들을 렌더링한다.

5. 한국의 CG 제작 환경

2000년대 이전까지만 해도 충무로의 CG 기술, 이후에는 강남 논현 인근이 곧 우리나라 CG 기술이라고 해도 무방했다. 현재는 영화 VFX 업체들은 대부분 일산, 파주, 광주, 부산 등 각지로 이전되어 있다.그 이유는 각 지방자치 단체의 다양한 지원[3]을 해주었기 때문에 광고분야를 제외한 영화나 드라마 분야는 굳이 유지비가 비싼 서울에 있을 이유가 없어졌기 때문이다.[4]

요즘 한국 영화의 CG 기술력 자체는 예전에 비해 많이 발전된 편이다. 그러나 할리우드 블록버스터는 전체 예산의 30%, 많으면 50% 가량이 CG 제작에 투입되는데 비해 한국 영화는 CG 제작비가 차지하는 비중이 전체 예산의 10%에도 못 미칠 때가 많다. 이는 마켓 사이즈에서 비롯된 차이로, 개봉 후 기대할 수 있는 수익 이상은 투자될 수 없는게 당연한지라 어쩔 수 없는 부분이다. 국내 개봉과 전 세계 개봉은 시장규모의 차원이 다르다. 최근에는 CG의 중요성이 많이 부각되어, 점차 많은 금액으로 늘어나긴 했다. 다만, CG에 몰빵한 영화들이 크게 망한 경우가 많았다. CG를 많이 사용한 영화들이 크게 흥행을 해야 CG 분야에 대한 투자도 커질 것이라는 점을 생각하면 아쉬운 부분이다.

게다가 부실한 프리프로덕션(사전기획) 및 테스트 촬영 부족도 CG 퀄리티를 낮추는 커다란 요인으로 꼽힌다. 대표적으로, 7광구에 등장하는 괴물의 외형은 포스트프로덕션(후반작업) 단계에 가서야 정해졌다고 한다.[5] 컴퓨터 그래픽의 특성상 투자 시간이 길어질수록 그 질이 향상된다는 점을 생각해 보면 아쉬운 부분. 그리고 할리우드는 정교한 미니어처애니매트로닉스를 동원하여 CG의 완성도를 보완하지만 한국은 그 두 분야에서 상당히 뒤처지는 모습을 보이고 있다. 이와 같은 이유는 할리우드는 제작비가 어마어마하게 들어가는 경우가 많아 흥행 실패 시 그에 따른 리스크가 엄청나므로, 리스크를 줄이는 차원에서 더욱 사전에 철저하게 검증하기 때문이기도 하다.

또 하나는 조명의 문제이다. 밝은 장면에서 CG 합성을 하는 것과 어두운 부분에서 합성을 하는 것 사이에는 시간과 예산 면에서 큰 차이가 있다. 어두운 곳에서는 기본적으로 디테일을 파악할 수 있는 요소들이 많이 사라지기 때문에 들이는 노력에 비해서 자연스럽게 느껴진다. 구현하기 어려운 부분은 그림자 속으로 넣어버리면 끝이다. CG 기술이 많이 발전하지 않았던 초창기 할리우드 영화들이 주로 밤 씬에서 CG를 넣은 것은 다 그런 이유 때문이다. 따라서 CG를 넣을 장면의 조명을 어떻게 세팅할지, 그 장면을 다른 장면들과 조화되게 하려면 전체적인 영화의 색을 어떻게 맞춰야 할지를 차근차근 계획해야 하는데, 빛과 색을 완벽하게 통제하는 할리우드에 비하면 한국 영화계는 이 부분에서 많은 취약점을 가지고 있다.

CG 작업에서 선택되는 제품은 주로 어떤 업계냐에 따라 다르다. Autodesk Max는 게임 및 영화, Maxon Cinema4D는 주로 모션그래픽, 광고, Autodesk Maya는 영화 및 애니메이션 제작업, Foundary Modo는 제품 디자인 및 광고에 많이 사용되는 추세다. 여기서 캐드류는 제외한다.

간단한 그래픽 툴을 사용하는 경우도 매우 많다.

6. 대학 과목

말 그대로 컴퓨터 그래픽스.

컴퓨터 그래픽 디자인을 포함하는 그래픽 디자인은 미술대학 시각디자인의 한 분야이기도 하지만, 이 문서에서도 볼 수 있듯 cg 작업에는 수학컴퓨터과학 지식이 매우 많이 필요하기에, 시각디자인과에선 영화나 게임에서 흔히 볼수있는 cg를 깊게 가르치지는 않고, 포스터 디자인, 포토샵과 같은 일반적인 그래픽 디자인을 주로 배운다.

또한 컴퓨터공학과 학생이라면 전공 선택 과목으로 접할 수 있다. 대부분은 그래픽 라이브러리 OpenGL로 배우게 된다.[6] 이론으로는 이전에 배운 선형대수학등이 쓰이고 이런 수학적 지식이나 원리를 바탕으로 한 GL의 기능과 원리들을 주로 배운다. 흔히 대학교 교재에 나오는 3차원 공간좌표계와는 x, y, z축이 살짝 다른 좌표계를 쓴다.[7] DirectX도 z축이 반대일 뿐 마찬가지다. 축이 다른 이유는 x가 모니터 스크린상의 가로축이고, y가 세로 축이라면, z축은 깊이를 표현 할 때 쓰기 때문이다. 그래서 open GL의 옵션중에 GL_DEPTH_TEST를 이용해 z 축을 표시할수 있다.

컴퓨터 그래픽스의 본질을 배우는 과목으로, OpenGL로는 함수 몇개 쓰면 그려질 것들의 원리를 배우게 된다. 어파인 공간이라는 공간을 이용해 점벡터들을 표현하거나, x, y, z 축 기준으로 회전/반사/전단시키는 행렬을 다루거나, 컴퓨터로 그려진 영상이 모니터로 출력되면서 거치는 여러 변환의 공식이나 원리, 색 채우기 알고리즘 등이 나오며, 그 중에서 힘든 부분들로 뽑히는 건 조명 반사/흡수 공식이나 3차원 카메라 회전(삼각함수를 써야 한다), 원근법 perspective 시점 다루기, 극좌표, 법선벡터 등이다. 교수님 성향에 따라서 시험문제도 얼마든지 다르게 나올 수 있다. OpenGL 코딩을 물어볼 수도 있고, 심한 경우는 공간도형/벡터(행렬)/삼각함수/극좌표 문제로 증명을 해야 하는 경우도 있다. 만만하게 본 학생들은 뒤로 갈수록 멘붕하게 된다.

실습으로는 보통 OpenGL을 이용해 뭔가 프로그램을 만든다. 점벡터들로 물체를 그린다거나, 조명을 다루거나 콜백 함수와 시점 카메라 공식을 이용해 물체를 여러 방향에서 바라보게 하는 등.

6.1. 참고 자료

컴퓨터 그래픽스를 공부할 때 참고할 수 있는 자료들이다.

LearnOpenGL
Scratchapixel
Ray Tracing in One Weekend Series
고려대 그래픽스 강의: 한국어 강의교재도 존재한다.#
Tiny Renderer: 소프트웨어 래스터라이저 구현에 대한 튜토리얼이다.
강원대 그래픽스 강의
Utah 대학 그래픽스 강의(입문)
Tu Wien(빈 공과대학)렌더링 강의: 패스 트레이싱에 대해 다룬다.

7. 외부 링크

<명량> 흥행에 가려진 CG 업계의 비극
헐리우드 특수효과는 누가 어떻게 만드나?

8. 관련 문서

🖼️ 그래픽 포맷
{{{#!wiki style="margin:0 -10px -5px; min-width:300px; min-height:calc(1.5em + 5px); word-break:keep-all"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin:-6px -1px -11px"
<colbgcolor=#555>비트맵<colbgcolor=#555>손실 압축JPEGAVIF▶Lα · BPG▶α · FLIF▶α · HEIF · WebP▶α ·RAW · DDS▶Lα · PSD▶Lα
무손실
압축
APNG▶α · DNG · EXRα · GIF · PCX · PNGα · RGBEα · TGAα · TIFF
무손실 무압축BMPα
벡터AI · CDR · SVG
▶: 애니메이션 기능 지원 / L: 다중 레이어 지원 / α: 알파값 지원
관련 틀: 그래픽 · 오디오 · 비디오
}}}}}}}}}

그래픽 라이브러리
파일:OpenGL 로고.svg 파일:Vulkan(API) 로고.svg 파일:DirectX 로고.svg 파일:Metal 3 로고.png
그 외 그래픽 라이브러리



[1] Render farm. CGI를 출력하는 과정인 렌더링만을 위해 여러 대의 컴퓨터를 병렬로 연결한 집합체.[2] 오히려 뼈대 상태인 '엔도 스켈레톤'에서 CG 티가 많이 난다.[3] 장비 지원이나 세금 혜택 등[4] 광고 분야의 경우 클라이언트인 광고 대행사 또는 프로덕션이 강남 주변에 있기 때문.[5] 할리우드에선 5~6개월 가량의 프리프로덕션 기간을 거치며, 포스트프로덕션 기간도 이와 비슷하다.[6] DirectXVulkan 같은 경우에는 그래픽스 이론 외에도 api의 사용법이나 성능 최적화와 같은 문제를 상당히 많이 신경써야하기 때문이다.[7] 대학교 교재에서는 비스듬히 바라보며 z축이 위로 솟아있는 좌표계를 주로 그리나, 그래픽스에선 모니터의 방향이 바로 z축에 대응되도록 하며 모니터 화면 상에 xy축 평면이 있는 것과 마찬가지다.