1. Material과 Shader
- 머티리얼은 물체의 표면을 다루는 에셋(색상, 모양, 굴곡-울퉁불퉁한 정도, 빛의 반사)
- 쉐이더는 빛과 관련된 프로그래밍 개념에 포커스 (빛반사, 음영표현) / 머티리얼은 겉 면의 재질표현에 좀 더 포커스(블렌딩, 투명도, 색상)
- 언리얼엔진은 포괄해서 머티리얼이라고 표현(하위로 쉐이더를 포함하는 개념)
2. Material 만들기
- 원본 머티리얼 편집창에 들어갔을 때 보이는 화면이 instance편집창과 다름(머티리얼 노드임. 블루프린트가 아님)
- 노드에서 c를 누르면 주석
1. 머티리얼 파일을 만들고 Add에서 Material 클릭해서 Material 만들기
2. 노드와 노드를 연결하는 작업 → wiring(와이어링) / 동그란 것은 핀. 노드를 끊을 땐 alt + 선 클릭
3. 메인 머티리얼 노드. 각 항목들은 Material Input (머리티얼 입력)
3. Base Color의 기본
- contstant를 사용 (상수, 변하지 않는 수) → 숫자 값 쓰고싶을 때
- Constant (constant → 1 / Constant2Vector → 2 …)
- RGB가 세 가지의 색을 이뤄졌기 때문에 RGB를 사용하기 위해서는 Constant3Vector
4. Math 노드
M_Logo 머티리얼 파일을 만들어서 이미지와 컬러를 조합할 때 Math노드를 쓰면 어떻게 되는지 알아보자 (Add, Multiply, Subtract)
1) Add
1. content파일 하위에 Image 파일 만들고 이미지 다운받아 넣어주기.이미지를 끌어오고 costant3Vector불러와 Add와 함께 노드 연결
왜 Add로 컬러를 바꾸면 검정 부분만 바뀌는가?
0값으로 인식되는 검정은 0.5의 값을 더해 0.5 그대로 받아 바뀐 컬러값으로 변경, 1값인 흰색은 1.5여도 1로 인식해서 그대로 흰색임그래서 그라디언트 이미지는 컬러 값들이 1에 가까워지며 밝아짐
2) Multiply
검정은 그대로 유지되고 1*0.3은 0.3이므로 흰색은 컬러가 바뀜
3) Subtract
1 - 0.3 / 0 - 0.3 인 값으로 적용
연산의 결과 값으로 머티리얼로 적용해 표현할 수 있음!
5. Material 종류
1) Metalic (메탈릭)
- 금속처럼 보이는 정도. 비금속의 값 0 / 금속의 메탈릭 값 1
- 메탈릭과 스페큘러 모두 빛 반사를 표현. 스페큘러는 비금속의 빛 반사를 표현
- 메탈릭과 러프니스와 스페큘러 세 가지 모두 서로 영향을 줌
2) Specular (스페큘러)
- 스페큘러는 비금속의 빛 반사를 표현
- 메탈릭 값이 함께 적용되면 스페큘러가 적용된 걸 보기가 힘듦
3) Anisotropy & Isotropy (애니소트로피 & 아이소트로피)
- 금속 표현에서는 쓰지만 많이 쓰지는 않음
- 애니소트로피 : 방향에 따라 빛 반사가 변하는 (일상 생활 빛 반사와 흡사)
- 아이소트로피 : 방향에 따라 빛 반사가 변하지 않는
4) Emissive Color (이미시브 컬러)
- 머티리얼이 빛나는 위치와 밝기를 제어 (발광체)
- 그냥 적용하면 발광이 약하기 때문에 multyply 연결해서 숫자 값을 조정해 발광하는 정도를 제어해야 함
- 한 20정도가 maximum. Base Color도 함께 연결하면 검정 부분이 더 진해짐
5) Opacity (오파시티)
- Alpha / Opacity / Transparency / Translucent 모두 투명도에 관한 기능
- 처음에는 메인 머티리얼 노드에 활성화되어있지 않기 때문에 머티리얼 프로퍼티에서 다음과 같이 설정 (반투명)
- Opacity 활성화 됨
- 흰색 부분만 남음. 값이 0이 투명하게 됨. 값이 커지면 불투명해짐
- 흰색을 0으로 하고 검정을 1로 만들어주면 뒤집힘. 1 - 가 되어야 서로 값이 반대가 됨 → subtract
6) Opacity Mask(오파시티 마스크)
- Blend mode가 Masked 일 때만 사용 가능
- 머티리얼 프로퍼티에서 다음과 같이 masked로 설정
- Opacity와 매우 흡사. 컬러 변경도 가능
7) Normal Map (노멀맵)
- 로우 폴리곤에 이미지 맵에 따른 빛 반사, 음영을 표현해주는 것(컴퓨터 과부하 방지)
- 방향성과 깊이감을 가진 데이터 (크기, 방향)
- 법선 벡터(크기, 방향을 가진) → 저 벡터 값을 픽셀 값(초록색 선)에 넣어줌
- 하지만 옆에서 보면 평면임
근데 왜 Normal Map이라고 부르는가?
수학에서 Normal이 법선 벡터(Normal)의 의미를 지니기 때문에
8) Ambient Occlusion (앰비언트 오클루전)
- 틈새를 디테일하게 표현할 때 사용
- 밝은 부분은 밝게, 어두운 부분은 어둡게 명함 차이를 두는 기능
- 많이 사용하는 기능
6. Master Material / Material Instance(복제품)
- 원본과 복제품의 편집창은 다르다
- Material 원본(Master Material)에서 변경할 수 있는 값을 변수화
- Master Material을 인스턴스로 복제해서 사용할 수 있음(Material Instance) → 원본이 바뀌면 Instance도 바뀜
- Material Instance는 Master Material이 변경될 경우 기본값이 모두 변경됨
- 인스턴스에서의 변경은 원본에는 반영 안되고 원본이 변할 땐 인스턴스에 영향
직접 마스터 머티리얼과 인스턴스 머티리얼 만들어보기
- 마스터 머티리얼에서 인스턴스에서 컬러값이 변경 될 수 있도록 지정해줘야 함
- Parameter? : 외부에서 내부로 넣어주는 변수. 전달하는(되는) 값을 담은 변수 ( 36 바로 아래 화살표) / 값은 아님
- 파라미터를 만들어 인스턴스에서 값을 변경할 수 있도록 함(주석은 c키를 눌러 생성). constant3Vector 생성 후 Convert to Parameter
- 인스턴스 편집창에 가면 다음과 같은 기능이 생김
- 인스턴스에 생긴 ColorPicker로 색을 바꿀 수 있게됨
- Metalic도 변경 가능하게 해보자. Constant1을 Convert Parameter로해서 다음과 같이 만듦. 인스턴스 값을 따로 조정해주지 않으면 Default Value 값이 기본으로 들어감
7. 물리기반 Material
PBR(Physically Based Rendering) : 물리기반 렌더링
- 머리티얼이 사실적으로 표현됨
- 한 가지 셰이더를 통해 여러가지 재질 표현이 가능해짐
- Normal Map : 법선 벡터
PBR Material Input
- 언리얼 엔진에서 머티리얼의 물리기반 특성에 직접적으로 관련된 머티리얼 입력 항목
- Base Color / Roughness / Metallic / Specular
'4. 언리얼 엔진(Unreal Engine) 공부 > Unreal Engine 5' 카테고리의 다른 글
8. [UE5] Foliage, LOD 기법, HDRI Backdrop, 해상도 (1) | 2024.08.29 |
---|---|
7. [UE5] Landscape Material, Landscape Material Variation (0) | 2024.08.29 |
5. [UE5] LandScape Mode(Landmass, Landscape Spline) (0) | 2024.08.25 |
4. [UE5] Displayment, Blend Material, Texture (0) | 2024.08.24 |
3. [UE5] 기본 구성 요소(Level, Asset) (1) | 2024.08.19 |