Lesson 3: VOP 노이즈

노이즈란 무엇이며 어떻게 효과적으로 쓰이는지 알아보자.


노이즈란?

수학적 함수로서 다음과 같은 식을 가진다.

noise(a) = b

인풋 a를 받은 노이즈 함수는 아웃풋 b를 출력한다.


노이즈 그래프

노이즈 함수는 다음과 같은 그래프 형태를 갖는다.

일정한 패턴을 보이지 않고 다소 불규칙적인 높낮이의 연속임을 알 수 있다.


노이즈 종류

'Attribute VOP' 노드를 하나 생성한 후, VEX Builder 레벨로 들어간다.

VEX Builder 레벨에서 TAB키를 치고 'noise'를 타입한다.

'Anti-Aliased Flow Noise' VOP을 시작으로 여러 종류의 노이즈가 보인다.

지금 위의 모든 것을 이해할 필요는 없다. 다양한 노이즈 VOP들이 있다는 것만 알고 넘어간다.


노이즈 기본요소

노이즈 종류마다 각각의 특성이 있지만 다음과 같이 세 가지의 기본요소를 갖는다.

각각의 기본요소 값에 따라 노이즈 그래프 모양이 달라진다.

Amplitude 는 노이즈의 세기를 조절한다.

Frequency 는 노이즈의 빈도를 조절한다.

Offset 는 노이즈의 흐름을 조절한다.


노이즈 예제

/obj 에 그리드를 하나 생성한다.



엔터를 치고 Geometry 레벨로 들어가 'grid1' 노드의 RowsColumns 속성값을 바꿔준다.

RowsColumns 속성값은 각각 그리드의 가로와 세로선의 개수를 나타낸다.



씬 뷰 위에 마우스를 위치시킨 상태에서 단축키 'w' 를 눌러 와이어프레임 모드로 디스플레이한다.

후디니 단축키에 관한 강좌는 여기에 설명되어 있다.

그리드의 가로선과 세로선의 개수가 늘어나서 촘촘해졌음을 볼 수 있다.



계속해서 'Attribute VOP' 노드를 생성해서 'grid1'에 연결한다.

Display Flag 를 새로 생긴 'attribvop1'에 체크한다.



'attribvop1' 노드가 선택된 상태에서 엔터를 눌러 VEX Builder 레벨로 들어간다.

TAB메뉴를 이용해서 다음과 같이 3개의 VOP 노드를 만든다.

새로 만든 VOP 노드들을 다음과 같이 연결해 준다. 그리드 모양에 변화가 생겼음을 알 수 있다.



VOP노드 해설

Vector to Float 노드

벡터 데이터를 3개의 실수로 나누어 각각 접근이 가능하다.

'vectofloat1' 노드는 벡터인 'P'값을 x y z 값으로 나누어 준다.

x y z 요소중 x z 값만 이용되고 있음을 볼 수 있다.


Float to Vector 노드

독립된 3개의 실수들을 하나의 벡터 데이터로 묶어준다.

'floattovec1' 노드의 y 값은 'aanoise1' 에서, x z 값은 'vectofloat1' 에서 받고 있다.

새롭게 구성된 x y z 값은 하나의 벡터 데이터로서 결과값 'P'에 연결되었다.


Anti-Aliased Noise 노드

연결되는 인풋에 따라서 -0.5 ~ 0.5 사이의 값을 리턴한다.

'aanoise1' 노드의 pos 인풋에 그리드 각 점의 위치값인 'P'가 연결되었다.

-0.5 ~ 0.5 사이의 아웃풋은 'floattovec1' 노드의 y 값에 영향을 미친다.