본문 바로가기
기타/3D 메쉬 데이터

[Mesh] vtk 라이브러리 전 폴리곤 메쉬란

by 혜 림 2022. 1. 11.

 

 vtk 라이브러리 말고도 3D 렌더링을 해주는 라이브러리가 파이썬에는 많은 것 같다. 

 그건 그렇고. vtk 라이브러리 전에 간략하게 3D 데이터에 대해서 알아보자.

 

 일단! 무엇보다도! 딥러닝 분반을 잘 골라서 수강했다는 생각이 들었다. 당시에 GNN을 처음 배웠는데 지금 하는 mesh랑 의외로 비슷하게 흘러가는 느낌이 있어서 이해하기 쉽다(고 생각한다. 실제로 정확하게 이해했는지는 모르겠지만) 한편 아쉽기도 하다. 교수님이 조금 더 빠르게 진도를 나가셨다면 polygon mesh 에 대한 설명도 다 들을 수 있었을텐데 하는.. ㅠ

 

 기본적으로 2D 그래프를 보자.

 

 2D의 그래프 기본은 

 Node 와 Edge 다. 

 

 Node 들은 Edge를 통해서 연결된다. 

 Node 들 마다 어떤 feature가 있을 수 있다. Edge 역시 마찬가지. 

 

http://machinelearningkorea.com/2019/08/02/gnn-graph-neural-network/

 

 

 바로 3D로 넘어가기 전에, 중간항을 거치고 넘어가고자 한다. 

 중간항은 컴퓨터 그래픽스다.


 우리가 보통 보는 이미지는 2D 이다. 

 3차원의 세계에 살지만, 카메라에 의해서 캡쳐되는 순간 2D 로 물체들은 투영된다. 

 

 하지만 2D에서 생성된 것을 3D로 가져오기 위해서는 일종의 과정이 필요하다.

 그러니까 예를 들면 컵의 옆면, 윗면, 아랫면의 전개도를 만들고 합쳐서 3D로 만들 수 있지만

 기술의 힘을 빌려, 컵의 모양 역시도 3D로 만들어보자는 것이다! 요즘은 3D 프린터기도 있으니까!

 

그래서 3D로 어떤 물체의 디자인을 만드는 과정을 컴퓨터 그래픽스라고 이해하면 될 것 같다.

 편의상 디자인을 만드는 과정은 '3D 전개도를 만드는 과정'이라고 표현하겠다

 

약간 이런 아이돌 만화에서 늘 춤추는 장면은 3D로 나오는데, 왜인지는 모르겠지만, 이 최종적인 결과는 전개도가 시각적으로 표현된 것이고, '렌더링'이라고 한다. 그리고 전개도를 만드는 과정은 '모델링'이라고 한다. 

 

 그래서 우리는 렌더링을 위해서 모델링을 잘 하는 게! 중요하다고 하면 되겠다. 

 

그럼 모델링은 어떻게 하는가? 


 처음부터 모든 곡면을 표현하는 것은 어렵고 GPU와의 궁합이 좋지 않다. 

 

위키백과

다들 이런 그림을 본 적이 있을 것이다. 

물체가 보면 다 삼각형으로 이루어져 있다. 

이런 3D 이미지를 polygon mesh라고 한다. 

 

mesh는 polygon 의 집합이다. 

polygon은 다각형이라는 뜻으로, 여기서는 삼각형. ( 보통 삼/사각형)

mesh는 많은 삼각형이 만들어 낸 집합, 여기서는 돌고래. 

 

이것과 2D 그래를 잘 비유해보면 뚝딱뚝딱 이해된다. 

polygon의 vertex(정점) 은 그래프의 노드

vertex를 연결한 것들은 그래프의 edge

이 edge 가 (3개) 모이면 polygon이 만들어진다.

 

다만 2D 그래프와 다른 점은 

polygon mesh에서 모든 노드들은 연결되어 있다. 어디서 뚝 떨어지고 이런 애들이 없다는 뜻이다. 

약간 circular 한 느낌? 물론 정말 그렇다는 뜻은 아니고. 다 연결되어 있다는 그런 맥락에서!

 


mesh 에서 vertex는 어떻게 나온 애들인가? 

vertex는 3D 개체의 꼭짓점이라고 생각하면 될 것 같다. 

이 그림이 이해가 잘 됨 

 

그냥 구가 있을 때 필수적인 꼭짓점을 찍었을 때,

그리고 많은 꼭짓점을 찾아 찍었을 때를 비교해서 보면

점점 더 곡률이 표현되는 것을 알 수 있다. 

 

대신 gpu도 죽겠지

댓글