목차
- Render를 위한 다섯 가지 요소
- Render
- 카메라 꺼내기
- Mantra Node
- Output Setting
- Render Setting
- Material
- Group을 활용한 Material
- 일기
모든 랭글러를 위하여!
평범한 내용일수록 당연히 알아야 할 것을 모르면, 어느 순간 치명적일 수 있다. 어느 것 하나 빠뜨리지 말고 충분히 이해해 내기를, 그리고 개개인의 작업에서 당연하게 쓸 수 있게 되도록 하자.
Render 항목에서 할 일
- 박스 / 그리드를 활용해서 Render Setting을 해보자.
- 셋팅했던 자동차로 Render Setting을 해보자.
디테일이 많다는 것 : 할 일이 많다는 것이지 난이도가 어려워지는 것은 아니다.
Render를 위한 다섯가지 요소
- 오브젝트
- 머티리얼
- 라이팅
- 카메라
- 렌더러
※ 우리가 Render 작업에서 피로도를 느끼는 이유
- 지금까지 후디니 작업의 대부분의 시간을 오브젝트를 다루는데 투자했기 때문. (익숙함의 문제)
Render
Network View > Out(렌더러)
- 렌더를 하기 전까지의 오브젝트는 3D 공간상에 있는 어떠한 자료에 불과하다.
- (선생님의 개인취향이 섞인 세팅 순서 > 카메라 > 렌더러 > 라이팅 & 머티리얼)
※ 카메라를 꺼내는 두가지 방법
- 네트워크 뷰에서 Tab 키 누른 뒤 카메라 생성
- Scene View 상에서 카메라 생성
- 카메라가 선택된 상태에서 Scene View에서 조정이 들어가면 카메라 선택상태가 풀려버리게 된다.
- 이런 일을 방지하기 위해서 카메라가 선택된 상태에서 Lock camera / light to view를 클릭해 준다.
- 우리가 Scene View에서 보고 있는 정보가 네트워크 뷰의 camera parameter에 바로 들어오게 된다.
- 작업이 다 끝나고 카메라만 변경하는 것이라면 Lock camera 버튼을 눌러서 활성화시키는 것을 추천하고, 아직 오브젝트의 수정이 필요한 상황이라면 카메라 세팅 후 버튼을 비활성화하는 것을 추천함.
- 활성화된 상태에서 Scene View가 움직이게 되면 카메라 세팅이 틀어져버린다.
Mantra Node
- Houdini에서 사용할 수 있는 몇 가지 렌더러가 존재한다.
- 우리는 그중 Mantra를 사용할 것이다.
Mantra Parameter
Output Setting
- Render to Disk :컴퓨터에 저장
- Render to MPlay : MPlay를 활용해서 출력
- Valid Frame Range
- Render Current Frame : 현재 frame만 출력
- Render Frame Range : 임의의 frame 구간을 출력(참조한 프레임도 출력)
- Render Frame Range Only(Strict) : 임의의 frame 구간을 출력(기입한 범위만 출력)
- Camera : 결과물을 출력할 카메라를 선택
노드 이름들은 직관적으로 잘 지어놓자. 나중에 수많은 노드를 사용하게 되면 파악하기 쉽지 않다.
Render Setting
- Images(상단의 출력세팅과 더 연관이 있다.)
- Output Picture : 어디에 출력할 것인가(경로)
- 기본적으로 HScript 방식으로 적혀있다.($HIP/render/$HIPNAME.$OS.$F4.exr)
- $HIP : Houdini 파일 경로
- $HIPNAME : 파일명
- $OS : Renderer 노드 이름
- $F4 : frame 번호에 대한 자릿수
- .exr : 파일 확장자
- 기본적으로 HScript 방식으로 적혀있다.($HIP/render/$HIPNAME.$OS.$F4.exr)
- Output Device : 어떤 확장자로 출력할 것인가(파일포맷)
- Infer from filename : Output Picture에 적은 파일 확장자를 사용할 것이다.(파일내용에서 참고하겠다)
- Output Picture : 어디에 출력할 것인가(경로)
사진 한 장을 뽑을 때는 이렇게 세팅해도 전혀 문제가 없다.
하지만 시퀀스 단위로 영상을 뽑는다면?
이렇게 세팅되어있는 경우, Render to Disk를 누르면 출력되는 결과물은 마지막 40 frame이 찍혀있는 twasample.exr 파일 하나일 것이다.
- 1 frame을 렌더 해서 twasample.exr로 저장한다.
- 2 frame을 렌더 해서 twasample.exr로 저장한다.(덮어쓰기)
- ...
- 40 frame을 렌더 해서 twasample.exr로 저장한다.(덮어쓰기)
이런 상황을 막기 위해 사용하는 방법 : Output Picture에 .$F 를 넣어준다.
- $F : frame 번호
- ex) E:/Houdini/exam_file/H1/Mantra/twasample.$F.exr
Render to Disk를 눌러주고 지정된 경로에 가보면 twasample.1.exr / twasample.2.exr / ... / twasample.40.exr이 저장되어 있다.
$F : 현재 frame
$F4 : 현재 frame에 대해 네 자릿수로 변환
ex) 현재 frame이 23일 때, $F : 23 / $F4 : 0023
- Skip Rendered Frames : 기존에 같은 이름으로 렌더링 된 파일이 있을 때의 처리방법
- Rendering
- Redering Engine
- 어떤 엔진으로 렌더링 할 것인가
- 각각 엔진에 따라 빛과 머티리얼에 대해 해석하는 방식이 조금씩 다르다.(절대적으로 이 엔진이 옳다!!라는 것은 없다)
- Enable Depth Of Field
- DOF(피사계심도 : 초점에 따른 블러현상) 허용여부
- 사용자가 포커싱을 맞추고 싶은 거리를 설정할 수 있다.
- Allow Motion Blur
- 모션블러(셔터 속도에 따른 모션의 잔상) 허용여부
- 아날로그 방식의 촬영이 아니기 때문에 컴퓨터가 얼마나 공을 들이고, 어디에 무게를 두고 신경 써서 계산을 할지 정해줄 수 있다.
- Pixel Samples - 퀄리티의 기준을 정하는 것
- 1 by 1 : 가장 낮은 결과물을 출력, 속도는 그만큼 빠르다.
- 2 by 2 : 상대적으로 1 by 1 보다는 높은 퀄리티의 출력
- 3 by 3 : 생각보다 높은 퀄리티로 결과물을 표현
- Pixel Samples - 퀄리티의 기준을 정하는 것
※ Pixel Samples를 정하고 난 다음 손볼 수 있는 내용
- 빛이 얼마나 반사/투과될 것인가
- 색은 얼마나 디테일하게 표현할 것인가
- 반사에 대한 표현은 어디까지 묘사할 것인가
- 노이즈는 어디까지 잡을 것인가
- ...
- Quality라고 적힌 항목들은 상대적인 항목이다.
- 기본 세팅에서 아무것도 손대지 않았을 때를 기준이라고 한다면, 수치를 바꿔줌으로 무엇에 더 상대적으로 신경 쓸지 정해줄 수 있다.
- ex) Diffuse 값이 1보다 작을 경우 : Diffuse 작업에 대해 덜 신경 써도 된다. / 1보다 클 경우 : Diffuse 작업을 더 열심히 해라.
- Quality 값을 올린다 : 렌더시간이 늘어나는 것을 감수하겠다.
- Quality 값을 낮춘다 : 노이즈 여부에 상관없이 빠른 출력을 원한다.
- 기본 세팅에서 아무것도 손대지 않았을 때를 기준이라고 한다면, 수치를 바꿔줌으로 무엇에 더 상대적으로 신경 쓸지 정해줄 수 있다.
※ Mantra에 익숙하지 않은 상황에서는 Quality에 대해 아직은 손대지 말자. Pixel Sample의 수치에 따른 Quality 차이를 충분히 경험해보고 아래 수치를 조절해도 늦지 않다.
- 아래쪽 Quality 값에 손을 대면 Pixel Sample 1 by 1에서도 렌더링 타임이 비약적으로 늘어날 수 있다.
- Pixel Sample에 따른 Quality 차이 및 소요시간에 대한 자기만의 기준이 잡히고 난 뒤, 한끝차 아쉬운 부분에 대해 아래쪽 Quality 수치를 조절하는 것이다.
Object
- 어떤 오브젝트를, 어떤 라이트를 활용해서 출력하고 싶은지 정할 수 있다.
Candidate Objects
- * : Network View > obj에서 Render Flag가 켜져 있는 오브젝트를 출력한다.
- 공백일 경우, 출력할 대상도 없고, 가상의 빛이 있다 하더라도(Candidate Lights *) 빛이 맺힐 곳이 없기 때문에 검은 화면만 렌더링 된다.
Candidate Lights
- * : 세팅된 라이트가 없을 경우, 가상의 라이트를 세팅해서 렌더링 결과물 확인을 도와준다.
- 공백일 경우, 라이트가 없기 때문에 검은 화면만 렌더링 된다.
Render view
- 어떤 세팅으로(어떤 렌더링 노드로) 출력할 것인지, 어떤 카메라를 사용해서 출력할 것인지 정할 수 있다.
- (사진의 /out/mantra1 , ROP Camera)
Houdini의 Render View는 기본적으로 한번 렌더를 클릭해 주면, 그 뒤부터는 변화에 맞춰서 즉각 즉각 렌더 화면을 업데이트해준다.(Ready to go)
- 이것이 가능한 이유는 렌더버튼을 누르는 시점에 무엇을 가지고 작업할지 메모리에 저장하기 때문이다.
- Stop Rendering : 메모리를 완전히 비운다. 메모리가 비워졌기 때문에 변화에 따른 Render View 업데이트는 하지 않는다.
- Pause Rendering : 메모리를 비우지 않고, Render View 업데이트는 하지 않는다.
- Stop Rendering의 메모리 초기화 및 재가동보다는 Pause Rendering의 속도가 조금 더 빠르다.
- 그렇다고 Pause Rendering이 빠른 렌더링을 위한 완전한 해결책인 것은 아니다.
- 변화가 클수록 다시 렌더 버튼을 눌러주는 것이 맞다.
- (변화가 크다 : 없던 오브젝트가 생기거나, 전혀 다른 오브젝트로 바뀌거나 동일한 오브젝트에 다른 머티리얼을 적용하는 등)
- 변화가 클 때 Pause Rendering을 적용하면 제대로 된 결과가 안 나올 수도 있다.
※ 훈련을 위해 렌더 자체가 당연하고 익숙해질 때까지는 Candidate Objects / Lights는 봉인해 두고, Force Objects / Lights를 쓰자.
- 훈련의 목적 : 어떤 오브젝트를, 어떤 라이트를 활용해서 출력할지 사용자의 의도와 판단이 정확히 들어가도록 하기 위함
Force Objects
- 이름을 기입해놓은 오브젝트만 출력한다. 기입 순서는 상관이 없다.
Force Lights
- 이름을 기입해놓은 라이트만 활용해서 출력한다. 마찬가지로 기입 순서는 상관없다.
◆ 라이팅 tip!
- Scene View에서 Look Through Light를 눌러주면 light의 시점에서 바라보는 화면으로 바뀌면서 라이팅 방향과 위치를 잡을 수 있다.
- Scene View에서 움직일 때는 카메라와 마찬가지로 Lock camera / light to view를 눌러주고 움직여야 한다.
ROP Camera
- Render Operator(렌더 노드)의 출력 세팅에 적혀있는 카메라
※ 작업 팁!!
- 위의 사진에 적혀있는 light01, 02, 03을 한꺼번에 부를 수 있다.
- light* -> 접미어는 상관없으니 앞의 접두어가 light인 것은 다 불러오겠다는 의미
- *는 '모든'이라는 의미를 가지고 있다.
- 모든 오브젝트 / 라이트의 이름을 다 기입하는 방법도 있지만, 노드 이름을 잘 정리해 두었다면, *를 활용하는 방식으로도 표현이 가능하다.
Material
Network View > Mat
- 어떻게 하면 렌더에 필요한 만큼 올바르게 세팅을 하는지가 매우 중요하다.
- 머티리얼을 적용하려면, 머티리얼 쉐이더를 만들어주고, 적용하기 원하는 오브젝트 아래에 머티리얼 노드를 달아준다.
Material Node
- 노드를 달아주기만 해서는 무슨 색이 적용되거나 하는 것은 아니다.
- 머티리얼 정보를 불러오기 위한 노드일 뿐이다.
Group과 Material의 활용
렌더는 항상 뭔가 미진했던 부분이었다.
Houdini를 어디선가 따라 하게 되면 모델링 혹은 파티클 시뮬레이션 위주로 작업을 하고, 렌더링은 제쳐두었던 지난날이 생각났었다.
깊게 파고든다면 또한 많은 시간을 할애해서 공부해야 할 부분이겠지만, 무언가 첫발을 뗀 느낌이 들어서 좋았다. 강의 마지막 부분에서 그룹을 활용해보자고 하실 때 이미 머릿속에서 그룹을 어떻게 적용해야 할지 그려지는 것이 참 좋았다.
'Houdini > Houdini1_Starter' 카테고리의 다른 글
STARTER05_Attribute 관련 Node (0) | 2023.01.12 |
---|---|
STARTER04_Let's render (0) | 2023.01.11 |
STARTER02_Part3. Group Exercise (2) | 2023.01.07 |
STARTER02_Part2. Group Exercise (0) | 2023.01.05 |
STARTER02_Part1. Group Exercise (0) | 2023.01.05 |