Daily Life of BlueRose

컴퓨터 & 코딩 공부/컴퓨터 그래픽스 & 언리얼 엔진

컴퓨터 그래픽스 - 기본지식

푸른로즈 2024. 8. 16. 11:31
728x90

여는 글

컴퓨터 그래픽스를 천천히 공부해 나가려 합니다.

 

전공자가 아니라서 여러가지 정보를 찾아가며 배우는 중이며, 언리얼엔진4-5를 몇 번 만져보았으나 용어가 생소하고 작업 과정이 익숙지 않아서 포기했다가 다시 들여다보기를 반복하고 있는 상황입니다.

 

용어와 원리를 모르다보니 아무래도 엔진의 기능이 지향하는 바를 아무래도 알아보기가 어렵더군요. 때문에 이번에는 시간이 좀 걸리더라도 원리 부분을 넉넉히 배워보고 다시 진행해보려합니다.


앞으로 기록할 내용들은 기본적으로 아래 내용들을 기반으로 작성할 예정입니다.

  • OpenGL ES를 이용한 3차원 컴퓨터 그래픽스 입문 / 고려대학교 한정현
  • OpenGL을 통한 3차원 그래픽스 프로그래밍 - 기초편 / 서강대학교 임인성
  • 언리얼엔진 문서 / 공식 강의
  • Reddit / Stackoverflow 등 사이트의 유저 의견

때문에 넘겨짚었거나, 연결고리가 명확하지 않은 경우가 있을 가능성이 있으니, 제 글을 참고하려는 분들께서는 이를 감안하여 비판적으로 수용하시길 권장드립니다. 

 

 

 

컴퓨터 그래픽스 제작 단계

어떠한 그래픽 개체를 생성하고 이에 대한 실시간 움직임을 부여하는데는 통상 모델링-리깅-애니메이션-렌더링-포스트 프로세싱의 5가지 단계를 거칩니다. 이때, 앞쪽 3개의 단게는 오프라인에서 디자이너들이 수행하며, 뒤쪽 3단계(애니메이션 포함)는 온라인에서 프로그래머가 엔진을 이용하여 수행하는 편입니다. 

 

일반적으로 전자의 작업에는 3D Max, 마야와 함께 블렌더(Blender)가 사용되고, 후자의 작업에는 게임 엔진인 언리얼 엔진과 유니티 엔진 등이 사용됩니다. 항상 두 프로그램의 차이가 어떤 건지 정확히 몰랐는데 아예 목표로하는 작업 단계 자체가 달랐군요.

 

언리얼 엔진의 경우, 간단한 모델링 기능이 포함되는 등 작업 구분선을 넘어서 하나의 프로그램에서 여러가지 작업을 동시에 수행할 수 있도록 편의성이 높아지고 있습니다.

 

반면 블렌더의 경우에는 버전이 높아지면서 오히려 게임엔진 기능을 삭제하고, 모델링 및 애니메이션에 특화된 프로그램으로 운영되고 있습니다.

 

OpenGL / Direct3D

게임 엔진 개발의 기반이 되는 API로 OpenGL이나 Direct3D가 사용됩니다. Direct3D는 마이크로소프트의 DirectX의 구성요소이며, 상당히 저수준에서부터의 개발을 필요로 합니다.

 

OpenGL은 크로노스 그룹이 관리하는 공개형 API이다(소스는 공개되지 않으므로 오픈소스는 아님). Direct3D와 달리 상당히 고수준으로 작성된 코드들을 포함하므로 초보자가 접근시 보다 용이합니다. 다만, 일정수준 이상의 그래픽 기능 구현을 위해서는 결국 Direct3D 등 저수준에서의 개발이 가능한 API를 사용하게 될 수 밖에 없다고 하네요.

 

그래픽스 관련 주요 용어

메시(Mesh) 

각각의 물체(Object)를 컴퓨터가 처리할 수 있는 방식으로 표현한 것을 모델(Model)이라고 부릅니다. 이러한 모델은 폴리곤으로 구성되고, 폴리곤으로 구성된 '모델의 토대'를 폴리곤 메시(혹은 줄여서 메시)라고 부릅니다. 참고로 언리얼 엔진에서는 모델이라는 용어 대신 오히려 Object라는 용어를 사용하는 것 같더군요.

 

텍스처(Texture)

모델링 단계에서 이뤄지는 작업에는 메시 작성과 함께 텍스처 작업이 포함됩니다. 텍스처는 메시 위에 입혀지는 표면 이미지로, 질감, 반사율, 법선 정보 등이 포함될 수 있습니다.

 

언리얼엔진에서는 머티리얼, 유니티에서는 프리팹이라는 클래스를 사용하는데, 이는 텍스처 뿐 아니라 코드와 기타 정보들을 한데 모아놓은 좀 더 복잡한 개체입니다.

 

리깅(Rigging)

모델이 애니메이션을 포함해야 하는 경우, 애니메이션의 구체적인 동작을 위하여 관절과 뼈대를 설정하는 단계입니다. 통으로 이뤄진 모델의 일부를 뼈로 지정하고, 그 뼈와 뼈 사이의 움직임이 어디까지 가능한지를 지정하여 관절로 세팅합니다. 

 

리깅은 상당한 시간을 요하는데, 인간형 모델에 한하여 이러한 리깅 작업을 자동으로 수행하는 무료 툴로 어도비사의 믹사모라는 서비스가 있습니다.

 

https://www.mixamo.com/

 

Mixamo

 

www.mixamo.com

 

반응형