2024 - 2학기/OpenGL

1.2 컴퓨터 그래픽스

SHIN JI HAN 2024. 10. 18. 22:42
728x90
728x90
Reporting Date: October. 18, 2024

이전 컴퓨터 그래픽스 설명에 이어,
3D 공간에서의 렌더링 개념을 추가로 다루고자 한다.


목차

01 컴퓨터 비전
02 AI기반 그래픽스
03 컴퓨터 그래픽스
04 수학적 개념
05 3D공간에서의 렌더링 예시


 
 
 

 

01 컴퓨터 비전 (Computer Vision)

 

(1) 그래픽스

주로 3D 모델링렌더링을 통해 새로운 이미지를 생성하는 과정.
이 과정에서는 기하학적 데이터를 다루며, 현실 세계의 물리 법칙을 시뮬레이션하여 가상의 세계를 구현한다.

즉, 존재하지 않던 것을 시각적으로 표현하는 것이 핵심이다.
 

(2) 영상 처리

기존의 이미지나 영상을 변형 분석하는 과정.

주로 다음과 같은 작업을 한다.

  • 노이즈 제거
  • 윤곽선 감지
  • 이미지 필터링

이를 통해 영상의 품질을 개선하거나 특정 정보를 추출한다.
 
최근에는 AI 기술이 널리 사용되며, 딥러닝을 활용한 이미지 분류
객체 탐지 등도 주요 응용 분야에 포함된다.


 

 

02 AI 기반 그래픽스 (AI-powered Graphics)

AI는 주로 기존 데이터셋을 학습하여, 새로운 데이터를 생성하는 방식으로 작동한다.
기술을 그래픽 처리에 활용하려면 AI 라이브러리GPU 전용으로 최적화하여 사용한다.

이를 통해 AI는 이미지를 자동으로 생성하거나,
렌더링 성능을 크게 향상시키는 데 중요한 역할을 한다.

그러나 그래픽스 작업에서는 여전히 수작업이나 특화된 알고리즘이 필요하며,
AI가 모든 작업을 대체하지는 않는다.


 

 

03 컴퓨터 그래픽스

 

(1) 모델링

3D 오브젝트의 형태와 구조를 정의하는 과정.
(예시: 주사위의 각 꼭짓점 좌표 및 각 면의 색상 설정)

 
 

(2) 렌더링

모델링된 오브젝트를 화면에 그려내는 과정.
광원, 카메라 시점, 오브젝트의 재질 특성 등을 계산하여 최종적인 이미지를 생성한다.
모델링된 데이터를 바탕으로 사실적이거나 원하는 스타일의 이미지를 만들어내는 단계로,
컴퓨터 그래픽에서의 시각적 결과물을 결정한다.

 

영상 기반 렌더링 (Image-Based Rendering, IBR)

주로 컴퓨터 그래픽스에서 사용되는 기법으로,

3D 장면을 생성할 때 고전적인 모델링 기술 대신
실제 이미지나 비디오를 기반으로 하는 방법.

 

이 접근 방식은 다음과 같은 장점을 가지고 있다.

1. 복잡한 3D 모델을 만드는 대신,
이미지를 직접 사용함으로써 렌더링 속도를 크게 향상시킬 수 있다.

2. 실제 이미지를 사용하므로,
물체의 질감이나 조명 효과더 자연스럽게 표현할 수 있다.

3. 한 장면을 다양한 각도에서 관찰할 수 있는 가능성을 제공한다.
(사진이나 비디오를 통해 캡처된 장면을 여러 각도에서 보여줄 수 있다.)

4. 실제 이미지를 사용하면 3D 모델링 및 텍스처링에 드는 비용을 줄일 수 있다.

 

영상 기반 렌더링의 주요 기술로는 다음과 같은 것들이 있다.

1. 다양한 시점에서의 이미지 수집
여러 시점에서 캡처된 이미지를 사용하여 3D 공간을 재구성하는 방법.

2. 이미지 기반 텍스처링
3D 모델에 실제 이미지를 텍스처로 적용하여 더 현실감 있는 표현을 하는 방법.

3. 뷰포트 기반 렌더링
사용자의 시점에 따라 적절한 이미지를 선택하여 렌더링하는 기법.


 

 

04 수학적 개념

 

(1) 스칼라 (Scalar)

크기만 있는 값으로, 방향이 없는 단일 숫자.
즉, 1차원적인 양으로 생각할 수 있다. (온도, 질량, 시간, 거리 등)
컴퓨터 그래픽스에서는 스케일링, 거리 계산, 조명 강도 등을 나타낼 때 스칼라 값을 사용한다.

