PBR 메터리얼
- 아티스트의 직관에 의존하던 방식 -> 현실의 물리를 기반하는 방식이 새롭게 등자아고 현실과 더 비슷한 이미지를 얻을 수 있게됨.
- 각 재질에 필요한 실제로 측정한 수치들이 존재. 실제와 똑같이 하고싶다면 따르는 것이 좋다. 단 아트적으로 다가가려면 해당 수치들은 권장만 함.
언리얼 메터리얼의 두가지 유형
- 개체 묘사를 위한 메터리얼
- 이펙트를 위한 메터리얼
- 실제의 재현
언리얼 메터리얼을 구성하는 6가지 요소
- 메터리얼 에디터
- 메터리얼 레이어
- 메터리얼 인스턴스 (instance)
- 메터리얼 펑션 (function)
- 메터리얼 파라미터 콜렉션
- HLSL (High level shader)\
01. Lerp 노드 활용한 (채널별) 메터리얼 제작

- SM_chair 모델링>M_chair 메터리얼로 들어감

[3-4-클릭] 하면 constantVector4노드가 바로열림 (바로 파라미터로 변환)

Lerp : A와 B값을 alpha기준으로 합침

- 텍스쳐 샘플 임포트 (드래그)

- 텍스쳐 샘플에서 이미지를 더블 클릭하면 들어가서 각 채널을 확인할 수 있음

- 텍스쳐 상세정보

디자인툴에서 1과 0은 각각 흰색과 검정색을 의미함. Lerp는 알파값을 기반으로 함.
Lerp의 A값은 Param_1의값으로, Lerp의 B값은 Param의 값을 받아들임.

- 메쉬 선택 후 2번 클릭하면 모델링 이미지로 메터리얼 샘플 확인 가능
<기존 chair 텍스쳐>

R 값 - AO의 역할

G - 블루와 마찬가지로 마스크의 역할

- Lerp를 두 번 사용하면서

메터리얼 인스턴스를 만들고, 파라미터를 활성화 시키면 바로 컬러를 변경할 수 있음

- 위 방식을 활용 해서 부분적으로 메터리얼을 변화시킬 수 있음

- AO역할을 하고 있는 r채널을 multiply 시켜서 베이스컬러에 연결해주면 음영이 생김

- add 사용시 1값을 넘어버려서 하얀색으로 표현 -> 즉 AO는 곱하기(multiply)사용해야함


- lerp 노드와 텍스쳐 rgb값을 활용한 메터리얼
02. Expression(표현식)

- constatnt : 숫자 하나로 이루어진 노드
- vector2 : x,y 좌표 기준
- vector3 : 상수 3개
- vector4 : alpha값까지

math 노드
divide는 잘안씀. multily로 소수점을 곱하면 나눠지기 때문
그럼에도 나누는 이유는 사용할 때가 오긴 함 (정수만 수식으로 써야할 때)

- 1-x : 결과를 반대(reverse) 시킴
- Lerp : 합친다는 개념
- clamp : 값을 제한. 값이 들어오면 최소값과 최댓값을 제한할 수 있다.
- Power : 제곱해서 뻥튀기를 시켜줌

- texture sample : 텍스쳐를 담는 샘플
- texture object : 텍스쳐 샘플과 달리 인풋노드도 없고 아웃풋 노드만 있음.
샘플을 오브젝트로 만들 수 도있고, 오브젝트를 샘플로도 만들 수 있음. 언리얼에서 두 노드를 다른 유형으로 인식함. - vertex Color : 빨간색 노드. 어떠한 데이터를 인식함. 이 메터리얼이 적용되고 있는 버텍스 컬러를 가지고옴. effect할 때 많이 쓰임.
- TexCoord : 텍스쳐의 UV값을 계산하고 타일링함.

- Panner : 텍스쳐를 움직일 수 있는 노드. 스피드에 값을 입력하면 됨
- Rotator : 텍스쳐를 돌아가게 함.

- Mask : 특정 채널의 값을 추출함. (인풋으로 텍스쳐를 받고 아웃풋으로 특정값을 내보냄)
- append : 콘스탄트값을 합쳐서 vector로 만들어주는 기능. 두 개의 값을 각각 살리면서 합쳐낸다. (add랑은 다름)

