목차
- file 불러오기
- 소스 확인하기
- 입맛에 맞게 그룹화 하기
- 그룹에 맞게 머티리얼 노드 달기
- 러프하게 렌더세팅하기
- 머티리얼 적용하기
- 배경 / 조명 수정
- 머티리얼 수정
- 카메라 / 화각 조정
- 일기
모든 랭글러를 위하여!
오늘은 자동차 렌더링을 해봅시다.
file node로 자동차를 불러오자.
- 파일은 총 4개, car0sub, car1sub, car2sub이라는 파일명으로 되어있는데, 파일이름의 숫자는 Subdivide의 횟수를 나타낸다.
- Subdivide의 횟수가 늘어날수록, 면과 포인트의 갯수가 늘어나기 때문에 자료의 크기도 커진다.
면 작업의 마지막에 primitives attribute로 Mat와 Part를 만들어줬었다.
- mat : 같은 재질별로 작업하기 용이한 attribute
- part : 자동차의 파츠별로 나눈 attribute
※ 자료의 정보를 확인하는 방법
- Node info 확인
- Geometry Speadsheet 확인
과거에 이렇게 정보를 분류해놓은 이유는 현재의 작업을 편하게 하기 위함이다.
Group Expression Node
- Group Type : 생성하려는 Group의 타입
- Group Name : 생성하려는 Group의 이름
- VEXpression : Attribute Wrangle을 떠올리면 도움이 된다.
- 주의할 점 : @mat = red 이것은 틀린 표현식이다. = 는 할당의 개념이지 equal의 개념이 아니다. 그렇다면 @mat == red는? 이것도 틀렸다. red에 대해 이것이 문자열인지, 변수인지 알 방법이 없다. 꼭 '/', "/" 같은 따옴표로 묶어서 문자열로 기입하자.
- VEXpression에는 이왕이면 Attribute 앞에 꼭 타입을 적어주자.
- 조건문을 적어주는 것이지만, if(.....)를 적는 것이 아닌, 가로 안의 조건만 적어주면 된다.
mat에 대해 모두 그룹으로 생성해주기 위해서 11개나 되는 노드를 달아야할까? 그래도 될 것이지만, 그럴 필요는 없다.
이 방식이 매우 효율적인 방식이다.
- 같은 mat attribute를 사용한다면, 어떠한 파일을 꽂아넣더라도 결과를 도출해주기 때문이다.
- Switch Node를 활용해서 모든 파일을 묶어주고, 작업을 진행할 때는 조금이나마 가벼운 0~1번 파일을 사용하고, 렌더를 걸어야할 때는 Subdivide 수치가 높은 2~3을 가지고 작업할 수 있다.
러프하게나마 렌더셋팅을 진행하자.
- camA라는 이름의 카메라를 생성해주고 대략적인 위치를 잡아주었다.
- render engine은 디폴트는 ray tracing이지만, 우리는 PBR을 사용할 것이다.
- pixel samples 수치는 일단 1 by 1 으로 잡아준다.(러프하게 보기 위함이다.)
- Objects 항목은 어제 이야기한대로 candidate 항목은 사용하지 않기로 한다.
- force objects에 우리가 렌더할 오브젝트의 이름을 적는다. 최소한의 배경을 위해 그리드로 바닥면을 만들어주었다.
렌더타임이 상당히 빠르다. 그 이유는 material이 적용되지 않았기 때문이다.
우리가 아까 나눈 그룹에 따라 머티리얼을 적용해보자.
Material Node를 달아주고 Number of Materials의 수치를 우리가 적용하기 원하는 재질의 수량으로 입력해준다(여기에서는 11개)
Network View > mat 항목으로 가서 Principled shader를 생성해준다.
장난감 자동차와도 같아보이는 현재의 매우 아쉬운 상황을 타개해보자.(조명, 머티리얼, 배경, 카메라)
- 배경과 조명에 쓰일 것을 만들고
- 머티리얼을 만져보자.
- 카메라 구도와 렌즈화각도 조절해보자.
- 사람의 눈높이라는 것이 있다. 자동차 관련 카달로그를 보면 사람의 눈높이에서 바라본 자동차의 사진을 올리지, 위에서 바라본 자동차의 사진은 뭔가 모르게 장난감 자동차 처럼 느껴지게 한다. 이것은 렌즈의 화각도 같은 작용을 한다. 잘못된 렌즈 화각은 아무리 멋진 머티리얼과 배경, 조명을 때려넣더라도 실물이 아닌 장난감처럼 보이게 할 뿐이다.
배경작업부터 진행해보자.(자동차 런웨이 만들기)
- 조명을 위한 지오메트리를 만들었다.
- light의 type이 Geometry인 경우, 어떠한 Geometry를 골라서 그것을 light로 활용하겠다는 의미이다.
- 아래쪽 Area Light Options에서 Geometry Object에 원하는 지오메트리를 적어준다.
머티리얼을 수정해보자.
- 머티리얼은 디테일한 수치를 기억하지 말고, 어떠한 항목이 어떻게 작용을 하는지에 대해 이해하는 것이 중요하다.
IOR
- 굴절률, 흔히 알고 있는 물에 다리 혹은 막대를 담그면 살짝 꺾여보이는 그것. 빛이 투명한 물체를 통과하게 되면서 꺾이는 현상. 각각 재질에 대한 IOR 값이 존재한다.
- 대표적인 굴절률
- 진공 : 1
- 물 : 1.333
- 유리 : 1.4 ~ 1.7
- 다이아몬드 : 2.419
- 대표적인 굴절률
- 빛이 물체에 닿아서 반사되는 상황에서도 굴절률이 적용된다.
- 굴절률이 1인 진공인 상태에서는 완벽한 대칭반사가 이뤄지고, 굴절률이 커진다면, 곡면에서 반사의 휘어짐이 더 심해진다.
- IOR 수치가 너무 높아도 왜곡된 느낌이 들 수 있으니, 적절한 수치가 필요하다.
- IOR 수치에 따른 발색도 다르다.
Roughness
- 표면의 거칠기 정도
- 표면이 거칠다면(roughness 수치가 높다면) 반사가 잘 이뤄지지 않는다. 반대의 경우도 마찬가지.
- Roughness 수치가 높을수록 굉장히 매트해진다.
※ light가 보이질 않아서 어두워졌다.
- 이럴 경우에는 light node의 light 항목에서 Render Light Geometry를 체크해준다.
- 해상도 / pixel sample 수치에 따른 결과물의 차이를 비교해보자.
- 본인의 필요에 맞게 투자해서 렌더를 하는것을 추천한다. 최종의 최종 결과물을 뽑는 순간이 아니라면 무작정 해상도와 샘플값이 높아야 좋다는 것은 아니다.
- 낮은 해상도와 낮은 샘플 수치는 결과물에 노이즈가 많이 껴있다. 윤곽도 계단현상이 심한 것을 확인할 수 있다.
일반적으로 화질이 개선되어가는 과정은 감도의 정도가 크지 않을 수 있지만, 화질이 떨어지는 경우는 참을 수 없다.
- 시간이 많고 좋은 결과물을 얻고 싶다면, 작업 마지막단에서는 최대화질, 높은 샘플링으로 시간과 컴퓨터를 갈아넣자.
이건 작업자로서 어쩔 수 없는 부분이다...
다른 조명을 만들어서 대입해보자.
- Area Light Options 항목 중, Normalize Light Intensity to Area는 체크해줬을 때와 해제해줬을 때의 결과가 사뭇 다르다.
- 면적에 대한 빛의 세기를 정규화 해달라는 의미이다.
※ 렌더 퀄리티가 처음 조명에 비해 떨어지는 이유
- 절대적인 빛의 양이 두번째 조명이 훨씬 적다.
- 적은 빛의 소스를 가지고 세기만 키워줬기 때문에, 노이즈가 많이 발생한다.
- 이럴 때는 Light parameter에서 Sampling Quality를 조절해볼 수 있다.
후디니를 작업하면서 렌더를 해본것은 정말 손에 꼽았던 것 같다.
영상 작업을 했던지라 결과물에 대한 욕심을 버릴 수는 없어서(항상 작업할 때도 소스 텍스쳐는 조금이라도 더 크고 고 퀄리티였기를 바랐고, 최종 결과물은 4k 이하는 생각할수도 없었다.) 이것저것 만지고 렌더뷰를 돌릴 때마다 컴퓨터가 굉음을 내지른다. 좋은 컴퓨터를 지르기 위한 최고의 이유가 생기고 있다.
오늘은 많은 것을 생각해본 강의였다. 중간의 작업시간 확보를 위해 어느정도 타협할 부분은 타협을 하고 작업했어야 했는데 그러지 못했던 과거의 나를 생각하며 반성의 시간도 가졌다.
정말 최선을 다해 공부하기 위해 최고의 컨디션을 유지할 수 있도록 해야겠다.
'Houdini > Houdini1_Starter' 카테고리의 다른 글
STARTER06_ INITIAL VALUES(FOR EACH 노드 들어가기 전에) (0) | 2023.01.13 |
---|---|
STARTER05_Attribute 관련 Node (0) | 2023.01.12 |
STARTER03_Mantra(Material, Group) (1) | 2023.01.10 |
STARTER02_Part3. Group Exercise (2) | 2023.01.07 |
STARTER02_Part2. Group Exercise (0) | 2023.01.05 |