1. 3D 객체의 크기 변경에 사용된다.
(객체를 2배로 키우려면 x, y, z 축의 값을 각각 2로 곱한다.)

2. 두 점 사이의 거리를 구할 경우, 스칼라 값이 결과로 나온다.

3. 빛의 강도, 반사도와 같은 조명 효과에 사용된다.

 

(2) 벡터(Vector)

크기와 방향을 모두 가진 값.
주로
2D 또는 3D 공간에서 위치나 방향을 나타내기 위해 사용된다.

 

일반적으로 여러 구성 요소(x, y, z)로 이루어진다.

1. 객체의 위치 또는 특정 방향으로의 이동을 나타낼 때 사용된다.

2. 물리적 시뮬레이션에서 속도와 힘의 방향과 크기를 표현할 때 사용된다.

3. 카메라의 방향, 조명의 위치 및 방향 등을 표현할 때 사용된다.

4. 두 벡터의 교차 곱을 사용해 법선 벡터를 계산하거나, 회전과 같은 연산에 사용된다.

 

(3) 법선 벡터 (Normal Vector)

표면에 수직으로 직각을 이루는 벡터로, 특정 점에서의 표면의 기울기를 나타낸다.
주로 삼각형이나 다각형의 표면에서 계산되며, 표면이 어디로 향하고 있는지 나타내는 정보이다.

1. 주로 광원과의 관계를 계산할 경우,

(1) 조명 모델(Phong 조명, Blinn-Phong 모델)에서 법선 벡터는 광원과
(2) 뷰포트(카메라) 사이의 각도를 계산해 표면의 밝기와 반사도를 결정한다.
(광원이 법선 벡터와 수직에 가까울수록 표면은 더 밝아진다.)

2. 물리 시뮬레이션에서 물체가 충돌할 경우,
물체가 어떻게 반응할지 계산하는 데 사용되며, 특히 반사와 굴절 시에 중요한 역할을 한다.

3. 텍스처를 표면에 자연스럽게 매핑할 경우, 사용된다.

 

(4) 행렬 (Matrix)

숫자로 이루어진 2차원 배열로,
벡터나 객체의 변환(이동, 회전, 스케일링 등)을 표현하는 데 사용된다.
일반적으로 3x3 또는 4x4 행렬이 2D 및 3D 그래픽스에서 사용된다.

3x3 행렬: 주로 2D 변환에 사용됨.
4x4 행렬: 3D 공간에서 변환을 수행하는 데 사용되며,
위치 변환, 스케일링, 회전뿐만 아니라 원근법과 같은 카메라 투영에도 사용된다.

 

객체의 위치 변환(Translation), 회전(Rotation), 스케일링(Scaling)을 할 경우
이 연산을 벡터와 행렬 곱셈으로 표현할 수 있다.

1. 객체가 장면 내에서 어떻게 배치되고, 카메라에서 어떻게 보일지를 결정하기 위해
모델-뷰-프로젝션 변환을 수행할 경우, 여러 행렬(모델 행렬, 뷰 행렬, 투영 행렬)을 곱한다.

2. 3D 좌표를 2D 화면으로 투영하는 데 사용된다.

3. 행렬을 사용해 3D 장면을 2D 화면에 투영할 경우,
카메라의 위치와 방향을 고려한 변환을 수행한다.

4. 애니메이션에서 스켈레탈 시스템(본)을 변환하는 데 행렬을 사용하여,
객체의 회전과 움직임을 자연스럽게 표현한다.


 

 

05 3D공간에서의 렌더링 예시

 

(1) 주사위 그리기

주사위의 위치값과 색상값을 정의하고, 주사위의 면과 모서리를 모델링한다.
그 후, 주사위의 이미지를 텍스처로 입혀 렌더링을 완료한다.
 

(2) 지구 모델링

지구의 위도와 경도를 기준으로 와이어프레임 구를 만들고, 그 위에 지구 이미지를 텍스처로 입힌다.
이 과정은 지오메트리 연산(모델링)디스플레이 연산(렌더링)으로 나눠지며,
질감이나 음영을 추가하는 과정은 렌더링 단계에서 수행된다.
이러한 연산들은 현대 GPU의 병렬 처리 기능을 활용하여 효율적으로 처리된다.


교제: Open GL로 배우는 3차원 컴퓨터 그래픽스


 

728x90
반응형