2024 - 2학기/OpenGL

1.1 컴퓨터 그래픽스

SHIN JI HAN 2024. 9. 11. 11:51
728x90
728x90
Reporting Date: September. 11, 2024

과학, 공학, 의학, 경영 등 다양한 분야에서 활용되는
컴퓨터 그래픽스의 응용 분야에 대해 다루고자 한다.


목차

01 컴퓨터 그래픽스의 응용(CG)

메타버스(Metaverse)
⌎  라이프 로깅(Lifelogging)
 
1. 가상 현실(VR)
2. 증강 현실(AR)
3. 혼합 현실(MR)
4. 확장 현실(XR)
⌎   거울세계(Mirror World)

Mata와 결합된 다른 용어들


애니메이션 & 게임

라이브러리 사용  ⇨  프로그래밍 언어
⌎    Low–level 게임 개발
⌎     DirectX  &  OpenGL

02 컴퓨터 그래픽스 구성 요소(모델링 & 렌더링)


 

01  컴 퓨 터  그 래 픽 스 (CG, Computer Graphics)

 

 

컴퓨터로 그림을 생성하는 기술.

 

아래는,  이전부터 활발하게 응용된 분야를 나열한 목록이다.

이 중에서 기술의 상호작용이 두드러지는 가상 현실과
애니메이션 및 게임에서의 응용에 대해 알아보고자 한다.

컴퓨터 그래픽스의 응용분야


 

 

 

메 타 버 스 (Metaverse)

가상현실을 구현한 여러 형태나 콘텐츠들을 통칭한다.


메타버스는 기술적 진보와 인터넷의 발전으로 구현된 디지털 환경이며,
이는 가상세계와 달리, 여러 기술적 요소가 결합된 거대한 디지털 생태계이다.

초월(beyond), 가상을 의미하는 meta와 세계를 의미하는 universe합성어이다.
(1992년 출간된 소설 '스노 크래시' 속 가상 세계 명칭인 '메타버스'에서 유래한다.)

 

 

 

라 이 프  로 깅 (Lifelogging)

개인의 삶을 디지털로 기록하여 가상세계로 옮기는 개념으로, 메타버스와 관련이 깊다.

메타버스에서는 사용자들이 디지털 아바타를 통해 자신의 삶을 반영하고,
그 기록을 가상세계에서 공유저장할 수 있다.

 

삶을 뜻하는 life와 일지 작성을 의미하는 logging합성어이다.
특히 logging은 일반적으로 컴퓨터 시스템에서의 사용 기록을 포함하여 모든 행위의 기록을 의미한다.

 

 

제페토

내 아바타로 즐기는 또 다른 세상

web.zepeto.me

 

 

 

 

1. 가 상  현 실 (VR, Virtual Reality)

실제와 유사하지만 실제가 아닌 인공 환경.
현실 세계에서 할 수 없는 활동을 할 수 있다.

 

Beat Saber on Steam

Beat Saber is a VR rhythm game where you slash the beats of adrenaline-pumping music as they fly towards you, surrounded by a futuristic world.

store.steampowered.com

 

 

Half-Life: Alyx on Steam

Half-Life: Alyx is Valve’s VR return to the Half-Life series. It’s the story of an impossible fight against a vicious alien race known as the Combine, set between the events of Half-Life and Half-Life 2. Playing as Alyx Vance, you are humanity’s only

store.steampowered.com

 

 

Microsoft Flight Simulator - The next generation of one of the most beloved simulation franchises

Microsoft Flight Simulator is the next generation of one of the most beloved simulation franchises.

www.flightsimulator.com

 

 

 

 

2. 증 강  현 실 (AR, Augmented Reality)

현실 세계에 디지털 정보를 추가해 현실의 개념을 확장하는 기술.

 

Pokemon GO – Pokémon GO

GO로켓단 GO로켓단의 마수가 “Pokémon GO”의 세계에 뻗쳐오고 있습니다! "스페셜리서치" 클리어나 “그림자 포켓몬”을 구하는 과정에서, GO로켓단에게 승부를 걸어 야망을 저지할 수 있습니다.

pokemongolive.com

 

 

이케아, 비주얼 서치 기능 탑재한 '이케아 플레이스’ 안드로이드 앱 출시

[서울 - 3월 21일] 글로벌 홈퍼니싱 기업 이케아는 가상으로 가구를 공간에 배치할 수 있는 증강현실(AR) 앱 '이케아 플레이스(IKEA Place)’를 안드로이드 버전으로 출시한다.

www.ikea.com

 

 

