진정한 잡탕이 되기로 했다.
역시 할인 하길래 충동적으로 구매한 강의
- Houdini FX For Beginners - Raffi Bedross
0. 후디니 찍먹이다.
3D tool 중에서 제일 어렵다는 후디니 강의를 듣고 대충 따라해보기로 했다.
- 툴의 작동원리 라던가, 컨셉 같은거에 대해서는...
- 느낌만 겨우 오는 수준이니, 굳이 그거를 단어로 정리했다가 틀릴까봐 ㅋㅋㅋㅋ
- 간단히 노드 위주 정리로 시작을 해서..
- 미래의 내가 깨달을 방법론(?)으로 적당히 넘어가면 되지 않을까...
(노드 하나하나가 엄청 일반적인 기능을 많이 가지고 있고, 너무 자유로워서... 어렵게 느껴진다.)
(에디터에서 지정하는, 혹은 노드에서 지정하는 여러 속성값들도 마찬가지...)
사실 여기에 다 있긴한데... 몇 번 써봤던 것들 혹은 자주 쓸만 한 것들을 정리하는 느낌으로 간다.
1. 일단은 Geometry 노드 먼저 살펴 보겠다.
- 강의 순서 따라 간다.
치즈
- Box : box 모양 primitive를 생성하는 노드다...6면 8점 12선..
- matchsize : 입력으로 들어오는 노드나 group에 대해 Translation이나 Scale을 정해진 Target으로 매칭 시키는 노드이다.
- fuse : 입력으로 들어오는 노드나 group에 대해, 점 혹은 면이 특정 거리 이하가 되면(어쩌면 추가 조건이 있을 수도) 융합 되도록 설정하는 것이다.
- Null : 아무것도 안하는 노드이다. 노드 입력을 그대로 출력한다.
- scatter : 입력으로 들어오는 노드나 group에 대해, 적당히 랜덤으로 점을 찍어주는 노드다.
- attribute randomize : 입력으로 들어오는 노드나 group에서 지정한 속성값을 랜덤으로 만들어주는 것이다.
- copytopoint : 첫번째 입력으로 들어오는 노드나 group을 두번째 들어오는 points들에 복사해서 위치 시키는 것이다.
- boolean : 이름보다는 좀 더 일반적인 집합 연산을 하는 느낌이다. 입력으로 들어온 두 노드 혹은 그룹에 대해, 합칠 것인지, 교집합을 걸 것인지, 어느 한쪽에 대해 차집합을 할 것인지 등을 정하는 것이다.
- remesh : 입력으로 들어온 친구(이제부터 짧게 친구라고 하겠다.)를 다시 삼각형으로 쪼개서 메쉬로 만드는 것이다.
- polyreduce : 입력으로 들어온 친구의 polygon 개수를 줄여주는 것이다. 내부적으로 모양을 최대한 유지 시켜주려한다.
- smooth : polygon의 각이 크게 변하는 곳의 정도를 줄여준다.
- subdivide : polygon 개수를 늘려 더 부드럽게 만들어 준다.
- color : 입력으로 들어온 친구의 color 속성에 값을 채워준다.
컵
- Curve : 곡선을 나타내는 노드다. 에디터에서 Draw Curve로 그릴 수 있다.
- Revolve : 입력으로 들어오는 친구를, 어떤 축을 중심으로 회전을 시켜 도형을 만드는 것이다.
- PolyExtrude : 입력으로 들어오는 친구를 특정 방향(각 면의 노벌 방향 등)으로 추출해서 뽑아내는 것이다.
- PolyBevel : 입력으로 들어오는 친구(보통은 edge)를 비스듬하게 깎는다.
- Resample : 입력으로 들어온 친구(여기서는 보통 곡선 혹은 곡면)을 다각형으로 만드는 노드다.
- Carve : 입력으로 들어온 친구를 일정부분 잘라내거나 추출하는데 사용한다.
- PolyWire : 입력으로 들어온 친구(보통 곡선)를 따라서 튜브 형태로 만드는 노드다.
- merge : 입력으로 들어온 친구들을 합치는데 사용한다.
기름통
- PolySplit : 입력으로 들어온 친구의 폴리곤을 잘라서 분리 시키는 것이다.
- UvProject : 입력으로 들어온 친구의 UV 성분을 만들어서 Texture가 어떻게 매핑될지 정하는 노드다.
- Material : 입력으로 들어온 친구에게 Material을 입히는 것이다.
- Group : 그동안 언급했던 친구에서 group을 말하는데, 노드, Object, Surface 같이 점, 선, 면을 선택해서 group을 생성할 수 있고 그것들에 대해 노드 연산을 할 수 있게 해주는 것이다.
- UV Quick Shade : uv 매핑이 어떤식으로 되는지 테스트 해볼 수 있는 노드다.
- font : 문자를 작성할 수 있고, 그것을 primitive 로 사용할 수 있게 해주는 노드다.
거미줄
- Circle : 원을 그리는 노드다. 부분적으로도 그릴 수 있다.
- Edit : 입력으로 들어온 친구의 점, 선, 면을 곡선 혹은 곡면을 이용해서 변환 할 수 있게 하는 노드다.
- Copy : 입력으로 들어온 친구를 복제하는 노드다. 복제할 때 마다 변환 방법을 정한다.
- Line : 선을 그리는 노드다.
- Point Jitter : 입력으로 들어온 친구들의 점을 랜덤하게 위치시키는 것이다.
유기체
- Attribute VOP : 내부적으로 node network를 만들 수 있는 노드다.
(참고로 VOP는 Vertex에서 Vector 성분을 가지고, 연산하는 연산자를 말한다.)
pop sop dop? what do these mean? | Forums | SideFX
- AA Noise : AA 방식으로 Noise로 만드는 노드다.
- Fit Range : 어떤 구간으로 들어온 값을, 새로운 구간의 값으로 remapping 해주는 것이다.
- Divide : 입력으로 들어온 친구를 노드에서 정한 방식으로 나누는 노드이다. 예제에서는 dual 방식으로 나누었는데,
dual이 뭔지는 다음 링크를 보고 알아보도록 하자.
- Ray : 첫번째로 들어온 친구의 노멀 방향으로 Ray를 쏴서, 두 번째 들어온 친구와 닿은곳으로 변환하는 노드다.
2. 이제 Pyro 뭐시기를 살펴보자.
- 시뮬레이션을 가능하게 해주는 새로운 속성(?) 필드(?) 느낌이 추가가 되는 것이다.
Smoke & Candle Light
- Torus : 도넛모양 primitive를 만드는 노드이다.
- Pyro Source : 입력으로 들어오는 친구를 pyro에서 사용할 수 있게 시뮬레이션 할 수 있는 속성(DOP)을 추가한 점으로 바꿔주는 노드이다.
Introduction to Pyro (sidefx.com)
(pyro는 막 완전 현역은 아니라고 한다... 현재는 다른 기술을 사용한다고 한다.)
- Attribute Adjust Vector : 입력으로 들어온 친구의 여러 attributes 값을 Vector로 지정할 수 있게 해준다.
- Volume Rasterize Attribute : 입력으로 들어온 point와 point의 속성으로 VDB를 생성한다.
- Pyro Solver : 연기 시뮬레이션을 제공하는 Smoke Solver에 불꽃 시뮬레이션을 할 수 있도록 파라미터를 추가한 노드이다. 이러한 효과를 연출할 때 다양한 파라미터를 사용하게 된다.
Pyro effects (smoke and flames) (sidefx.com)
- Pyro Bake Volume : Rendering 단계에서 pyro volume 연출에 추가적인 작업을 하고, 머테리얼을 적용시키고, 빛 산란도 적용한다.
Smoke 2
- Gas Damp : pyro solver 네트워크 안에서 사용하는 노드, micro solver이다. gas의 속도나 모션을 줄이는데 사용한다.
- Gas Blur : micro solver이다. gas 에서 사용하는 속성(field) 값에 blur를 먹이는데 사용한다.
- Gas Turbulence : micro solver이다. gas의 velocity 속성에 회오리 움직임을 준다.
Tornade
- Light : ( USD기반의 막 뭐라뭐라 하는데 뭔지 모르겠고) Effect에 계산할 빛 성분 혹은 정보를 주는 노드이다.
- Gas Axis Force : microsolver이다. velocity field에 축을 기반으로 하는 회전 성분을 추가하는데 사용한다.
Tire Smoke
- Labs FBX Archive Import : Fbx 관련 플러그인을 깔면 사용할 수 있다. Fbx 파일을 import 하는데 사용한다.
- Blast : 도형, 점, 선, 면을 좀 더 절차적으로(?) 삭제하는데 사용하는 노드이다.
2_1. Pyro 뭐시기를 예제 몇 개를 까보면서 속성별로, 절차적으로 느낌을 잡아보는 거로 해보자.
Fire
- 일단 primitive를 먼저 잡는다. 그리고 적당히 불꽃이 피어오르는 장소를 나타내도록 변환을 한 다음.
- Pyro Source로 Pyro 연산을 위한 Point로 바꾼다. Pyro 연산을 위한 Attributes 도 여기서 지정한다.
(위와 같은 성분을 가진 점들이 다음 노드로 넘어가고)
- 아래 + 오른쪽 사진을 보면 density, temperature, burn 이름을 가진 Attritube Noise 3개가 있는데,
- Pyro Source에서 위 3가지 성분을 point에 넣어서 생성을 했고, 그 point 들이 아래 3개의 Attritube Noise 노드를 지나가면서 각 성분에 noise가 먹어지는 것이다.
(빨간색 일 수록 해당 attribute의 값이 높고, 파란색이면 낮은 것이다.)
- 그리고 Volume Rasterize Attributes 에서 point 들을 VDB(뭔지 잘 모르겠는 ... smoke의 모양을 가진 친구)로 바꿔준다.
- 이제 Pyro Solver에서 point에서 변환된 VDB들을 그들의 Attribute 값과 + Node에서 지정한 Parameter를 이용해서, 시뮬레이션을 실행한다.
- 속성값은 뭐가 엄청 많다... 그때 그때 만져가면서, 모르는 단어 있으면 사전 찾아가면서 만들어보자.
- 불꽃의 색과 연기의 색도 Pyro Solver에서 지정한다.
- 결과물 :
Smoke with Colors
- 이 친구는 Color 속성이 다음처럼 noise를 먹은
- 구를 가지고 Pyro 연산을 한 것이다. 이를 위해서는 Pyro Source에서 입력 primitive의 Color 속성을 받아야 한다.
- 그리고 그것이 Volume Rasterize Attribute와 Pyro Solver로 간다면, 다음과 같은 결과가 나오게 된다.
Smoke Buoyancy with Temperature
- 온도에 집중한 예제 느낌쓰?
- 아래 처럼 Temperature를 제어하는 Parameter와 Temperature의 영향을 받는 Shape - Buoyancy(온도가 높을 수록 상승하는 힘을 가짐) 를 이용해서 smoke를 만들는 예제다.
- Houdini는 오른쪽 처럼 VDB의 Temperature를 시각화 하는 것을 제공한다.
3. 아직 강의 안봄
- ㄹㅇㅋㅋ
참고자료
- Attributes 관련 자료 : Geometry attributes (sidefx.com)
'Programming > Houdini&Blender' 카테고리의 다른 글
[언리얼] 내 캐릭터를 Manny로 리타게팅하기 (0) | 2023.01.25 |
---|---|
[언리얼] 블렌더 캐릭터 언리얼로 보내기 (0) | 2023.01.25 |
[retopology] 손으로 리토폴로지 (0) | 2023.01.22 |
[공부] 얼굴 만들기 왜케 빡세냐... (0) | 2023.01.11 |
[찍먹] 왼쪽 팔 어디갔냐... (0) | 2023.01.10 |