
brute 프로젝트의 끝을 볼 때가 왔다.
file로 불러온 electric line의 캐시 데이터를 보면 굉장히 많은 정보들을 가지고 있는 것을 볼 수 있다.

이 정보들을 다 쓸 것이 아니기 때문에 불필요한 정보들을 제거하기 위해 clean 노드로 지워주자.
이제 발생하는 전기의 각각의 선에 대해서 반복적으로 어떠한 수행을 요청할 예정이다.
일단 라인에 두께를 추가해 보자. poly wire 노드를 사용한다.
기본값은 두께가 두껍기 때문에 wire radius를 0.01로 낮춰준다.

이렇게 끝낼 생각은 없다.
두께가 그때그때 시시각각 달랐으면 좋겠다. 어느 부분은 굵고 어느 부분은 가늘게 표현이 되었으면 좋겠다. 그리고 전기의 시작과 끝은 가늘었으면 좋겠다.
poly wire의 wire radius 값을 attribute wrangle을 활용해서 임의로 다뤄줄 수 있다.



이제 시작과 끝은 가늘고, 중간은 굵어지는 것을 묘사해 보자.
channel ramp로 @radius에 변화를 줄 수 있으면 된다. 그리고 channel ramp를 사용한다는 것은 라인의 시작부터 끝을 0부터 1 사이로 묘사가 가능해야 한다는 것을 뜻한다.(curveu 가 필요하다. > resample이 필요하다.)


작은 전기 라인에도 적용해 준다.

이제 spark를 만져볼 차례이다.
파티클 포인트 데이터를 선으로 묘사하고, 선을 다시 면으로 묘사해 주면 된다.

그리고 아래에 carve 노드를 달아서 길이를 조절해 준다.
작업한 선은 poly wire를 달아서 면으로 묘사해 준다.

이 작업을 small spark에도 동일하게 적용하고, 길이와 두께감을 약간 조절해 준다.
작은 스파크의 양을 조절해 줄 수 있도록 attribute wrangle을 달아준다.

이제 렌더 세팅을 해줄 차례이다.
원하는 내용들이 렌더를 했을 때 결과로 잘 얹어지는지 확인해야 한다.
Mantra의 계산에 잘 올라가는지를 확인해야 한다는 말이다.


일단 연기 색부터 조절해 보자.
이전에 이미 volume visualization 노드와 link를 걸어준 것이 있기 때문에 volume visualization 노드만 조절해 주면 scene view와 render 결과 모두 적용해 줄 수 있다.

HDRI를 사용해 보자.

전기에 색을 넣는다.
일단 @Cd = {1,1,2}로 파란색 느낌이 나는 하얀색으로 적용해 준다.

이제 연기 / 전기 / 스파크 / 브루트 각각 다 따로 렌더를 걸고, 이렇게 따로 얻은 결과들을 쌓고 쌓아서 compositing을 진행해 보기로 하자.
한 번에 뽑은 결과는 우리가 이용하기에 유리한 정보는 아니다.
후보정은 필수적으로 한다고 봐도 과언이 아닌데, 하나로 뭉쳐있는 이 상태를 뽑았을 때는 원하는 부분만을 수정해 주는 것이 불가능하다.
그리고 한 번에 렌더를 하기 때문에 많은 물체에 대해서 계산상의 상호작용이 일어난다. (렌더가 오래 걸린다.)
따로 뽑게 된다면,
원하는 부분에 대한 표현의 수정이 가능하다. 예를 들어 연기의 밀도를 수정해 준다던가, 색을 바꿔준다던가 하는 그런 것들 말이다.
그리고 결과를 뽑아내는데 시간 절약이 많이 될 수도 있다.
따로 뽑는다고 해서 그냥 연기 따로, 스파크 따로, 전기 따로 이런 식으로 뽑는 것은 곤란하다.
왜냐하면, 가려져서 안보여야 할 부분들이 그대로 렌더 되기 때문이다.
이런 식으로 가려져있는 부분에 대해 출력을 제한하는 방법이 있다.
Mantra 노드의 Objects tap에 있는 Forced Matte이다.

force objects는 기입된 오브젝트들을 반드시 뽑겠다는 것이었다.
force matte는 force objects에 적힌 오브젝트를 뽑을 때, matte에 적힌 object를 가림막 용도로 사용하겠다는 것이다.
(force matte에 brute가 적혀있을 경우, 카메라상으로 brute 뒤쪽의 연기나 스파크, 전기라인들은 렌더 되지 않게 된다.)



위의 이미지들은 brute에 의해 가려지지 않은 부분들에 대해서만 렌더 된 결과이다.(brute의 앞쪽이나 옆쪽 등)
brute만 따로 뽑아낼 수 있다. 이때 brute에 맺히는 그림자를 표현하기 위해서 force phantom parameter를 이용한다.
force phantom은 렌더 과정에서 계산에는 참여를 하지만, 출력하지는 않는다는 것이다.
예를 들어 brute를 force object에 적어주고, smoke를 force phantom에 적어주게 되면, smoke는 렌더의 계산에는 사용되어서 연기의 그림자가 brute의 표면에 맺히고 그것이 계산이 되지만, 렌더의 결과로 smoke가 출력되지는 않는다. 연기의 그림자가 맺힌 brute가 출력된다.