4D Interactive Anatomy

 

www.4danatomy.com

 

 

 

 

3. 혼 합  현 실 (MR, Mixed Reality)

가상 세계와 현실 세계를 섞어서 VR 헤드셋을 통해 보여주는 것으로 두 가지 유형이 있다.

 

1. 가상 객체  ⇨  현실 세계:

사용자가 VR 헤드셋의 카메라를 통해
현실 세계를 볼 때,  가상 ​​객체가 시야에 매끄럽게 혼합됨. 

 

Leading Innovation in Augmented Reality

Magic Leap is leading innovation in Augmented Reality by bringing together industry-leading optics, scalable production, AI capabilities & immersive AR experiences.

www.magicleap.com

 

2. 실제 객체  ⇨  가상 세계: 

가상 세계에서 플레이하는 VR 게이머를 보는 것처럼, 
가상 세계에 혼합된 VR 이용자의 카메라 뷰.

 

Richie's Plank Experience on Steam

You're on a plank, 80 stories high. Knees shaky, palms sweaty. You have a choice. Do you walk or do you freeze? Richie's Plank is the only VR experience that lets you clone any real-world plank into the virtual world for 2X the immersion.

store.steampowered.com

 

 

 

 

4. 확 장  현 실 (XR, Extended Reality)

AR, VR, MR을 포함한 모든 확장된 현실 기술을 통칭.

 

Meta Quest의 Meta Horizon 월드 | Quest VR 게임

 

www.meta.com

 

 

 

거 울 세 계 (Mirror World)

현실 세계를 반영한 가상 공간.

 

개요 – Google 어스

세계에서 가장 정교한 지구본

www.google.com

 

이러한 기술들이 모두 메타버스를 구성하는 요소로, 기술이 아직 완전히 성숙하지는 않았으나, 
적용된 정도에 따라 메타버스로 분류될 수 있다.

 

 

 

 

Meta기존의 것에서 한 단계 발전된 상태를 의미하며,
다양한 분야에서 이 용어가 결합되어 사용된다.



1. 메 타 인 지 (Metacognition)

자신의 인지 과정을 인식하고 조절하는 능력.

 

2. 메 타 검 색 (Meta Search)

다양한 검색 알고리즘을 사용하여 여러 웹페이지를 취합해 검색 결과를 보여주는 기술.

가격 비교 사이트들이 메타 검색 방식을 사용하여
다양한 온라인 쇼핑몰의 제품 가격을 취합 및 비교할 수 있게 한다.

 

3. 메 타 데 이 터 (Metadata)

데이터에 대한 데이터, 정보의 구조 및 속성을 설명하는 데이터.

 

4. 메 타 프 로 그 램 (Metaprogram)

프로그램을 제어하거나 최적화하는 프로그램.

  • 어셈블리어(Assembly Language):

    컴퓨터의 하드웨어와 직접 소통할 수 있는 저수준 프로그래밍 언어.
    기계어(Machine Code, 0 1로 이루어진 이진수)와 1:1로 대응된다.


  • 컴파일러(Compiler):

    고수준 프로그래밍 언어로 작성된 코드를
    컴퓨터가 이해할 수 있는 기계어로 변환해 주는 프로그램.

 

 

 

애 니 메 이 션  &  게 임

그래픽 기술은 2차원 또는 3차원 애니메이션 영화를 제작하는 데 사용된다. 
실제로 촬영된 영상과 그래픽 기술을 조합하여 현실감을 높이기도 한다.

매우 복잡한 모델링과 고화질의 렌더링을 사용한다.
따라서 이를 위해서는,  많은 양의 인적 · 물적 자원이 필요하다.


그래픽 기술은  캐릭터,  배경화면,  애니메이션 등에도 사용된다.
게임은 (온  ·  오프라인에 관계없이) 사용자의 반응이 화면에 즉시 반영되어야 한다.

이를 구현하기 위해,  아래의 조건을 고려해야 한다:

  1. 사용자와 프로그램 사이의 상호 작용 설계
  2. 상호 작용에 걸리는 시간을 최소화

 

 

 

C 라이브러리 사용  ⇨  프로그래밍 언어

(C 프로그래밍 언어에서 제공하는 라이브러리를 사용하여 프로그램을 작성하는 것.)

 

C 라이브러리(C Library):

C 프로그래밍 언어에 포함된 여러 함수들의 모음으로,
프로그래머가 특정 기능을 직접 작성하지 않고도 사용할 수 있도록 만들어진 도구들.

 

 

Low–level 게임 개발

