1. Channel
1) Function
- 함수란 특정한 'input'을 받아 계산 결과를 'Return(Output)'함
2) 함수 Visualize
- 넘버를 X축, 계산 값을 Y축으로 그래프를 그릴 수 있음
- 함수 식을 y = f(x)라고 했을 때,
- P.x = @ptnum
- P.y = f(P.x)
ptnum
ptnum은 각 포인트의 고유한 번호를 나타냄. 0부터 시작하며, 포인트를 식별하고 데이터 처리에 사용. 예를 들어, 특정 포인트에만 작업을 적용하거나, 반복 작업을 수행할 때 유용. 간단히 말해, ptnum은 포인트를 다룰 때 중요한 기준점 역할
3) 함수의 이동
- y = f(x)의 함수가 있을 때, y = amp(Height높이) * f(freq * (x - xoffset) + yoffset
- 함수 안에서 * / + - 의 역할과 함수 밖에서의 * / + - 역할이 다름
4) Circle & Helix
Circle
- P.x = sin(@ptnum)
- P.y = cos(@ptnum)
Helix
- P.x = sin(@ptnum) * @ptnum
- P.y = cos(@ptnum) * @ptnum
- P.z = @ptnum
ptnum을 곱하면 둘레가 점점 넓어짐
5) ch() chf()
- ch : 파라미터의 현재 프레임의 값을 계속 가져옴(계속 움직이면 움직일 때마다의 현재 프레임 값)
- chf : 파라미터의 애니메이션 그래프에서 특정 x 축 값에 해당하는 값을 가져옴
6) User Parameter
- Spare Parameter : 노드의 필요에 따라 파라미터를 추가할 수 있음
- 톱니 바퀴 모양의 아이콘에서 Edit Parameter interface
- 드래그로 원하는 타입의 파라미터를 추가할 수 있음
- From Nodes : 현재 노드 안쪽에 있는 파라미터들을 꺼내올 수 있음
7) 글로벌 변수와 로컬 변수
- 후디니 환경변수 중, 특정 노드에서만 사용 가능한 것은 로컬 변수라고 함
- $F, $HIP 등 후디니의 모든 노드 파라미터에서 사용 가능
- $PT, $NPT, $CEX, $CEY, $CEZ 등은 특정 노드에서만 사용 가능
- 사용 가능한 로컬 변수들은 노드별 help에 표기되어 있음
- 점차 @Attribute 방식으로 대체되는 추세
8) Attribute
- 많이 사용되는 기본 Attirbute
- @ptnum(포인트 넘버를 후디니가 찾아주는 것), @primnum(프리미티브 넘버)
- @numpt, @numprim : 전체 포인트 개수, 전체 프리미티브 개수
- @curve : curve의 UV를 나타내는 Attribute로 0~1로 Normalize 됨
2. Copy : 포인트들에 Geometry를 붙이는 노드
Houdini에서 많은 노드들은 N, up Vector Attribute를 기준으로 방향을 정렬
- Defualt : Z축을 N방향에, Y축을 up방향에 정렬
- N, Y 데이터로 정렬을 함
Copy와 Instance 계열의 노드들은 그 외에도 여러가지 Attribute를 복사할 때 사용(CopytoPoint, Instance 등)
- Orient(float4) : 회전을 관장하는 Attirbute, 이 Att가 있을 경우 N, up 등 다른 Att는 무시되고, Orient로 인해 회전이 결정됨
- pscale(float) : Scale 스케일(X, Y, Z 한 번에)
- scale(float3) : XYZ가 분리된 scale
- N(vector) : 방향과 크기가 있으면 vector로 표현, Z축을 정렬(Orient 있으면 무시)
- up(vector) : y축을 정렬(Orient 있으면 무시)
- v(vector) : N이 없을 때 Z축을 정렬(Orient나 N이 있으면 무시)
- rot(float4) : 결정된 회전값에 추가로 회전을 주는 Atribute
- P(vector) : 위치를 결정
- trans(vector) : 추가로 위치를 움직임
- pivot(vector) : 중심축을 결정
- transform(3*3 or 4*4 Matrix) : P, pivot, trans 외의 모든 Attribute를 대신함
- shop_materialpath(string) : Shader를 결정하는 Attribute
- material_override(string) : Shader 파라미터를 바꿔주는 Attribute
RGB vs HSV
- RGB : red, green, blue로 색상을 표현하는 방법
- 수정(ex. 붉은톤 추가)에 용의하지만 덜 직관적
- HSV : hue(색상), saturation(채도), value(명도)로 색상을 표현하는 방법
- 특정 색상을 결정하기에 직관적이지만 색상의 연산이 안됨
- RGB는 두 색상의 값을 더해주면 색을 합친 것처럼 밝아지나 HSV는 연산이 안됨
Subnet
- 노드들을 하나로 묶어줌. Asset을 제작할 때, 활용(HDA라고 이야기 함)
- 노드 전체를 선택하고 Shift C하면 됨. 또는 우측 상단의 Subnet 아이콘 클릭
- 해체할 때는 Subnet 우클릭 후 Action → Extract Contents
Switch
- Input을 선택하는 노드
- Parameter Interface에서 Toggle 연결해서 어떤 옵션을 끄고 켜는 데에 사용함
3. Foreach
- 반복 작업들을 할 수 있게 고안된 노드로, BlockBegin과 BlockEnd로 구성됨
Method
- Fetch Feedback : BlockEnd에서 나온 결과를 가져옴(*결과를 다시)
- Extract Piece or Point : 조각 별로 혹은 point 별로 순서대로 가져옴(*순서대로 통과)
- Fetch Metadata : Metadata를 가져옴. Foreach 노드를 쓰는데 유용한 데ㅐ이터를 사용해줌(*데이터 생성기)
- BlockPath : 반복 작업을 수행할 때 각 반복에 대해 특정 블록을 지정하는 경로를 의미
- Create Meta Import Node : Metadata를 가져오는 노드를 생성(유용)
- Method에서 Fetch Metadata로 바꾸는 것과 똑같음
- 반복 할 때 유용한 데이터를 생성해주는 역할
BlockEnd
- Iteration Method(반복을 어떻게 할 것인가)
- Auto Detect from Inputs : Input에 따라 결정
- By Pieces of Points : 조각이나 Points 개수만큼 반복
- By Count : 특정 횟수만큼 반복
- Gather Method(결과를 어떻게 모아줄까)
- Feedback Each Iteration : 매 반복때마다 Feedback을 주면서 누적 적용
- Merge Each Iteration : 매 반복 나오는 Geometry를 모두 합침
- Metadata : Blockbegin의 Fetch Metadata로 Metadata를 가져올 수 있으며, Detail Attribute로 저장됨
- Iteration : 현재의 반복 횟수로 0부터 시작
- Numiterations : 전체 반복 횟수
- ivalue(Integer Value)
- 실제 반복되고 있는 정수 값
- Count 모드에서 Start Value가 1이면, 첫 번째 반복에서 iteration은 0이지만, ivalue값은 1이 됨
- Value : 실제 반복되고 있는 실수 값
4. Detail Attribute
- SOP에서 Geometry가 가지고 있는 Attribute로 Geometry 하나당 하나의 Attribute를 가질 수 있음
- detail() 함수로 값을 가져올 수 있음
'3. 후디니(Houdini) 공부 > Houdini [이론]' 카테고리의 다른 글
6. [Houdini] Light, Material, Camera, Rendering, Compositing (0) | 2024.11.28 |
---|---|
5. [Houdini] VOP(언리얼 : 블루프린트), VEX(언리얼 : C++), Noise (0) | 2024.11.17 |
3. [Houdini] 후디니 많이 쓰이는 SOP (2) | 2024.11.03 |
[Houdini] 후디니 TIP (0) | 2024.10.28 |
2. [Houdini] 후디니 Parameter Controller 만들기(기능 모으기), (0) | 2024.10.28 |