16_ TWA STANDARD SMOKE & 폭발 RENDER
렌더 후 추가적으로 작업을 해줘야 하는 상황이 있다.
고온으로 묘사되는 불을 렌더할 때 뜨거운 부분에서 우리가 만들었던 디테일들이 떠버리는 경우가 있다.
이 부분은 약간의 compositing에 대한 이야기가 될 것이다.
선생님이 지금까지 우리가 작업했던 smoke 세팅과 렌더 관련 세팅들을 사용하기 쉽게 정리하여 파일로 공유해 주셨다. 전체적인 부분은 우리가 공부했던 내용을 그대로 이어받지만, 보기 좋게 정리한 부분과, 몇 가지 추가된 부분들, 그리고 여러 세팅으로 확인이 가능하도록 만들어주신 volume visualization 노드들이 있었다.
이 자료는 양날의 검과도 같다.
자료 세팅이 잘 되어있어서 이 부분에 대해 더이상 공부하는 것이 아니고 이것을 가지고 이용해서 작업을 진행하거나, 이것을 뜯어보고 분석해서 더 입맛에 맞고 강력한 세팅을 만들어내는지에 대한 부분은 우리의 몫이다.
공유받은 파일을 분석해보자.
조명 두 개와 geometry 세 개로 구성이 되어있다.
WGRS_smoke는 바로 volume render를 시작해 보기 위해 선생님이 미리 준비해 놓은 버전이다.
CUSTOM_smoke는 검은색 WGRS_smoke와 같지만 parameter들 간에 아무런 링크가 걸려있지 않은 버전이다.
CUSTOM_smoke를 제공한 이유는 사용자의 입맛에 맞게 링크를 걸 줄 알아야 하기 때문이다.
WGRS_smoke 세팅에서도 아쉬운 부분이 존재한다. 단일한 source에 대해서는 쉽게 작업이 이뤄지지만, 여러 개의 source가 들어갈 때는 올바르지 않은 세팅이 될 수도 있다.
기왕이면, 사용자의 입맛에 맞도록 링크를 걸 줄 알아야 한다.
render는 cloud shader를 가지고 render를 진행하도록 세팅된 geometry이다.
volume visualization 노드의 내용을 바꿔줌으로써 volume VOP의 내용이 바뀌게 되는 것이다.
공부하면서 세팅했던 부분에 조금 추가된 부분은, velocity 정보가 들어갈 때, 연기가 발사되고 나서 더 이상 source로부터 바람이 불어오지 않았으면 하기 때문에, velocity가 시작되고 끝나는 프레임을 정해줄 수 있도록 하는 부분이 추가되었다.
그리고 tempvel에 noise 세팅이 두 개가 더 추가되었다. 각각 frequency 값이 다른 noise로 좀 더 패턴의 다양성을 부여하는 부분이었다.
온도가 뜨거워지면 우리가 묘사하기 원하던 가지고 있는 패턴들이 떠버려서 보이지 않는 경우가 있다. 이 부분은 렌더에서 잡아주기로 한다.
render tap에서 수정해줘야 할 부분이 있다.
마지막으로 volume render 작업을 할 때는 temperature가 큰 영향을 미치는 요소가 아니었다.
그래서 모두 density 정보를 활용해서 결과를 뽑아줬었다.
하지만 이제는 온도에 의해서 빛이 발생해야 하는 상황이기 때문에 Ce에서 활용될 정보가 temperature가 된다.
render 하려는 도중 Invalid detail specified 에러 메시지가 계속 출력되면서 mantra가 작동하지 않는 상황이 발생했었다. 내 경우에는 저장파일 이름에 (,) 기호를 삭제해 주면서 제대로 돌아갔다. 혹시라도 같은 증상인 분들이 있으시다면 이 부분도 한 번은 체크해 보시길!!
팁!
굳이 밝은 부분에 흰색을 보겠다고 volume visualization에서 끝자락에 흰색을 추가하는 그런 건 하지 말자. 이렇게 하면 우리가 원하는 그런 결과를 얻기가 어렵다.
오히려, 그냥 뽑고, 나중에 comp 단계에서 흰색에 대한 느낌(굉장히 밝은 부분에 대한 느낌)을 Glow 주는 것으로 표현하는 것으로 접근하는 것이 좋은 결과를 얻는데 더 도움이 될 것이다.
Compositing
뜨거운 곳이 모두 그냥 노란색으로 표현되는 것이 아쉽다. 왜냐하면, 빛이 강하면 강할수록 우리 눈에는 하얀색으로 보이게 되기 때문이다. 이런 부분들에 대해 해결을 해보자.
아까 emission에 하얀색을 주지 않아도 된다고 한 이유가 이런 이유이다. 어차피 후보정 단계에서 하얀색으로 표현하는 것이 가능하기 때문이다.
level을 사용해서 조명하는 곳을 바꿔줄 수 있다.
위와 같이 1~2의 값을 0~1로 조명해 줬을 경우, 상대적으로 1 이하의 값은 조명할 때 0 이하의 음수로 표현된다.
mono를 원본에 연결해 주고, mono와 위의 level의 결과를 multiply해주면 검은 부분의 음수값은 0이 된다.
위의 결과에 새로운 mono를 연결해주고 이 결과를 원본에 더해줘 보자.(layer)
더해지는 mono의 weight를 조절해 주면 된다.
이런 식으로 조명하는 구간을 다르게 한 여러 개의 노드 그룹을 layer로 묶고 계산해 준 뒤 원본에 더해보자.
이렇게 volume은 마지막 수업만 남겨놓게 되었다.
다음 시간에는 여러 가지 다양한 방식으로 연기를 만들어보면서 volume을 마무리할 예정이다.
앞으로 volume에 대해서 더 안배우는 것은 아니다.
카테고리가 나뉠 뿐, rigid body로 가면 volume을 아주 당연하게 사용해 줘야 결과물이 이쁘다.
오늘은 선생님이 제공해 주신 엄청나게 깔끔한 파일을 분석하고 연기를 만들어보는 시간이었다.
그리고 composite 타임에 더욱더 뜨겁게 보이도록 연기를 묘사하는 방법에 대해 작업해 보는 시간이었다.
옛날이 떠오른다. 처음 컴퓨터 그래픽 쪽으로 발을 디뎌보겠다고 다짐 아닌 다짐을 했던 그때,
지금이라면 그때 내가 보면서 우와~ 했던 것의 1/1,000,000 은 만들어볼 수 있지 않을까...?
(내가 우와 했던 그것)