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로 인식해서 그대로 흰색임
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 [이론]' 카테고리의 다른 글
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 |