VOL ISO-OFFSET

원하는 오브젝트를 손쉽게 볼륨으로 만들어주는 Iso Offset 노드에 대해서 알아보자.

Posted: January 18, 2018
Version: Houdini 16

IsoOffset Surface Operator

IsoOffset SOP 은 인풋 지오메트리를 볼륨으로 변환시켜 준다.

IsoOffset SOP 노드

IsoOffset SOP 노드

 

IsoOffset SOP 은 다음과 같은 특징을 가진다.

 

1. Output: 후디니 볼륨

IsoOffset 노드는 Standard Houdini Volume 을 생성한다.

인풋 지오메트리를 VDB 볼륨으로 생성하는 방법은 추후에 다루도록 하자.

 

2. 볼륨 타입: Scalar 필드

만들어진 볼륨의 타입은 Float(Scalar) 필드 이다.

 

3. Input: Water-Tight

인풋으로 오는 도형에 빈틈이 없고 막혀있어야(Water-Tight) 정확한 볼륨을 계산해 준다.

 

이러한 특징들은 아래 예제를 따라하며 복습하도록 한다.


IsoOffset SOP 예제

IsoOffset 노드를 이용해서 토러스 오브젝트를 볼륨으로 변환시켜 보자.

 

후디니를 열고 /obj 에 토러스 지오메트리를 만든다.

VOL_iso_2.jpg

 

만들어진 'torus1' 노드를 더블클릭하여 Geometry 레벨로 들어간다.

TAB 메뉴로 IsoOffset SOP 을 하나 만든다.

VOL_iso_3.jpg

 

만들어진 'isooffset1' 노드를 'torus1' 에 연결한다.

연결한 뒤에는 'isooffset1' 노드의 Display Flag 를 선택한다.

연결한 뒤에는 'isooffset1' 노드의 Display Flag 를 선택한다.

 

다음과 같이 토러스 지오메트리가 볼륨으로 변환된다.

VOL_iso_6.jpg
Wireframe 모드에서는 볼륨이 나타나지 않는다. 씬 뷰에서 단축키 'w' 를 눌러서 Shaded 모드로 확인하도록 한다.

 

결과물이 후디니 볼륨이기 때문에 Voxel 들이 존재하는 영역은 주황색 박스 전체가 된다.

토러스 안쪽에 있는 Voxel 들은 농도값이 1이기 때문에 흰색 연기로 보인다.

토러스 밖에 있는 Voxel 들은 농도값이 0이기 때문에 비어 보이는 것이다.

이렇게 후디니 볼륨은 농도값이 0 인 부분까지 포함하는 전체 박스를 계산해야 하기 때문에 메모리가 낭비될 수 있다는 점을 기억한다.

 

'isooffset1' 노드 위에서 마우스 중간버튼으로 요약 정보를 확인하자.

현재 500(10x5x10) 개의 Voxel 들로 이루어진 것을 확인할 수 있다.

VOL_iso_7.jpg

 

이제 'isooffset1' 노드의 파라미터를 자세히 들여다 보자.

VOL_iso_8.jpg

 

Uniform Sampling Divs 속성에서는 몇 개의 Voxel 로 나눌 것인지를 결정한다.

 

Uniform Sampling 속성에서는 어떤 축을 기준으로 나눌 것인지를 결정한다.

Max Axis 는 인풋 지오메트리의 XYZ 바운딩 박스 중에서 가장 큰(Max) 축을 참조한다.

 

토러스는 모양이 납작하기 때문에 X,Z 바운딩 박스 크기가 Y 축보다 크다.

그러므로 X 또는 Z 축을 따라서 10개의 Voxel 로 나뉘어 볼륨이 형성된다.

Y 축으로는 상대적으로 적은 Voxel(이 경우 5개) 들로 채워지게 된다.

볼륨을 그리드로 비주얼라이즈 한 모습

볼륨을 그리드로 비주얼라이즈 한 모습

 

'isooffset1' 노드의 Uniform Sampling Divs 개수를 60 개로 늘려준다.

VOL_iso_10.jpg

 

표현할 Voxel 개수가 늘어나므로 토러스의 곡면이 더욱 부드러워졌다.

Divs 개수를 너무 높게 설정할 경우, 버벅거림과 함께 프로그램이 다운될 수 있으니 주의하도록 한다.

VOL_iso_11.jpg
볼륨을 그리드로 비주얼라이즈 한 모습

볼륨을 그리드로 비주얼라이즈 한 모습

Divs 개수를 두 배로 늘린다고 전체 Voxel 개수도 두 배가 된다고 생각하면 큰 오산이다. 늘어난 Divs 개수는 X,Y,Z 세 개의 축 모두에 영향을 주어 전체 Voxel 개수는 기하급수적으로 증가하게 된다는 점을 명심한다.