그리고 하나만 더 뽑자.
만약 스모크가 빛이 난다면?이라는 조건의 스모크를 하나만 더 준비해 주자.
이제 각각의 세팅을 잡은 연기, 전기라인, 스파크, 브루트, 빛이 나는 연기까지 렌더를 걸어준다.
그리고, img network view에 가서 compositing을 시작한다.
각각의 이미지들을 file 노드를 사용해서 불러온다.

만약에 결과를 뽑았는데, 연기의 색이 맘에 들지 않는다면?
색을 바꿔주자.
HSV 노드를 사용한다.

Hue Shift 값을 바꿔줌으로써 색을 변경해 줄 수 있다.


연기가 약간 탁한 느낌이 들기를 바란다면, Mono 노드를 사용해서 흑백으로 출력도 가능하다.

그리고 Hue 노드를 적용한 결과와 Mono 노드를 적용한 결과를 같이 쌓아줄 수도 있다.

이제 spark의 글로우 효과를 적용해 보자.
spark에 blur 노드를 적용해 준다. 하나만 적용할 수도 있지만, 단계적으로 blur 값을 강하게 해서 여러 개를 먹일 수도 있다.(강의에서는 블러 3 / 10 / 25 이렇게 세 개를 사용했다)
layer로 원본 spark에 다 더해준 결과는 아래 이미지와 같다.

이 효과는 layer의 transform tap에서 weight 값을 조절하는 것으로 조절이 가능하다.
또한 여기에도 HSV를 달아서 색을 변경해 주는 것도 가능하다.

전기라인을 수정해 보자.
아까 뽑았던 빛이 나는 연기를 같이 사용해 볼 예정이다.
전기라인과 빛이 나는 연기를 섞어서 무엇을 할 수 있을까?
연기가 전기에 의해 빛이 날 수도 있다. 하지만, 현재는 전기와 연기의 상호작용에 대한 것을 뽑은 적이 없다. 그래서 일부로 연기에 빛이 난다면?이라는 가정을 달고 스모크 오브젝트를 하나 더 뽑은 것이다.
이제 smoke_energy의 일부 정보를 전기라인 glow에 곱해주도록 한다.
일단 smoke_energy가 곱해질 전기라인의 blur 정보를 만들어준다.
그리고 blur 된 데이터에 smoke_energy를 곱해준다.



전체 길이를 뽑을 때는, 조심해야 할 부분이 있다. file을 불러올 때, cache 데이터가 비어있는 frame이 있기 때문에 그 부분은 주의해야 할 필요가 있다. 이 부분을 해결하기 위해서는 앞의 강의에서 자주 사용했던 null - switch의 조합을 사용해서 file cache 데이터가 있기 전까지는 null을 선택하고, file cache 데이터가 있을 때부터는 cache 데이터를 사용하도록 해줄 수 있다.
정리!
지금까지 우리가 했던 작업들
- 시작은 표면에서 연기가 나도록 해줬다.
- 그리고 전기 묘사에 대해 이야기했다.
- 그다음에는 볼륨 렌더에 대해 이야기했다.
- 이때 중요한 부분으로는 최소한 volume visualization으로 scene view로 보는 것과 비슷한 뉘앙스로 render 결과를 얻어낼 수 있어야 한다는 것이었다.
- 그리고 오늘 여태껏 얻은 데이터를 쌓아서 comp까지 진행해 보았다.
이제는 규모가 큰 불이나 폭발로 넘어갈 예정이다.
앞으로의 여정, 어렵다.
음... 지난번부터 느끼는 것이지만, scene view로 보는 것과, comp view로 보는 것, 그리고 마지막 파일로 출력했을 때의 색감이 다 다르다!!!!(미쳤다...)
색감에 대해 조절을 해줄 필요가 있어 보인다...
오늘 한 가지 목마름을 해결했다. 전부터 comp 작업하는 영상들을 볼 때 한층 한층 레이어링 하는 것을 보면서 어떻게 하는 건가? 싶었는데, 오늘 그 궁금증을 드디어 해결한 기분이다.
지난번에 용량이 모자라서 연기에 대해 고화질로 뽑아내지 못했던 부분이 있어서 이 부분은 다시 데이터를 뽑아서 comp까지 진행해 볼 계획이다.
그리고 손 풀어야 한다고 캐릭터 애니메이션 잡아놨던 데이터에도 한번 지금까지 배운 것들을 적용해 봐야겠다고 생각했다.
강의 말미에 한 가지 울림이 있었다.
이게 확 와닿는, 그런 정답이 될 수 없는 그런 울림이고, 더 깊게 고민해 볼 부분이긴 하지만,
생각이 난 김에 살짝 적어놔야겠다.
'나는 왜 후디니를 공부하는가?'
'그것은 막연하게나마 꿈꿔오던 내 로망이었으니까...'
'Houdini > Houdini1_Volumes' 카테고리의 다른 글
15_폭발 DIVERGENCE (1) | 2023.03.15 |
---|---|
14_연기 QUALITY 올리기, TEMPVEL (0) | 2023.03.14 |
13_VOLUME RENDER_part1. 최소한 Volume Visualization과 똑같이 뽑아야함(🔥🔥미친듯 중요🔥🔥) (1) | 2023.03.10 |
12_전기에 따른 스파크(PARTICLES) (1) | 2023.03.09 |
11_part2. 캐릭터 움직임에 따른 전기 효과 (0) | 2023.03.08 |