https://docs.unrealengine.com/4.26/ko/RenderingAndGraphics/Materials/MaterialProperties/BlendModes/
경계부분을 보면 거칠거칠한데, 마스크는 중간값이 없기 때문임
0 or 1 이다
중간값이 존재하여 부드러운 표현이 가능함
(SrcColor x SrcAlpha) + (BGColor x (1 - SrcAlpha)) = FinalColor
블랙을 표현할 수 있음 (값이 0에 가까워 질수록)
배경맵에 계속해서 빛이 더해짐
SrcColor + BGColor = FinalColor
블랙을 표현할 수 없음
0의 값을 자동으로 투명하게 처리됨
보통 Unlit 을 많이 사용함
불, 스파크 등 발광하는 요소가 많기 떄문
각 채널들을 살펴보자
머터리얼 본질의 색
금속 재질 표현
반사 정도
(Roughness 채널이 연결되어 있어야 함)
표면의 거친 정도
0 : 매끄러움 (0일 수록 반사정도가 표현이 잘 됨)
0.2
1 : 거칠함
Base 컬러 외에, 추가적인 색을 쓰고 싶을 때 쓰는 채널
큰 값이 입력되면 더 밝은 빛을 출력함 (RGB + 빛의 양)
EX. Multiply 노드 사용해 x100 을 했을 때
Blend Mode 에서 Additive 활성화시 Opacity 채널 활성화됨
Opacity 에 채널값을 연결해주면 0에 가까운 부분(검정)은 투명해지고, 1에 가까운 부분은 불투명해진다.
노드에는 인풋과 아웃풋이 존재
그를 연결시켜주는 부분을 핀이라고 함
Details 에서 수정
여러 노드를 선택한 뒤 단축키 C
그룹핑됨
코멘트를 달아주거나 한 번에 이동시킬 수 있음
각각 1, 2, 3, 4 vector 채널 노드
Texture Sample 노드
Add 노드
Multiply 노드
파워 노드
스칼라 파라미터 노드
Divide 노드
Texture Coodinator
UV 를 관리함
텍스쳐 오프셋을 자동으로 시켜주는 노드
컴포넌트 마스크 노드
채널 분리
필요 채널만 활성화 시킬 수 있음
다른 node 와의 연결 해제
linear interpolate Node
채널을 합쳐주는 노드
output은 2 flow vector
output은 4 flow vector
A / B
거듭제곱
어두운 부분은 더 어두워지고, 밝은 부분의 영역이 좁아진다 (완전히 1이 아닌 경우 값이 계속 작아짐)
exp 가 5 인 경우
최댓값과 최솟값의 바운더리를 정해주는 노드
Min 보다 작은 값은 Min 값으로, Max 보다 큰 값은 Max 값으로 대체됨
Texture 의 타일링 조절, 매시의 UV 인덱스 저장, 메시의 UV 좌표를 이용
두 값이 모두 1이면 본연의 텍스처가 적용됨
노이즈 텍스처를 조금 더 밀도 높게 만들 수 있음
=> Seamless 텍스처 라고도 함 (경계가 없는 텍스처)
UV 채널을 조절함
linear interpolate Node
두 인풋값을 블렌딩해주는 노드 (텍스처, 칼라, ...)
구 형태의 마스크 텍스처를 생성함
UV 애니메이션을 지정하여 텍스처가 움직이도록 함
루프형태의 이펙트를 만들 때 많이 씀
머터리얼과 파티클 컬러를 연동
항상 연산 노드와 연결됨
나이아가라 시스템에서 파티클의 색깔을 조절해주는 창이 있음
만약 머터리얼에서 Particle Color 와 텍스처가 연결되어 있지 않다면,
이 창에서 값을 바꿔도 제대로 적용되지 않음
(Alpha 값을 연결시켜 주지 않으면 A 값을 바꿔도 반영되지 않는다)
나이아가라 시스템에서 파라미터를 변경하여 텍스처의 위치 등을 변경하고 싶을 때 사용
머터리얼 에디터에서 설정한 이름과 동일한 이름의 파라미터들이 존재함
지금 같은 경우는 V offset 을 변경시킬 수 있도록 연결해뒀으므로 다음과 같은 결과가 나옴
계속해서 수가 커짐
소수점 부분의 수치만 가져옴
V 방향으로 좌표가 계속 이동하는 모습
방사형 UV
U방향
한 바퀴를 도는 방향성
V방향
센터 - 외곽까지의 거리를 나타냄
바닥 (or 다른 오브젝트?) 등과 머터리얼이 닿을 때 알파값이 자연스럽게 줄어들도록 함
Opacity 에 연결해서 사용
노말 텍스쳐의 탄젠트 스페이스를 World Space 의 버텍스(?)로 변환
머터리얼이 보고 있는 방향쪽으로 튀어나와 보이게(양수) 혹은 들어가 보이게(음수) 착시효과를 줌
Multiply 이 커질 수록 왜곡의 정도가 커짐
Frac 적용
디폴트 uv
u 방향은 빨간색, v 방향은 초록색
노말 맵 텍스처
캐릭터 등의 표면을 보다 사실적으로 나타내기 위해서는, 일반적으로 vertex 를 많이 써서 표현한다.
하지만 게임 같은 경우 최적화가 매우 중요하기 때문에 더 많은 폴리곤을 쓸 수 없는 상황이 있을 수 있다.
때문에 노말 맵 등을 사용해 텍스처를 왜곡하여, vertex 를 더 많이 쓰지 않고도 실감나는 표현을 가능하게 할 수 있다.
노말 맵 텍스처에 마스크를 적용
R, G 만 가져오기 때문에 이와 같은 텍스처가 만들어짐
B 채널만 존재
Depth 만 표현되는 느낌
B, G
Righting 을 받은 듯한 굴곡 표현 (V 방향)
R, G, B
U 방향의 굴곡까지 표현 -> x, y, z 방향의 모든 표현이 들어가 있는 빛의 계산
R, G 마스크를 적용 한 텍스처
이 Noise Offset 을 기존 uv offset 에 add 해줌으로써 원 offset 의 색상들이 이 모양대로 "밀리며" 형태가 만들어짐
왜 노말맵을 사용해야 하는가?
일반 텍스처를 가지고 왜곡 효과를 주었을 때의 결과
텍스처의 모양이 대각선으로 움직이며 가운데에서 벗어나게 된다
그 이유는
일반 텍스처를 마스크 노드에 연결했을 때의 결과값은 다음과 같다.
R 채널, G 채널
일반 텍스처는 R 채널과 G 채널의 값이 같아 흑백으로 보이는 것임
따라서 이를 ADD 로 적용시키게 되면 텍스처가 이동하게 되어버림
반면 노말맵은
R 채널
x축 표현
G 채널
y축 표현
이렇게 각 채널에서의
모양이 다르다. 상반된 값을 가진다.