TWA Houdini1/Starter & Particles

TWA 후디니 1 Particle_03 : POP Solver 시작

yiss09 2023. 2. 2. 00:49

https://www.twahoudini.com/course/starterparticles1

 

HOUDINI1_ STARTER & PARTICLES

1️⃣ 후디니 작업을 위한 기본 프로세스 이론을 공부합니다. SOLVER 작동 개념을 훈련하고 PARTICLE 시스템을 구현합니다.

www.twahoudini.com

 

Particle03에서 DOP Network와 그 구성에 대해 공부해보자.

 


DOP Network

 

DOP  Network의 구성이다.

1. Object로 이용할 구성요소를 골라줄 수 있다.

2. Substeps는 디테일을 조절할 때 사용한다. 파라미터의 수가 높아질수록 프레임 내에서 더 많이 쪼개져  그만큼 디테일이  향상된다.

3. Solver node에서와 같이 StartFrame을 조절할 수 있다.

+ Geometry 단계의 wire를 쌓는 문법과 Dynamic Solver 안에서 wire의 문법이 조금 다르다. 공부할 때 새로운 것을 배운다 생각하고 배우는 것이 더 쉽게 내용을 받아들일 수 있을 것이다.

 

 


POP Object

 

기본적으로 Particle system이 구동되기 위해선 Object, Source, Solver이 3가지 요소가 반드시 필요하다.

Pop Object : 그릇(Container)에 해당한다. 실질적으로 어떤 결과를 만들고 싶은가는 POP Object에 달려있다. Pop solver의 첫번째 input에는 반드시 Object에 관한 내용이 들어가야 한다.

$OS : node의 이름을 따라간다는 뜻으로, node의 이름을 popobject1에서 spark로 변경해주면 그대로 Object  Name도 spark로 인지된다.

Object Name에 적혀있는 $OS를 지우고 원하는 이름을 작성해도 좋다. $OS가 아닌 다른 이름이 적혀 있을 시 외부의 DOP Network node에서의 Object 부분에는 반드시 pop object의 node name이 아닌 object name이 들어가야 DOP Network가 작동한다.

 

 


POP Source

 

POP Source : POP Object를 만드는 재료이다. 어떤 자료를 불러서 재료로 활용할지, 이 재료가 가진 어떤 Attribute을 어떻게 사용할지, 이 재료의 유통기한은 어떻게 될지에 대해 조절해주는 노드이다. 결과를 내기 위해 POP Source의 자료를 가지고 앞서 준비해둔 POP Object에 담는 과정을 거친다. 

1. Guide : Points가 생성될 Object의 Guideline이 생성된다.

2. Emission Type : All Points, All Geometry, Points, Scatter onto Surfaces가 있다. 어떤 것을 고르냐에 따라 Points가 다른 방식으로 나오게 되며, Birth에서의 선택사항도 변경된다.

3. Geometry Source : Use Parameter Values, Use DOP Objects, Use First Context Geometry, Use Second Context Geometry, Use Third Context Geometry, Use Fourth Context Geometry가 있다.

4. Geometry Source에서 Use Parameter Values를 선택할 경우 SOP에서 불러온 Object를 사용할 수 있다.

 

Birth 파트 매우 중요

Points의 생성과 소멸을 조절하는 Birth 카테고리로 각각의 쓰임새와 그 차이를 확실히 인지하고 사용하자.

1. Impulse Activation : 파라미터의 숫자가 1보다 작으면 Impulse 방식이 작동하지 않고 1보다 크거나 같으면 작동한다. 즉, 1보다 작으면 = Off, 1이거나 더 크면 = On이다. 예를 들어 0.99가 적혀 있다면 Impulse가 작동하지 않는다. 또한 1보다 큰 수는 1과 차이가 없다.

