vtk 라이브러리 말고도 3D 렌더링을 해주는 라이브러리가 파이썬에는 많은 것 같다.
그건 그렇고. vtk 라이브러리 전에 간략하게 3D 데이터에 대해서 알아보자.
일단! 무엇보다도! 딥러닝 분반을 잘 골라서 수강했다는 생각이 들었다. 당시에 GNN을 처음 배웠는데 지금 하는 mesh랑 의외로 비슷하게 흘러가는 느낌이 있어서 이해하기 쉽다(고 생각한다. 실제로 정확하게 이해했는지는 모르겠지만) 한편 아쉽기도 하다. 교수님이 조금 더 빠르게 진도를 나가셨다면 polygon mesh 에 대한 설명도 다 들을 수 있었을텐데 하는.. ㅠ
기본적으로 2D 그래프를 보자.
2D의 그래프 기본은
Node 와 Edge 다.
Node 들은 Edge를 통해서 연결된다.
Node 들 마다 어떤 feature가 있을 수 있다. Edge 역시 마찬가지.
바로 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도 죽겠지
'기타 > 3D 메쉬 데이터' 카테고리의 다른 글
[Autoencoder] Exploring Generative 3D Shapes Using Autoencoder Networks 요약 (0) | 2022.01.25 |
---|---|
[Mesh] vtk 라이브러리로 STL 파일 scratch 부터 rendering 하기 (0) | 2022.01.14 |
[Mesh]vtk 라이브러리로 polydata 만들기 (0) | 2022.01.12 |
[Mesh]vtk 라이브러리 전 normal이란 (0) | 2022.01.12 |
[Mesh] VTK 라이브러리 (0) | 2022.01.10 |
댓글