Houdini/예제 따라하기

[예제] 벽돌만들기_01 을 진행하면서 추가적으로 알아본 것들

디지털 환경미화원 2024. 2. 25. 00:22

일단 벽돌만들기_01 에서 세 가지의 의문이 든다.
 
1. Voxel 이란 무엇인가?
2. VDB 란 무엇인가?
3. 왜 VDBfromPolygons 노드를 사용해야 하는가?
 
이것을 해결하고 넘어가야 할 것 같기에 기록한다.
 
1. Voxel 이란 무엇인가?
복셀 (voxel) 이란 Volume 과 Pixel 의 합성어로, 부피를 가진 픽셀이다.
2차원의 픽셀을 3차원으로 구현한 것을 말한다.
이것을 적극적으로 사용하여 구현한 게임이 [마인크래프트] 다.
 
2. VDB 란 무엇인가?
VDB 는 [Volumetric Database] 의 약자이다.
이것은 OpenVDB의 형식을 갖고 있는데, 이는 3차원 공간데이터를 저장하고 조작하기 위해 사용된다.
3D볼륨데이터 라고 인지하면 될 것 같다.
 
3. 왜 VDBfromPolygons 노드를 사용해야 하는가?
VDB 를 사용함으로써 폴리곤 지오메트리를 VDB 형식의 볼륨 데이터로 변환할 수 있다.

챗지피티쌤 에게 자문을 구한다

 
자.. 그러니까 
폴리곤 데이터를 VDB로 변환하고 그 VDB 에서 쓰이는게 Voxel 이라는 것 같다.
 

폴리곤: 점/선/면의 집합으로 표면의 형태를 정의한다
VDB: 3차원 공간의 데이터 구조이며 Voxel이라는 단위를 사용한다

폴리곤 데이터는 높은 묘사를 하기 위해 많은 갯수의 폴리곤을 사용해야 하며 이는 필연적으로 부하를 일으킨다.

하지만 VDB 같은 경우에는 데이터가 있는 부분에만 복셀을 할당하여 메모리를 절약한다고 한다.
실제로 데이터를 포함한 공간만을 저장한다는 것을 [스파스 데이터 구조] 라고 한단다.
이런 스파스 볼륨 접근 방식은 메모리 사용량이 크게 줄일 수 있다고 한다.
 

나무위키의 [복셀] 에 대한 서술. VDB가 아닌 복셀 그 자체만으로는 최적화와는 정 반대의 존재이다.

 

오호.. 생각해보니 그렇다. 폴리곤은 떼면 텅텅 비었지

 
 
그리고 중요하게 주목해야 할 부분이 [5.비파괴적 작업흐름] 일 것 같다.
우리가 후디니로 모델링을 하려는 이유가 무엇인가?
노드로 엮여진 결과물은 추후 수정이 매우 편리한 강점이 있기 때문이다.
따라서 노드의 결합으로 결과물이 만들어지는 작업 특성상 필요할 것이다.
해상도 조절도 매우 쉽다.
 
종합해보자면, 벽돌만들기_01 에서 진행했던 작업 흐름은
 
 

폴리곤메시 생성후 가공 

VDB로 변환 후 가공

다시 폴리곤메시로 전환


마지막으로 챗지피티쌤에게 다시 질문을 던졌다.
확실히 하기 위해서 말이다.
조금 감이 온다.

 
 
일단은 이정도 이해하고 넘어가기로 했다.