하드웨어에 가까운 수준에서 직접적으로
시스템 자원(CPU, GPU, 메모리 등)을 제어하는 방식으로 게임을 개발하는 것.

저수준 프로그래밍(low
level programming)을 통해 개발하는 게임은
성능이 뛰어나고, 하드웨어 자원을 효율적으로 사용한다.

그러나 개발 과정이 복잡하고, 시간 소모가 크다.

 

 

DirectX  &  OpenGL

하드웨어 가속을 사용하여 그래픽을 처리할 수 있는 저수준 API이다.
게임 개발자가 GPU(Graphics Processing Unit)를 직접 제어하고,
고성능 그래픽 렌더링을 구현한다.

 

 

 

아래는 고수준 게임 개발에 직접적인 역할을 하지는 않지만,
다양한 기술적 맥락에서 간접적으로 게임 개발에 응용되는 기술이다.

 

1. Java3D

Java 기반 3D 그래픽 API.

3D 그래픽 애플리케이션 및 게임을 개발할 수 있는 프레임워크.
3D 그래픽을 쉽게 만들 수 있는 고수준 API이기 때문에 게임 개발에 사용될 수 있다.

그러나 Unity, Unreal 같은 최신 게임 엔진에 비해 인기가 적다.

 

2. LLM (Large Language Model, 대형 언어 모델)

LLM은 자연어 처리에 사용되는 대형 신경망 모델로,
게임 개발에서는 대화형 AI 캐릭터, 스토리 생성, 대화 시스템 등을 구현하는 데 사용된다.

특히, 대화형 RPG 게임이나 스토리 기반 게임에서 플레이어와의 상호작용을 개선하는 데 유용하다.

 

3. VAE (Variational Autoencoder, 변분 오토인코더)

생성 모델 중 하나로, 데이터를 압축하여 새로운 데이터를 생성하는 방식이다.
게임 개발에서는 캐릭터 디자인이나 레벨 생성 같은 곳에서 VAE를 사용할 수 있다.

예를 들어, 게임의 다양한 캐릭터나 맵을 자동으로 생성하는 데 응용할 수 있다.

 

4. GAN (Generative Adversarial Network, 생성적 적대 신경망)

두 개의 신경망(생성자와 판별자)이 경쟁하면서 더 나은 데이터를 생성하는 모델.

게임 개발에서는 게임 내 캐릭터 디자인배경 생성, 아트 디자인 등을 자동화하는 데 사용할 수 있다.
특히, 고품질의 그래픽 콘텐츠를 자동으로 생성하는 데 유용하다.

 

5. Diffusion 모델 (Stable Diffusion)

점차 데이터를 더 정교하게 만들어가는 방식으로 이미지를 생성한다.

특히 이미지 생성에서 강력한 성능을 발휘하며,
게임 개발에서는 게임 아트배경 생성, 캐릭터 디자인에 사용할 수 있다.


 

 

 

0 2 .  컴 퓨 터  그 래 픽 스  구 성  요 소

모델링(Modeling)과  렌더링(Rendering)라는 두 가지 카테고리로 구분할 수 있다.

 

1. 모델링은 무엇을 그릴 것인지에 관련된 것으로,
그래픽으로 표현하고자 하는 장면(Scene) 내부의 물체(Object)를 정의하는 작업을 말한다.

물체를 선분의 집합으로 정의하려면
선분의 양 끝점 위치를 명시하는 작업이 필요하다.

즉, 평면 다각형의 집합으로 다각형 정점의 위치를 명시하는 작업이 모델링이다.
이 밖에 여러 가지 물체를 조합하여 새로운 물체를 정의하는 작업도 모델링에 속한다.

모델링은 2차원 또는 3차원 물체를 표현할 수 있는 자료 구조와
해당 자료 구조를 처리할 수 있는 알고리즘을 포함하고 있다.

 

2. 렌더링은 모델링에 의해 정의된 물체를 어떻게 그릴 것인지에 관련된 것이다.
(우리가 화면에서 보는 모든 그림 ⇨ 렌더링의 결과)

아래는 렌더링과 관련하여 고려해야 하는 요소이다:

  • 관찰자의 위치
  • 물체 표면의 재질
  • 조명의 세기 및 위치
  • 3D 객체를 2D 평면으로 변환하는 과정 등

사용자가 원하는 바에 따라 그래픽을 제공해야 하는 개발자들은
사용자 인터페이스(User Interface)를 3의 구성 요소로 간주하기도 한다.

  • 사용자와의 상호 작용
  • 윈도우나 메뉴 구성 등

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


 

728x90
반응형