컴퓨터 그래픽스(Computer Graphics)란 영상처리(Digital Image Processing)와는 구별되는 달리 아무런 입력이 없는 상태에서 컴퓨터를 이용하여 그림을 생성해내는 기술을 말한다.
그래픽스의 응용분야를 간단히 알아보면 다음과 같다
- 캐드(CAD, Computer Aided Design) / 캠(CAM, Computer Aided Manufacturing)
- 프레젠테이션 그래픽스(Presentation Graphics)
- 가상현실(VR)
- 미술
- 애니메이션 및 게임
- 교육 및 훈련 : 컴퓨터 보조 학습(CAI, Computer Aided Instruction)
- 과학분야 가시화
- 그래픽 사용자 인터페이스 (GUI)
그래픽스 기술의 변천에 대해서 알아보자
1950~1960
1950년에는 라인프린터 / 텔렉스 / 오실로스코프 등 출력장치의 그림에 주목하였다.
1960년에 William Fetter가 '컴퓨터 그래픽'이라는 용어를 정의하였고,
1963년에 Ivan Sutherland가 컴퓨터 그래픽의 제반 개념을 확립,
같은해에 Douglas Englebart가 최초의 마우스 프로토타입을 개발하였다.
1965년에는 Jack Bresenham이 선분 그리기 알고리즘을 개발하였다.
Ivan Sutherland에 의해 라이트 펜이라는 입력장치로 사용자의 의도대로 컴퓨터가 그림을 생성하는 Interactive Computer Graphic System(대화형 컴퓨터 그래픽 시스템)을 도입하였고, 이 개념은 Sketchpad Project로 인해서 기본 물체를 조합하여 새로운 물체를 모델링하는 Hierarchical Modeling(계층 구조 모델링), 물체를 이동하는 Dragging, 팝업 메뉴로 사용자 입력을 하는 등 방법론을 발전시켰다.
당시 그래픽 출력은 벡터 그래픽 장치로 제한되어있었지만, 메인 컴퓨터의 CPU 대신 DPU(Display Processing Unit, 현재의 GPU로 발전)로 인한 그래픽 작업처리가 가능하였다.
DPU는 Display Processor와 Display List로 이루어져 있고, Display Processor는 현재의 그래픽 컨트롤러에, Display List는 현재의 그래픽 메모리에 해당한다.
CPU가 화면에 그려질 물체를 리스트 형태로 Display List에 저장하면, Display Porcessor가 리스트를 읽고 처리하여 화면에 표시한다. 이로써 CPU가 Display Processor에게 작업을 분할하여 프로그램 처리 속도가 높아진다.
1970
Raster그래픽 장치가 처음으로 등장했다.
그래픽관련 알고리즘이 개발되었고, 그래픽 국제 표준에 대한 필요성이 논의되기 시작했다.
1971년에 Gouraud로 인해 구로 셰이딩 알고리즘이 개발되었다.
1973년에 John Whitney Jr. 로 인해 컴퓨터 그래픽으로 제작한 최초의 영화 'West World'가 상영되었다.
1974년에 Edwin Catmuff가 텍스처 매핑, 지-버퍼 알고리즘을 개발하였다.
같은 해, Bui-Tong Phong이 전반사에 의한 하이라이트 알고리즘을 개발하였다.
1975년 Martin Newell이 배지어 표면 메시를 사용한 차 주전자 모델을 개발하였고,
같은 해, Benoit Mandelbrot가 프랙탈 이론을 제창하였다.
1976년 Jim Blinn이 주변 매핑, 범프 매핑 이론을 제장하였다.
1977년 Steve Wozniak이 컬러 그래픽 PC : Apple II를 개발하였고,
같은 해, Frank Crow가 앤티 에일리어싱 알고리즘을 개발하였다.
1979년 Kay, Greenberg가 최초로 투명한 물체 면을 그려내었다.
1980
컴퓨터가 보편화되면서 Raster 그래픽 장비가 보급되었다. 실래콘 그래픽스사에서 Geometry Engine이 출시되며, 그래픽스 관련 표준 PHIGS(Programmer's Hierarchical Interactive Graphic System)이 제정되었다.
1980년 Turner, Whitted가 레이 트레이싱 알고리즘을 개발하였다.
1982년 Steven Lisberger가 3차원 그래픽 애니메이션 'Tron'을 상영하였고,
같은 해 John Walkner, Dan Drake가 'AutoCAD'를 개발하였다.
1983년 Jaron Lanier가 데이터 장갑을 사용한 가상 현실 영화를 상영하였다.
1985년 Pixar Animation Studio에서 'Luxo Junior'를 개발하였다.
1986년 NES에서 가정용 게임 'Nintendo'를 개발하였다.
1987년 IBM에서 VGA 그래픽 카드를 개발하였다.
1989년 IBM에서 SVGA 그래픽 카드를 개발하였다.
같은 해 Pixar Animation Studio에서 'Tin Toy'가 아카데미상을 수상하였다.
1990
개인 컴퓨터가 고해상도 컬러 그래픽을 지원하면서 GeForce 256 그래픽 프로세서가 초당 1,500만 개 다각형을 처리해 4억 8,000만 개의 화소를 채울 수 있게 되었고, 변환, 절단, 조명 등 작업도 하드웨어적으로 처리 가능하게 되었다.
그래픽 메모리도 프레임 버퍼 외 A-버퍼, 스텐실 버퍼와 같은 그래픽 메모리가 출현했다. 그래픽 처리속도 증가로 인해 에니메이션 제작이 활발해졌고, 대표적으로는 'Toy Story'가 이 시기에 상영되었다.
1990년 Pixar의 Hanrahan, Lawson이 랜더링 소프트웨어인 'Renderman'을 개발하였고,
같은 해 Gary Yost가 3D Studio를 개발하였다.
1991년 Disney와 Pixar가 'Beaty and the Beast'를 개발하였다.
1992년 Silicon Graphics에서 OpenGL 사양을 발표하였다.
1993년 Steven Spielberg가 'Jurassic Park'(쥬라기 공원)을 상영하였다.
1995년 Pixar에서 'Toy Story' 를 상영하였고,
같은 해 Microsoft에서는 DirectX API사양을 발표하였다.
1996년 John Carmack와 Michael Abrash가 Quake 그래픽 엔진을 개발하였다.
1999년 NVIDIA에서 GeForce 256 GPU를 개발하였다.
2000
게임과 영화분야에서 그래픽스는 여전히 발전하고 있다.
2001년 Square에서 'Final Fantasy : The Spirits Within'이 상영되었다.
2003년 Timothy Purcell이 레이 트레이싱 기법을 GPU에 적용하였다.
2004년 Id Software에서 Doom Engine을 발표했다.
2004년 DirectX, OpenGL에 대해서 DirectX SDK 버전, OpenGL 2.0이 발표되었다.
2007년 OpenGL ES 2.0이 발표되었다.
2009년 DirectX 11이 발표되었다.
2011년 OpenGL 4.2가 발표되였다.
컴퓨터 그래픽스 구성 요소
컴퓨터 그래픽스는 크게 Modeling과 Rendering으로 구분할 수 있다.
Modeling은 무엇을 그릴 지에 대한 것으로 그래픽으로 표현할 Scene 안의 Object을 정의하는 것이다. 예를들어 선분의 집합으로 이루어진 물체의 선분 양 끝점 위치들을 명시하는 작업이라 보면 좋다. 평면 다각형의 직합으로 다각형 정점의 위치를 명시하는 작업이 모델링이다.
Rendering은 Modeling으로 정의된 물체를 그리는 방법이다. 조명을 어떻게 가할까? 관찰자(카메라)는 어디에 둘까? 3차원을 2차원으로 사영하거나 물체의 표면 재질 등의 Rendering의 차원이다.
개발자에 따라서 사용자화의 상호작용이나 윈도우를 구성하는 UI(User Interface)를 또 다른 구성요소로 간주하기도 한다.
'개발 · 컴퓨터공학' 카테고리의 다른 글
컴퓨터 그래픽스 - 그래픽 하드웨어 (0) | 2021.09.23 |
---|---|
네트워크 프로그래밍 - 패킷 전달[HLEN, Control Field(SYN, FIN, ACK), Checksum], handshake (0) | 2021.09.22 |
UNIX - File Share (0) | 2021.09.20 |
UNIX system call - lseek (0) | 2021.09.19 |
UNIX system call - write (0) | 2021.09.18 |