일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- list
- Algorithm
- c++
- Arduino
- 운영체제
- html
- queue
- map
- 컴퓨터 그래픽스
- WinAPI
- 시스템프로그래밍
- 라인트레이서
- priority_queue
- Visual Micro
- Stack
- set
- Deque
- LineTracer
- stl
- 자료구조
- directx
- 아두이노 소스
- vector
- arduino compiler
- C언어
- 수광 소자
- 아두이노
- Array
- 통계학
- 아두이노 컴파일러
- Today
- Total
Kim's Programming
2차원 그래픽스와 3차원 그래픽스 본문
2차원 그래픽스는 말그대로 점,선, 다각형 원 곡선등과 같은 기본 도형을 이용하여 2차원 평면에 그림을 그리는 것을 의미하며, 3차원 그래픽스는 가상의 물체를 실감있게 표현하는 것을 의미합니다.
2차원 그래픽스
2차원 그래픽스는 그래픽의 표현방법과 처리방식에 따라 벡터 그래픽스와 래스터 그래픽스 두 가지가 있으며 각 방법에 대해서 알아보겠습니다.
벡터 그래픽스
벡터 그래픽스란 그래픽 객체들을 수학적 함수로 표현하여 그래픽 명령어 형태로 컴퓨터의 기억 공간에 저장하는 방식입니다. 직선은 양 두 끝점 좌표, 원은 중심과 반지름 값 등으로 표현을 하게되며 그래픽 함수들의 모임으로 메로리에 저장되어 수행됩니다. 이러한 특징때문에 함수이 그래픽 명령어 형태로 저장되기 때문에 그래픽 파일의 크기가 작으며 크기를 변경해도 화질의 변화가 없습니다.
래스터 그래픽스
래스터 그래픽스 에서는 그리고 싶은 그래픽 객체들을 구성하고 있는 픽셀들의 값들이 메모리에 그대로 저장되는 방식입니다. 백터그래픽스와는 다르게 그래픽스 명령어가 저장되는 것이 아니라 그림을 구성하고있는 각 픽셀값들이 메모리에 저장됩니다. 그렇기 떄문에 그림의 크기를 확대하면 그림을 구성하고 있는 픽셀들의 크기만 커지므로 화질이 떨어지는 특성이 있습니다.
3차원 그래픽스
- 모델링(Modeling) : 물체의 기하적인 형상을 생성합니다.
- 투영(Projection) : 3차원 물체를 2차원 평면에 나타냅니다.
- 랜더링(Rendering) : 생성된 3차원 물체에 색상과 명암을 부여하여 현실감을 줌
- 와이어 프레임(Wire-Frame) 모델 : 물체의 형태를 와이어 프레임이라 불리는 선분들을 이용하여 표현하며 인공물을 표현할 때 적합합니다.
- 다각형 표면(Polygon Surface) 모델 : 삼각형이나 사각형 같은 간단한 면을 이용하여 3차원 물체의 외형을 표현하는 방식이며 자연물 표현에
적합합니다. - 솔리드 모델링(Solid Modeling) 기법 : 사면체, 육면체, 구, 원통, 원뿔 등과 같은 기본적인 3차원 객체들의 집합으로 원하는 형태를 표현하며
정형화된 구조물 표현에 적합합니다. - 디지타이저, 3차원 레이저 스캐너 같은 장비를 이용하여 스캐닝한 데이터를 통해 물체의 형태를 모델링하며 자연물 표현에 적합합니다.
렌더링(Rendering) 과정
3차원 그래픽스에서의 렌더링은 색상, 명암, 재질 및 그림자와 같은 3차원 적인 요소를 더하여 현실감을 추구하는 과정이며 시간도 제일 오래 걸립니다. 렌더링 과정을 다음과 같이 진행되게 됩니다.
- 은면제거 (Hidden Surface Removal) : 관찰자(Viewer)가 3차원 객체를 볼 때 가려져서 보이지 않는 면 은면(隱面)을 제거합니다.
- 셰이딩 (Shading) : 광원(Light Source) 의 위치와 밝기에 따라 객체가 반사하는 빛의 양을 계산하여 색상과 명암을 나타냅니다.
- 텍스쳐 맵핑 (Texture Mapping) : 그림이나 이미지로 기하모델의 표면을 덮어 씌웁니다.
- 그림자 표현 : 광원의 위치에 따른 객체의 그림자를 표현합니다.
애니메이션과 가상현실
애니메이션 그리고 가상현실은 모두 동적으로 움직이는 그림을 화면에 디스플레이 한다는 점으로 같습니다. 하지만 같은것은 아닙니다. 애니메이션 이란 미리 구성해 놓은 그림들을 연속적으로 보여주는 것을 의미하며 가상현실은 프로그램이나 데이터 구조를 이용하여 3차원 세계를 표현한 후 관찰자의 시점이나 관찰자의 움직임의 변화와 같은 입력데이터에 따라 실시간으로 3차원 세계를 재구서 하여 보여주는 것을 의미합니다.
애니메이션(Animation)
애니메이션은 일련의 정지된 그림이나 이미지를 연속적으로 초당 15프레임 이상으로 디스플레이하여 사람이 연속된 동작으로 느끼게 하는 기술입니다.
가상현실(Virtual Reality)
가상현실은 컴퓨터 그래픽스 기술을 통하여 가상공간이나 가상의 물체를 구축하여 관찰자가 가상공간을 돌아다니며 체험할 수 있습니다. 사용자가 가상공간내의 어디로 움직이고 어떤 물체를 바라볼지 미리 정하지 않기때문에 3차원 가상 공간이나 물체들이 실시간에 생성되어 초달 15프레임 이상 디스플레이 되어야합니다.
▣ 15프레임 이상인 이유?
영국의사 피트 마크 조제가 발표한 <수직 구경을 통해 보이는 바퀴살 형태의 착시 설명> 에 있는 내용에 따르면 망막에 상을 뇌가 알아차리는 시간이 72ms라고 되있으며 1/0.075는 약 15fr/s 정도가 되게 됩니다.
▣ 최근 영상들이 30 프레임 이상인 이유?
앨리언싱 현상을 막기위해서 사람의 가시(가청) 주파수의 2배 이상으로 그림(소리)을 Sampling 해야 한다는 정리에 따라 30프레임이상으로 출력하게됩니다.
'Computer Theory > Computer Graphics' 카테고리의 다른 글
2차원 그래픽스의 변환 (0) | 2016.01.23 |
---|---|
2차원 그래픽스 문자와 색상 표현 (0) | 2016.01.23 |
2차원 그래픽스 다각형 영역과 채우기 (0) | 2016.01.23 |
2차원 그래픽스 기본요소와 그리기(2/2) (0) | 2016.01.23 |
2차원 그래픽스 기본요소와 그리기(1/2) (0) | 2016.01.22 |