POP BIRTH

파티클의 태어남부터 없어짐까지 생로병사를 담당하는 POP Birth 에 대해서 알아보자.

Posted: June 4, 2018
Version: Houdini 16.5

POP Source DOP

POP Source 노드는 파티클을 방출하는 소스 오브젝트에 대한 전반적인 설정을 담당한다.

이번 강좌에서는 POP Source 노드에 있는 [Birth] 탭 부분을 다룬다.

POP Source 노드

POP Source 노드

 

POP Source DOP 은 파티클 시뮬레이션의 전부라 해도 과언이 아니다.

이 노드를 어떻게 사용하는지에 따라 시뮬레이션의 결과물은 천지차이가 될 수 있다.


POP Birth 예제

/obj 에 파티클 소스가 될 스피어를 하나 만든다.

POP_basic_3.jpg

 

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

안쪽에 있는 'sphere1' 노드의 Primitive Type 옵션에서 Polygon 을 선택한다.

POP_source_2.jpg

 

파티클 시뮬레이션을 위해 POP Network 노드를 만든다.

만들어진 'popnet' 노드를 'sphere1' 노드에 연결한다.

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

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

 

이제 'popnet' 노드를 더블클릭하여 Dynamics 레벨로 들어가자.

파티클의 모션을 관찰하기 위해 Gravity Force DOP 을 만들고 다음과 같이 연결해 준다.

POP_basic_6.jpg

 

플레이를 해보면 이전 강좌와 마찬가지로 파티클이 아래로 떨어진다.

Emission Type 이 기본값 'Scatter onto Surfaces' 이기 때문에 스피어 면에서 방출된다.


Constant Birth

POP Source 노드의 파라미터에 있는 [Birth] 탭을 집중해서 보자.

[Birth] 탭에 있는 속성들 중에서 몇가지 중요한 것들만 설명하도록 한다.

 

소스에서 방출하려는 파티클 개수는 다음 두가지 방식으로 제어한다.

1. Impulse 방식: 프레임당 방출하려는 파티클 개수를 정할 수 있다.

2. Constant 방식: 초당 방출하려는 파티클 개수를 정할 수 있다.

POP_birth_1.jpg

 

Impulse Activation: Impulse 방식의 사용 유/무

Impulse Count: 프레임당 방출하려는 파티클 개수

Const. Activation: Constant 방식의 사용 유/무

Const. Birth Rate: 초당 방출하려는 파티클 개수

 

두 방식 모두 Activation 값이 1 이면 사용한다는 것이고 0 이면 사용하지 않는다는 뜻이다.

현재 Const.Birth Rate 값대로 1초에 5000개의 파티클이 만들어지는 것이다.

Impulse Activation 과 Const.Activation 속성의 기본값이 모두 1 이지만 Impulse Count 값이 0 이고 Const.Birth Rate 값이 5000 이기 때문에 결국 Constant 방식으로 파티클을 방출한다는 뜻이다.

 

만들어진 파티클 개수를 확인하기 전에 Probabilistic Emission 옵션을 끈다.

이 옵션은 Const. Birth Rate 근사치에 해당하는 개수를 만들기 때문에 정확하지 않다.

POP_birth_2.jpg

 

옵션을 끈 뒤, 프레임 1로 돌아가서 다시 플레이를 한다.

다이나믹 레벨에서는 어떤 속성을 변경할 경우, 타임라인의 캐쉬라인이 주황색으로 바뀐다.

POP_birth_5.jpg

 

프레임 1로 돌아가 캐쉬라인이 파란색이 되면 변경된 속성이 올바르게 적용된 시뮬레이션이라는 말이다.

POP_birth_4.jpg

 

프레임 24(1초) 에서 마우스 중간버튼을 이용해 노드 요약정보를 확인한다.

이때 네트워크 뷰에 있는 6개의 어떤 노드 위에서도 동일한 요약정보를 보여준다.

SOP 레벨에서는 연결된 노드계산이 Top>Down 방식이므로 노드마다 요약정보가 다르지만, 다이나믹 레벨에서는 모든 노드가 통째로 계산되어 동일한 요약정보를 보여준다.
프레임 24 에서 만들어진 파티클 개수

프레임 24 에서 만들어진 파티클 개수

 

1초동안 정확히 5000개의 파티클이 방출되었다는걸 알 수 있다.

플레이를 계속 해보면 파티클 개수는 다음과 같이 늘어난다.

프레임 48(2초) 에서의 파티클 개수 = 5000 x 2 = 10000개
프레임 72(3초) 에서의 파티클 개수 = 5000 x 3 = 15000개
...
프레임 240(10초) 에서의 파티클 개수 = 5000 x 10 = 50000개
요약정보에 있는 다른 부가정보는 이번 시간에는 신경쓰지 않아도 된다.

Impulse Birth

이번에는 Impulse 방식으로 파티클을 방출해 보자.

POP Source 노드의 파라미터를 다음과 같이 수정한다.

POP_birth_7.jpg

 

Const. Activation 속성이 0 이므로 Constant 방식은 더이상 작동하지 않는다.

대신, Impulse Count 값이 10 이기 때문에 프레임당 10 개의 파티클이 방출된다.

 

속성을 변경한 뒤, 프레임 1로 돌아가서 노드 요약정보를 확인한다.

프레임 1에 이미 10개의 파티클이 생겼음을 볼 수 있다.

프레임 1 에서 만들어진 파티클 개수

프레임 1 에서 만들어진 파티클 개수

 

플레이를 계속 해보면 파티클 개수는 다음과 같이 늘어난다.

프레임 24(1초) 에서의 파티클 개수 = 10 x 24 = 240개
프레임 48(2초) 에서의 파티클 개수 = 10 x 48 = 480개
...
프레임 240(10초) 에서의 파티클 개수 = 10 x 240 = 2400개

 

마지막으로 [Source] 탭에 있는 Emission Type 을 'All Points' 로 바꿔보자.

앞서 'All Points' 옵션은 소스 오브젝트의 모든 점에서 파티클이 방출된다고 설명했다.

POP_birth_9.jpg

 

[Source] 탭에서 Emission Type 을 바꾼뒤, 다시 [Birth] 탭으로 가보자.

Impulse Activation 이외의 다른 속성들이 비활성화된 것을 볼 수 있다.

POP_birth_10.jpg

 

결국 Impulse 방식이므로 프레임당 방출하는 파티클 개수는 소스 오브젝트의 점 개수가 된다.

프레임 1로 돌아가면 'sphere1' 의 점 개수인 42개의 파티클이 생겼음을 볼 수 있다.

프레임 1 에서 만들어진 파티클 개수

프레임 1 에서 만들어진 파티클 개수

 

플레이를 계속 해보면 파티클 개수는 다음과 같이 늘어난다.

프레임 2 에서의 파티클 개수 = 42 x 2 = 84개
프레임 3 에서의 파티클 개수 = 42 x 3 = 126개
...
프레임 100 에서의 파티클 개수 = 42 x 100 = 4200개