※ 현재 학습 중인 내용이므로 아직 완전하지 않은 내용일 수 있습니다.
내용에 대해서 피드백을 주시면 관련 내용 보완하여 작성하겠습니다.
언리얼에서 이미지 합성의 기초가 되는 선형 보간(Linear Interpolation)에 대해서 다루어 보도록 하겠습니다.
1. 선형 보간 Linear Interpolation이란?
먼저 위키백과 검색 결과를 보면
끝 점의 값이 주어졌을 때, 사이에 위치한 값을 추정하기 위해 직선 거리로 선형적으로 계산하는 방법이다
라고 말하고 있습니다. 여기서 주목해야 할 것은 끝 점, 사이에 위치한 값, 추정이고,
끝 점이라는 것은 시작 점도 있다는 소리이기 때문에 같이 기억해주시길 바랍니다.
위 말을 표현하면 아래와 같습니다.
구체적으로 0과 1사이에서 0.5라는 추정 값을 입력했을 때,
어떤 색상이 나와야 하냐는 것이죠.
직선적으로 이를 이해한다는 것은, 0에서부터 0.5와,
0.5에서부터 1을 해당 비율만큼 조정하여 '추정'한다는 것입니다.
이를 표현하면 아래와 같습니다.
그리고 이 원리가 머티리얼에서 어떻게 활용되는지 살펴봐야 합니다.
2. 예제 세팅 준비
해당 예제용 자료를 다운받고, 머티리얼과 텍스쳐 2개를 준비합시다.
폴더 구성은 전혀 중요하지 않고, 머티리얼과 2개의 텍스쳐만 있으면 됩니다.
위와 같이 준비합시다.
3. 사용법
머티리얼 에디터에서 Linear Interpolation 표현식을 불러옵시다.
표현식 노드를 살펴보면 A, B, Alpha를 입력할 수 있습니다.
여기서 A는 시작점, B는 끝점, Alpha값은 추정할 값이 되는 것입니다.
위의 원리를 직접 테스트해보았을때의 노드는 아래 구성으로 작성할 수 있습니다.
Alpha 채널의 값을 조정할 때마다 출력되는 색상이 변동됩니다.
추정 값을 만약 0.2로 입력했을 때는 그럼 어떤 색상일지,
0.75로 입력했을 때는 어떤 색상일지 테스트해보세요.
4. 텍스쳐와 색상
위 노드 구성에서, 이 이미지처럼 구성을 변경해 봅시다.
머티리얼을 활용할 때에는 주로 이 방법을 어떻게 사용하냐면,
알파 채널에 텍스쳐를 입력하여 색상 분포에 따라 표현이 달라지도록 구성합니다.
그러면 가장 어두운 영역은 A값, 가장 밝은 영역은 B값이 되고,
해당 색상 값에 따라서 변하는 텍스쳐를 만들 수 있게 됩니다.
색상을 다양하게 변화시켜 원하는 효과를 제작해 보도록 합시다.
5. 텍스쳐의 합성
이번에는 T_Star로 이미지를 변경하고 구성도 바꾸어보았습니다.
일단, 언리얼로 직접 작업하는 것을 멈추고, 생각부터 해봅시다.
T_Star의 알파 값을 기준으로 합성이 진행됩니다.
위의 텍스쳐와 똑같이 T_Star의 가장 낮은 값은 출력 A로,
가장 높은 값은 출력 B가 될 것입니다.
그럼 출력 결과는 어떻게 될까요?
맞습니다. 0과 1로 나누어진 해당 Alpha채널에서는
A의 값에 B를 합성한 형태로, 출력되게 되는 것입니다.
이번에는 A값을 텍스쳐로 변동해 보겠습니다.
A값이 텍스쳐로 변동 되더라도, 연산은 동일하게 이루어집니다.
Linear Interpolate 표현식의 Alpha 값은 그대로 T_Star의 알파 채널의 형태를 그대로 띄고 있으므로,
가장 밝은 값인 1은 입력값 B, 그러니까 Texture Sample의 RGB값을 출력하고,
가장 어두운 값은 A채널의 값, T_Noise를 출력하여 합성됩니다.
이렇게 오늘은 머티리얼에서 가장 중요한 개념인 선형 보간(Linear Interpolate)에 대해서 알아보았습니다.
다음 시간에는 텍스쳐 다루기편으로 찾아뵙겠습니다.
'Unreal5로 UI만들어보기 > 0) Material 다루기' 카테고리의 다른 글
8. 텍스쳐 다루기 (2) 텍스쳐 회전(Rotate) 구현하기 (0) | 2023.03.02 |
---|---|
7. 텍스쳐 다루기 (1) 이동(Translate), 배율(Scale) 기능 만들기 (3) | 2023.02.28 |
5. 머티리얼 적용 (1) 텍스쳐, UV와 워크플로우 (2) | 2023.02.24 |
4. 출력과 테스트 (1) Live update 옵션 (0) | 2023.02.23 |
3. 머티리얼 데이터 (2) Appendvector , ComponentMask (0) | 2023.02.22 |