2. Impulse Count : Impulse Activation이 1이상이어야 작동하며, 파라미터의 숫자는 매 Frame 마다 몇개의 Points를 생성할지를 뜻한다. Substeps의 영향을 받는다. 예를들어 Substeps가 3, Impulse Count가 4라면 StartFrame 다음의 Points의 갯수는 4 + 12 = 16개가 된다.

3. Const.Activation : Impulse Activation과 같은 방식으로 Const를 On, Off 할 때 사용한다.

4. Const.Birth Rate : 1초에 생성되는 Points의 갯수이다. 후디니 기본셋팅으로 1초는 24Frame으로 구성되어 있다. 그렇다면, 1Frame이 지날때 Const.Birth Rate * 1/24 만큼의 points가 생성된다. 다만 이 방법은 Impulse 방식에 비해 생성된 Points의 갯수가 정확하게 딱 들어맞지 않으며, 아래의 Seed를 조절해 갯수의 범위를 조절해 줄 수 있다. Seed를 조절해 만들어진 값들은 평균적으로 Const.Birth Rate의 값을 크게 벗어나지 않는다.

5. Max Points per Frame : 각 Frame 당 생성될 수 있는 Points 수에 제한을 둔다.

6. Life Expectancy : 생성된 Points의 수명을 조절할 수 있다. 단위는 초이다.

7.  Life Variance : Life Expectancy에 범위를 주어 그 안에 랜덤한 값을 준다. 예를 들면 Life Expectancy가 1이고 Life Variance가 2이면 Points의 Life는 -1~3이 된다. 다만 0보다 작은 값은 표시되지 않기 때문에 0~3으로 작동한다고 보면 된다(StartFrame이전이 없기 때문).

8. Jitter Birth Time : Points가 생성되는 Start Frame에서의 Points의 위치를 정할 수 있다. 자세한 내용은 아래에서 다뤄보겠다.

 

Attributes 카테고리에서 @v(velocity)에 관한 내용을 다룰 수 있다.

Use inherited velocity : Object가 이미 가지고 있는 velocity를 활용한다. Inherit Velocity에 있는 값은 기존의 값에 곱해진다고 보면 된다.

Add to inherited velocity : 원래의 velocity 값에 새롭게 velocity 값을 더해준다.

set initial velocity : 새롭게 velocity 초기값을 설정한다.

 

 


POP Solver

 

POP Solver : 주어진 재료 POP Source로 결과 POP Object를 계산해주는 과정이  POP Solver이다. POP Solver는 기존 Solver와 마찬가지로 이전 Frame에서 얻은 결과를 기준으로 정보를 업데이트 해준다.

 

 


Emission Type

 

All Points와 All Geometry는  Impulse 방식으로만 작동하기 때문에 Birth에서 사용할 수 있는 부분이 적어진다.

Points와 Scatter on to Surfaces의 차이는 둘의 Points 발생 위치에서 차이가 난다. Points는 Object에서 Points가 있는 위치에서만 새로운 Points가 발생하지만, Scatter onto Surfaces에서는 Object 표면 전체에서 Points가 발생하는 것을 알 수 있다.

 

 


Jitter Birth Time

 

Jitter Birth Time의 결과로 어떤 뉘앙스를 가지게 되는지, 그리고 Interpolate Source를 바꾸어 주었을 때 어떤 뉘앙스로 Source가 나오게 되는지 확실히 알아야한다.

 

그냥 None의 형태보다는 Positive나 Negative에서의 None이 예쁜 형태를 가진다.

 

Postive_Forward와 Negative_Back, Positive_Back과 Negative_Forward가 비슷한 형태를 띠는 것을 알 수 있다.

Postive_Forward나 Negative_Back가 띠의 형태가 아닌 조금 흐릿하게 이어진 형태를 띠는 이유는 앞선 Points를 이용한 설명에서 알 수 있듯이 point가 겹쳐 있는 부분이 존재하기 때문이다.

그림을 보며 확실히 뉘앙스를 파악하고 가자.