- Floor : 내림
- Ceil : 올림
- Frac : 정수 날리고 소수만 씀

03. 기본적인 조합


- multiply 노드를 활용하여 1 이하의 숫자를 곱하면 어두워짐.


- add 노드를 활용해서 1값을 집어넣으면 하얘진다. 그 밑의 숫자도 0이상이면 명도가 올라간다.


- add와 multiply의 차이점

- clamp : 텍스쳐에서 0.25가 넘어가는게 있다면 전부 0.25로 만듦
fresnel : 반사되는 이미지의 각도



- 프레넬 수치에 따른 메터리얼 변화.
이 메터리얼의 경우 현실에서는 존재하지 않는 재질이며 주로 게임에서 하이라이트 효과를 줄 때 사용한다.

- 수식 math 노드를 활용하면 더 효과를 강하게 줄 수 있다.
power/mult 노드를 사용하면 진해지는건 더 진해지고 밝은건 더 밝힐 수 있는 효과를 낼 수 있음.

- 마찬가지로 Lerp 노드를 활용하여 채널별로 타일 메터리얼에 부분마다 다른 텍스쳐를 삽입하는 것이 가능하다
04. UV 수정 조합과 애니메이션

- 벽돌 텍스쳐 이미지에 0.5를 곱하면 2분의 1이돼서 기존 텍스쳐보다 작아짐

- add를 이용하면 텍스쳐의 offset 을 움직인다.

- 펄린 노이즈 텍스쳐를 활용하여 노이즈의 모양대로 변형 가능.

- sin함수노드에 따라 주기적으로 깜빡거리는 애니메이션이 첨가된 메터리얼을 제작할 수 있다.
그러나 이 경우에는 검은색일 때의 시간이 더 길다.

- 이렇게 math 노드 붙혀주면 주기적으로 깜빡거림.

- 3vector 이용해서 multiply를 alpha값에 입력하면 빨간색과 초록색이 깜빡이는 효과를 만들 수 있음.

- 텍스쳐를 위아래로 움직이게 하려면 Panner을 이용한다.

- 불꽃 텍스쳐를 flip book 노드에 연결하여 불꽃이 터지는 듯한 메터리얼을 표현할 수 있다.
05. 텍스쳐 생성

- 텍스쳐 코디네이트>mask로 레드 컬러만 남겨준다. power 노드를 붙히면 그라데이션 강도가 거세짐

- 만약 멀티플라이 노드를 연결한다면 0.5 이후의 부분 전체가 1로 인식되며 가운데에 경계선이 생김

- floor 노드를 붙혀주면 0.5 이전은 모두 0값으로 내려짐

- mask에서 g항목만 남겨두면 가로로 돌리기 가능

- clamp를 넣은 이유 : 어둡다고 0값이 아니기 때문에 제한을 함

- 원마이너스 노드를 붙혀주면 양쪽에 그라데이션 효과가 생김

- sphere mask로 원모양
과제물 제작 : 수업 내용 응용하여 테이블에 메터리얼 넣기
체크무늬 메터리얼 / 애니메이션 메터리얼 / 깜빡이는 애니메이션 메터리얼

- 기존 테이블 메쉬

- 텍스쳐 샘플 메터리얼 베이스컬러에 삽입

- r 채널

- G 채널

- base color lerp 노드 사용하여 컬러 변경 + r컬러 노드 이용하여 ao 추가

- 메탈릭, 러프니스 질감 개별로 추가

- 체크 텍스쳐 추가

- 체크패턴 삽입하고 깜빡거리는 애니메이션 넣음


- 텍스쳐가 움직이는 애니메이션






- 전체 노드

- 최종아웃풋
'Unreal Engine' 카테고리의 다른 글
| 240411 언리얼 엔진 - 메터리얼 2 (0) | 2024.04.12 |
|---|---|
| 240409 언리얼 엔진 - 레벨 디자인 기본 (0) | 2024.04.09 |
| 230408 언리얼 엔진 - 라이팅 기초 (0) | 2024.04.08 |
| 240403 언리얼 엔진 - 기본 설정 및 노드 (0) | 2024.04.03 |
| 240402 언리얼 엔진 - 기본 인터페이스/랜드스케이프 (0) | 2024.04.02 |