0. Object 관리
- 작업 노드와 렌더 노드를 구별해서 사용을 함
- Null 노드를 이용해서 표시
- Object Merge 노드를 이용해서 Geometry를 가져옴
- 컬러/이름으로 구분
- 작업이 완료된 무거운 작업들은 File Cache를 사용하기
1. Camera
1. Camera Lock
- Camera 수정 시에는 Viewport에서 Lock을 걸어서 움직이기
2. Resolution
- Camera에서 Render Image Resolution을 결정함
- 일반적인 포트폴리오의 Resolution
- Final : 1920 * 1080 (FullHD, HD1080)
- Test Render : 1280 * 720 (HD720)
3. Focal
- 표준 / 광각 / 망원 렌즈 → 결정하는 역할은 Focal
- 표준렌즈 : 사람 눈으로 봤을 때 똑같이 보이는 렌즈(Houdini : 50mm)
- 광각렌즈 : 50mm 이하의 렌즈로, 넓은 환경을 담을 때 유리하고, 너무 떨어트리면 원근감, 왜곡이 생김
- 망원렌즈 : 50mm 이상의 렌즈로, 멀리 있는 물체를 크게 찍는 줌렌즈
4. Aperture, Near/Far Clip, Screen Window Size, Sutter Time, Focal Distance, F-stop, Bokeh
- Aperture : Film의 크기, 후디니의 Default 값은 일반적인 FullBody Camera 기준임
- Near/Far Clip : Camera의 앞쪽과 뒤쪽이 렌더가 걸리지 않도록 잘라님
- Screen Window Size : 렌더링 시, 상하좌우 여분을 렌더링 함
- 1.25 면 25% 정도를 여유로 쓸 수 있음
- Sutter Time : 조리개의 셔터 스피드로, MotionBlur와 연관됨
- Focal Distance, F-stop, Bokeh 등 : DOF(Distance of Focus)와 관련된 옵션으로, Defocus를 줄 때 사용
2. Light
1) 빛의 속성
- 방향 : 그림자나 명암으로 방향을 확인
- 색상/광량 : 이미지의 밝은 부분이나 Specular 등으로 확인
- 광질 : 그림자 엣지의 선명도로, 광원이 클수록 부드러움
Light
- HardLight : Point, Distant, Sun
- SoftLight(그림자를 부드럽게 조정 가능) : Line, Grid, Disk, Sphere, Tube, Geometry
Intensity / Exposure
- 광원의 세기를 결정하는 파라미터
- Exposure는 2^n(수치)만큼 빛의 강도가 급격히 늘어남
2) Light 노드의 세부 파라미터
- Spot Light Option : Point Type의 Light는 여기서 Spot Light로 설정 가능
- Area Light Option : Soft Light의 경우 여기서 광원의 크기 등을 설정 가능
- Distant Light Option : Distant. Sun Light의 옵션을 조절 가능(빛의 감쇄가 안됨)
- Attenuation Option : 빛의 감쇄에 관련된 옵션들
Exposure과 Attenuation의 관계
- Distant / Sun Light를 제외하면, 빛은 거리에 따라 감쇄가 일어남. 이 감쇄 값은 거리의 제곱에 비례해서 광원이 조금만 멀리 떨어져 있어도 급격히 어두워짐(거리를 3만큼 가면 감쇄가 9만큼 일어남)
- 따라서 Intensity가 매우 높아져야 하는데 이런 값들이 익숙하지 않기 때문에 일반적으로 강도를 급격히 올릴 수 있는 Exposure 파라미터가 따로 존재
- Exposure를 조절하고 Intensity로 디테일 조정
3) Environment Light / HDRI
Environment Light
- 전방향에서 빛을 내보내는 환경 라이트
- 일반적으로 HDRI Map 사용
HDRI
- High Dynmic Range Imaging의 약자로, 빛의 세기를 포함하고 있는 이미지
- 확장자는 .hdri / her
- 크롬볼이나 어안렌즈로 현장에서 촬영되어 오면, HDRI Shop(Poly Haven)에서 다운받아서 사용
3. Material
- 후디니의 쉐이더는 MATNetwork에서 작업함
- Material Palette Pane에 후디니의 기본 쉐이더들이 들어있어 화살표 버튼이나 마우스 드래그로 가져올 수 있음
1) Material Assign
- 방법 1) Geometry 노드의 Render → Material에 쉐이더 경로를 넣음
- 방법 2) Material 노드를 SceneView, RenderView의 오브젝트에 바르 드래그
- 방법 3) 경로를 복사 붙여넣기
2) 재질 프레셋 가져오기
- 내 Material Net의 경로를 찾아 Material을 드래그해서 프레셋 가져오기
- 재질을 넣으면 쉐이더가 자동으로 생김(파라미터만 다를 뿐)
- 바로 드래그도 가능
3) 하나의 Geometry 안에서 다른 Material 적용하기
- Material 노드를 이용해 Group 별로 다른 Material을 지정할 수 있음
- 이 Material 정보는 shop_materialpath Attribute에 저장됨
- shop_materialpath의 타입은 String
- Primitive Attribute 저장됨
- Material 경로를 나타냄
- Geometry의 Render-Material 파라미터에 쉐이더가 지정되어 있어도 shop_materialpath가 있다면 이 Attribute의 쉐이더 경로가 우선으로 적용됨
적용 예시
- File 노드로 모델링 파일 불러오기
- Group Select로 Material을 적용할 영역 선택
- *Shoulder*가 들어간 부분은 모두 선택할 수 있도록 함
- MATNetwork로 Shader Principle 노드 생성 후 재질을 넣고 이걸 Material Shoulder에 넣음
- 다음의 머티리얼은 지오메트리 안에서 아래로 노드를 쭉 이어 붙이기
4. Rendering
1) Mantra
- 후디니의 렌더링은 ROPNetwork에서 진행됨
- Mantra는 후디니의 자체 렌더러
- Mantra 노드 하나가 Render Layer의 역할을 하게 됨
Render Polygons As Subivision(Mantra)
- Subdivision을 적용해서 Rendering함
- Dicing
- Shading Quality : Geometry를 구성하는 Dicing Quality로 Subdiv나 Dismap 적용 시 필요
Pixel Filter
- 렌더링 과정에서 픽셀의 색상을 결정하는 데 사용되는 필터를 의미. 샘플링된 데이터를 부드럽게 하거나 특정 효과를 추가하여 최종 이미지의 품질을 향상시키는 역할
Cryptomatte
- 따로 따로 아이디를 지정해서 뽑도록 하는 것
Rendering Engine
- 엔진을 바꿔야 할 때가 있음
- Geometry 구성(Micropolygon/RayTracing 총 2가지 방식)과 Shader 계산(일반 방식 PBR 방식)이 각각 다름
Rendering Engine | Geometry 구성 | Shader 계산 |
Micropolygon Rendering | Micropolygon 방식 | 일반 방식 |
Ray Tracing | Raytracing 방식 | 일반 방식 |
Micropolygon Physically Based Rendering | Micropolygon 방식 | PBR 방식 |
Physically Based Rendering Geometry | Raytracing 방식 | PBR 방식 |
- 보통은 Ray Tracing 방식을 하는데 후디니 문서로 살펴보는 것을 추천하고, 프로젝트에 맞춰서 적합한 엔진을 선택해주는 것이 중요
- Allow Motion Blur를 체크하고, 바깥에서 Transform을 해야 모션 블러가 적용되고, 안쪽에서는 따로 적용해야 함
Pixel Samples
- 이미지를 크게 렌더링 한 후, 2D적인 방법으로 원래 사이즈로 Sampling 함
- 3/3은 3배 크기로 렌더링 한다는 의미
- Geometry의 Shader를 계산하기 위한 Ray의 개수를 결정함(기본 값은 최소 1개의 Ray를 만들며 Noise Level이 0.01이 될 때까지 최대 9개의 Ray를 만듦)
- Min Ray Samples, Max Ray Samples, Noise Level)
- Diffuse, Reflection 등 속성별로 다른 Quality를 설정할 수 있음
Limits
- 렌더링 시 다양한 제한을 설정할 수 있는 기능
- 굴절이 없다면 0으로 해도 됨
2) Rendering 설정
- Candidate Objects : Display Flag가 켜져있는 노드만 렌더링
- Forced Objects : 모든 노드(Display Flag가 꺼져도) 렌더링
- Forced Matte : Matte 처리 할 노드
- Forced Phantom : 보이지는 않지만 그림자나 반사 등에 영향만 미치는 노드
- Exclude Objects : 잠깐 제외 할 노드
Matte
- 합성에서 각각의 오브젝트들을 따로 수정할 수 있게, 보통은 레이어를 나눠서 렌더링 함
- 두 개의 오브젝트를 합성해 얹을 때, 앞쪽 오브젝트에 의해서 가려지는 부분을 처리하기 위한 수단을 Matte
Matte
- 직접 렌더링은 안되지만 영향을 주고싶은 오브젝트를 넣음
- Solo Light : 한 개의 라이트만 사용
- Candidate Lights : 켜져있는 라이트들만 사용
- Force Lights : 꺼져있는 라이트도 모두 사용
- Exclude Lights : 제외할 라이트
WildCard
*
- * 모든 문자와 매치 ex)REN_a*
- REN_a가 들어가 있는 문자의 모든 노드
^
- ^REN_b_object
- REN_b_object를 제외
^REN_b*
- REN_b의 문자가 들어가 있는 모든 노드를 제외
3) Final Rendering
- Mantra 노드의 Render to Disk버튼을 눌러 Image로 저장함
- 한 장을 테스트로 걸어보고 싶거나 Sample Size의 크기를 미리 예측해 렌더를 뽑고 싶을 때 미리 테스트 해보는 경우가 있음
- 저장되지는 렌더링되는 모습 확인 가능
- Scene View → 필름 버튼 선택 후 리스트 중 렌더할 Mantra 선택 → MPlay 상에서 렌더링 할 수 있음
- 현재 보고 있는 카메라로 렌더가 걸림
IPR Rendering
- Render View Pane에서 렌더링
- 실시간으로 수정된 부분들이 반영되어 Object, Light, Material 등을 수정하면서 바로 렌더 결과를 확인할 수 있음
- Final Rendering은 아니기 때문에 Sampling 등 렌더 품질을 확인하기에는 적합하지 않음
Render Schedule Pane
- 현재의 렌더링 상태를 관리
- 지금까지 렌더링 했던 결과와 진행 과정이 보임
- 중간에 멈추고 싶으면 Kill 누르기
- 상단에 + 를 눌러서 렌더 스케줄 추가
4) RenderPass
- 컴퓨터 상에서 자연의 질감을 표현하기 위해 물체의 표면에 빛이 작용하는 방식에 따라 여러가지 질감을 나누어 놓은 것
Rendering
- 작업 파일을 실제 이미지로 만들어내는 과정
- Renderer가 이 역할을 진행하며 3D 작업 툴과는 분리되어 있음(Mantra는 사실상 다른 프로그램 개념)
Rendering 과정
- Geometry 구성
- Dicing : 3D 작업툴 상에 있던 Geometry를 렌더링 할 수 있는 상태의 Geometry로 구성하는 과정(렌더러에 전달할 수 있게 변환)
- Dismap : Geometry가 재질을 통해서 튀어나오게 만들 수 있음(Bump, Normal, Dismap → Normal과 Bump는 실제 튀어나온 것이 아닌 빛 계산을 해준 것)
- Shading
- 구성된 Geometry의 Material과 Light 정보를 가지고 실제 질감을 연산
- Pixel Sampling
- 2D적인 방법으로 Sampling 하는 과정(렌더링 할 때 박스로 표시되는)
일반적인 RenderPass
- Diffuse, Spectular, Reflect, SSS, Emission
Occulsion, Shadow
- Shadow는 빛이 닿지 않는 영역, Occulusion은 Diffuse가 포함된 개념으로 일반적인 RenderPass는 아님
- 촬영 플레이트에 CG를 붙여야 하는 경우 반응하는 그림자 등을 넣기 위해 반드시 필요한 RenderPass
Displacement, Bump, Normal
- Displacement
- Map(Texture)을 기반으로 Geometry의 형태를 변경
- 실제로 Geometry를 변경되는 것으로 Geometry 구성 단계에서 진행
- 매우 정확하지만 렌더링 시 느림
- Bump
- Geometry가 변경된 것처럼 보이게 하기 위해서 Normal 방향을 살짝 변경
- 실제로 Geometry가 변형된 것은 아님
- Shader 계산 단계에서 진행
- 매우 빠르지만 부정확함
- Normal
- Bump와 비슷하지만 Normal 방향을 Vector 방식으로 정확하게 제어함
- Bump와 계산 방식이 다름
- Bump보다 정확하고, 속도도 어느정도 빠름
큰 쉐입은 모델링, 디테일은 Dismap, 더 정교한 디테일은 Normal Map으로 처리
PBR(Physical Based Rendering)
- 현실 세계의 물리적 특성을 기반으로 하여 재질과 조명을 시뮬레이션하는 렌더링 기술
- 사실적인 이미지와 비주얼을 생성하기 위해 물리학의 원리를 적용
- 마야, 블렌더, 후디니 등이 모두 이 방식을 사용
- 기존에 따로 작동하던 Render Pass들이 물리 법칙에 의해 연관성들을 갖게 됨
재질 속성
- 메탈릭 : 표면이 금속인지 비금속인지에 대한 속성으로, 금속은 반사율이 높고 비금속은 그렇지 않음
- 러프니스 : 표면의 거칠기를 나타내며, 거칠기가 낮을수록 반사가 매끄럽고 선명해짐
- 베이스 컬러 : 재질의 기본 색상으로, 반사 및 조명에 영향을 미침
- 노멀 맵 : 표면의 세부 디테일을 추가하여 조명 반응을 변화시킴
5) Rendering 관련 물리 현상
IOR(굴절계수)
- 빛이 밀도가 다른 물체를 통과하며 꺾일 때, 그 정도치를 IOR로 표현(반사각/입사각)
- 빛의 입사각에 따라 굴절과 반사의 정도가 달라지는 현상
- 입사각이 클수록 Reflection이 세짐(반사의 비율이 증가), 입사각이 작을수록 Reflection은 약해짐(반사의 비율이 감소) → Fresnel 효과
- Ray Depth
- 반사나 굴절을 계산 시, 카메라에서 출발한 빛이라고 쉽게 생각해도 되지만 Ray를 무한대로 내보낼 수 없기 때문에 Ray의 횟수를 제한하게 됨 → 이 횟수를 Ray Depth
- 광선(trace ray)이 장면에서 얼마나 깊이 들어갔는지를 나타내는 지표. 이 개념은 특히 레이 트레이싱(ray tracing) 기법에서 중요
5. Compositing
- img에서 진행
- file 노드 생성하고 2개 더 복사
- 각각 lego, gear, lego_gear 총 3개 넣어주기
- 세 개를 한 번에 해보고 싶으면 Template를 누르고, 또 하나는 Shift를 눌러보기
- 가릴 것들은 Matte에 넣기
- 합성할 때에는 Matte는 모두 빼야 함
- 형태는 안보이게 하고 싶은데 오브젝트에 영향(비추는 것)은 받게 하고 싶음 → Forced Phantom
- 제외할 노드를 Exclude Object에 넣거나 Wildcard(^)를 써도 됨
- Wildcard 사용 : 특정 문자를 포함하면 모두 렌더링을 걸겠다는 것
- REN_LC 파일 모두 렌더를 하는데, 그 중 REN_LC2로 된 모든 파일은 제외해서 렌더링
1) Compositing 적용
- img로 들어가 img 노드 생성
- Composite View로 설정
- Layer 노드 생성 후 lego와 gear 연결
- 기어 먼저 꽂고 레고를 꽂아야 레고가 위로 올라옴
- LegoMatte도 뽑아서 연결해주기
2) Background Image 넣는 방법
- Camera 노드의 Background Image에 추가 가능함
- Scene View의 Display Background 아이콘을 클릭해서 Viewport에서 볼 수 있음
- 카메라를 선택해야 Scene View 화면에서 볼 수 있음
'3. 후디니(Houdini) 공부 > Houdini [이론]' 카테고리의 다른 글
5. [Houdini] VOP(언리얼 : 블루프린트), VEX(언리얼 : C++), Noise (0) | 2024.11.17 |
---|---|
4. [Houdini] Function, Copy, Foreach, Detail Attribute (2) | 2024.11.11 |
3. [Houdini] 후디니 많이 쓰이는 SOP (2) | 2024.11.03 |
[Houdini] 후디니 TIP (0) | 2024.10.28 |
2. [Houdini] 후디니 Parameter Controller 만들기(기능 모으기), (0) | 2024.10.28 |