환영합니다
지난 강의에서는 Roughness(러프니스)가 무엇이며 이에 어떤 데이터 종류들이 사용되는지 알아보았습니다
Roughness(러프니스)에 0 값을 플러그 하면 표면이 완전히 반사적이게 됩니다
1의 값으로는 완전히 거칠어집니다
이제 우리가 원하는 것에 꽤 가까워졌는데 남은 것은
Roughness(러프니스)를 사용해 Plate(플레이트)가 지저분해 보이도록 연출하는 것입니다
하지만 정확히 무엇이 필요할까요?
두 개의 특별한 숫자를 살펴보도록 합시다
먼저, 0과 1입니다
지난 강의에서 제가 여러분에게 작은 숙제를 드린 것 기억하십니까?
Base Color(베이스 컬러)에 0이나 1을 플러그하면 어떻게 될지 말입니다
그걸 시도해보셨다면 0 값으로는 까만 화면을
1 값으로는 하얀 화면을 확인하셨을 것입니다
이것은 아주 중요한 개념이며 더 복잡한 작업을 하기 전에 꼭 알아야 합니다
색이란 그저 0 값은 검정이 되고 1 값은 흰색이 되며
다른 값들도 각자 상응하는 색이 되는 것입니다
일단 0과 1을 어떤 색을 표현하는지 알았으니
간단한 과제를 드리겠습니다
이 색들을 맞춰보시기 바랍니다
이 색들은 어떤 값을 갖고 있을까요?
틀려도 괜찮습니다
그저 색의 값을 다루는 데 더 익숙해지기 위해 드리는 문제입니다
최대한 비슷하면 됩니다 정확할 필요는 없습니다
그럼 영상을 멈추고 생각해 보시기 바랍니다
1보다 크지 않고 0보다 작지 않다는 것을 기억하셔야 합니다
다시 영상을 멈추고 생각해 보시기 바랍니다
생각하셨나요?
이 값들을 알아내는 데 어려움이 있었나요?
같이 한 번 살펴봅시다
첫 번째 사진은 검정빛이 도는 게 보입니다
0과 1 중간에 있습니다
값은 0.5입니다
두 번째는 보이다시피 첫 번째 꺼보다 더 어둡습니다
그러니 값이 더 낮을 것입니다
값은 0.25였습니다
세 번째는 두 번째보다도 어둡지만 아주 검정은 아닙니다
값은 0.1이었습니다 그리고 마지막은
좀 어려울 수도 있습니다
값은 0.7이었는데 비슷한 값을 예상하셨나요?
이것으로 이 개념을 확실히 기억하는 데 도움이 되었으면 좋겠습니다
색은
그저 값에 불과합니다
각 색들은 각기 다른 값들을 갖고 있습니다
이것이 중요한 이유는 다음으로 사용할 Lerp라는 Node(노드)에 필요하기 때문입니다
Lerp는 Linear Interpolation(선형 보간법)의 약어입니다
복잡한 머티리얼 그래프에서 대부분 이것을 발견할 수 있습니다
게다가 너무 중요하기 때문에 따로 단축키도 있습니다
먼저 사용했던 세 가지 Constant(상수)들처럼 말입니다
Node(노드)에는 세 개의 Socket(소켓)이 있으며 세 개의 값을 플러그 할 수 있다는 의미입니다
일단 시작해봅시다
머티리얼 그래프를 다시 살펴보면
어떻게 Lerp Node(노드)를 불러낼 수 있을까요?
두 가지 방법을 보여드리겠습니다
첫 번째 방법은 그래프의 빈 공간에 우클릭을 하고 LinearInterpolate라고
입력합니다
엔터를 하자마자 즉각 Node(노드)가 불려옵니다
두 번째 방법은 앞서 말했듯 Lerp 고유의 단축키가 있으므로 L를 꾹 누르고
좌클릭합니다
이런 식으로도 Node(노드)를 불러올 수 있습니다
두 방법 다 괜찮지만 제가 선호하는 방식은 두 번째입니다
이제 필요 없는 Node(노드)는 지워주겠습니다
여기에는 Constant1Vector들이 필요하니 두 개를 불러오겠습니다
숫자 1키를 꾹 누르고 좌클릭으로
첫 번째 것을 불러와줍니다
값은 0으로 부여하고
Socket(소켓) A에 플러그합니다
두 번째도 불러오겠습니다
값은 1로 하고 Socket(소켓) B에 플러그합니다
이제 Alpha 채널, 즉 세 번째 Socket(소켓)은 비워두겠습니다
그리고 이것을 Base Color(베이스 컬러)에 플러그합니다
알아보시겠습니까?
이게 무슨 값인지 아시겠습니까?
이 Node(노드)에서 출력되는 값이 무엇입니까?
Socket(소켓) A에는 0, B에는 1, Alpha에는 아무것도 없습니다
최종 출력은 0.5입니다
이유가 무엇일까요?
제가 설명해드리기 전에 먼저 여러분이 실험해 보시기 바랍니다
그것이 오늘의 두 번째 과제입니다
두 번째 과제는 Lerp가 하는 일을 알아내는 것입니다
제가 그랬던 것처럼 머티리얼 그래프로 갑니다
Socket(소켓)에 0을 플러그합니다
Socket(소켓) B에는 1을 넣어주고 Alpha 채널로도 시험 해보겠습니다
한 번 0을 플러그해보고 출력 색이 무엇인지 보시기 바랍니다
이번엔 1을 넣으면 어떻게 될까요?
색이 바뀔까요?
스스로 살펴본다면 더 잘 이해할 수 있습니다
그러니 영상을 멈추고 시도해 보시기 바랍니다
시도해 보셨나요?
이제 답을 찾으셨나요?
아직 어려우시다면 걱정하지 않으셔도 됩니다
같이 답을 살펴보겠습니다 Alpha에 0를 플러그하니 Lerp가 Socket(소켓) A안의 값을
출력하고 있습니다
이 경우에는 0입니다
이것은 Base Color(베이스 컬러)에 플러그 해보겠습니다
Preview Mesh(프리뷰 메시)를 보면 완전히 검정색인데 1을 플러그했을 때 Lerp가
Socket(소켓) B의 값을 출력하기 때문입니다
이 경우에는 1이어야 하며 Preview Mesh(프리뷰 메시)는 흰색이어야 합니다
그래서 Alpha의 0은 첫 번째 값을 출력하고
Alpha의 1은 두 번째 값을 출력합니다 Alpha가 그 중간에 있다면 그 중간 값을 출력합니다
자
굉장히 간단합니다
기본적으로 Alpha에 아무것도 플러그하지 않으면 값은 0.5입니다
그래서 처음에 0.5가 나온 것입니다
이 Node(노드)를 모든 Node(노드) 기반 시스템에서 찾을 수 있지만 다른 명칭으로 나타날 수 있습니다
예를 들어 Blender에서는 Color Ramp라고 부릅니다
명칭은 다르지만 같은 기능입니다
다시 지저분한 Plate(플레이트) 만들기로 돌아와보면
이런 표면을 연출하기 위해서 어떻게 해야 할지 감이 잡히셨을 거라고
생각됩니다
당연하게도 Roughness(러프니스)를 조절하고 Lerp를 사용해야 합니다
시도해봅시다
이미 Lerp Node(노드)에 1과 0이 플러그되어 있습니다
이걸 간단히 Roughness Socket(러프니스 소켓)에 플러그하고 이 값은
Base Color 소켓에 플러그합니다 (*사전에 검정빛의 색을 만들어두었습니다)
이제 Roughness(러프니스) 값이 0.5이니
표면이 바뀐 것이 보입니다
Alpha의 값을 바꿔도 변화가 보입니다
Alpha에 1을 넣으면 완전히 거칠어 집니다
그럼 이 값을 0로 바꾸면 표면은 완전히 반사적이게 됩니다
표면을 불규칙적으로 만들려면 이 Alpha 값을 다뤄야 합니다
예를 들어 이 부분은 1, 이 부분은 0이 되도록 만들 수 있을까요?
그러면 이 부분은 완전히 거칠고 이 부분은 완전히 반사적으로 만들 수 있습니다
그렇게 할 수 있으면 우리가 원하는 불규칙성을 띄우는 것이며 가능한 방법이 있습니다
Noise Texture(노이즈 텍스처)가 필요합니다
색은 그저 값이라는 것을 배웠습니다
그리고 노이즈 텍스처는 단순히 0과1 사이의 값으로
흰 부분은 1, 검은 부분은 0, 회색 빛은 그 사이의 값들입니다
이는 우리가 원하는 불규칙성을 띄우기 위해 완벽합니다
이것을 Alpha 채널에 하나의 값 대신 사용하려면 우선 준비가 되어 있어야 합니다
다행히도 언리얼에서
대신 준비를 해준 덕분에 직접 Noise Texture(노이즈 텍스처)를 생성하지 않아도 됩니다
에디터로 돌아와 Content Browser 밑에서
Add 버튼을 클릭합니다
무엇을 선택해야 하냐면
Add Feature or Content Pack을 클릭하고 Content로 가서 Starter Content를 선택한 다음
이 Content Pack(콘텐츠 팩) 안에는 우리에게 필요한 Noise Texture(노이즈 텍스처)가 있으니 Feature Pack(피처 팩)을 추가했으면
다시 머티리얼 그래프로 돌아옵니다
외부 Texture(텍스처)를 사용하고 싶을 때마다 간단하게
우클릭을 하고 입력을 해줍니다
Texture
간단합니다
그래프 안에서 각 노드가 하는 일이 궁금하다면 언제든 Ctrl을 꾹 눌러서
자세한 정보를 확인할 수 있습니다
여기에 TextureSample 표현은 Texture(텍스처)에서 색의 값을 출력한다고 써있습니다
그러니까 우리가 여기서 고른 텍스처의 값을 출력하는 것입니다
이걸 클릭하고 t_perilin_Noise를 입력하는데 이런 상황에 유용할 것입니다
이런 식으로 말입니다
이제 Texture(텍스처)가 생겼습니다
이 Node(노드) 안에는 너무 많은 Socket(소켓) 출력이 있습니다
어느 것을 Alpha 채널에 플러그해야 할까요?
생각해 봅시다
Alpha 채널은 어떤 데이터 종류가 필요할까요?
Socket(소켓) A와 B에 오직 하나의 Float만 플러그하고 있으므로
Alpha 채널은 Constant1Vector를 필요로 할 것입니다
그래서 여기에 RGB를 플러그하는 것은 세 개의 값을 출력하므로 적합하지 않아 보입니다
하나만 필요합니다
즉 하나의 채널입니다
하지만 어느 것일까요?
정답을 찾기 위해선 이 채널들 안에 무엇이 있는지부터 살펴보아야 합니다
그러면 왼쪽으로 가서 돋보기 모양을 클릭해줍니다
이 Texture(텍스처)가 위치한 곳으로 데려가 줄 것입니다
이 창을 최소화시켜 주고
그리고 바로 여기가 Texture(텍스처)가 위치한 곳입니다
더블 클릭으로 열어보겠습니다
기본적으로 Texture(텍스처)는 세 개의 채널을 함께 보여줍니다
이 채널들을 클릭하면 해제됩니다
우선 세 채널들을 해제하여 하나씩 살펴보도록 하겠습니다
이제 레드 채널을 다시 활성화해보겠습니다
레드 채널에서 보이는 결과입니다
그 안의 값들입니다
그렇다면 그린 채널은 어떨까요?
비슷해 보이는데 블루도 확인해보면 이것도 마찬가지입니다
이 Texture(텍스처) 안에는 세 개의 채널에 있는 값들이 다 같으며 패턴도 전부 같습니다
그러므로 R, G, B 중 무엇을 사용하든 같은 결과입니다
그건 잠시 제쳐두고
오늘의 진짜 과제를 시도해볼 시간입니다
여러분이 해야 할 일은
단축키를 사용해 Lerp 노드를 그래프에 가져오는 것입니다
각 Socket(소켓) A와 B에 올바른 값들을 넣어주고
그래프에 Noise Texture(노이즈 텍스처)를 샘플해주면 되는데 Alpha 채널, 맨 밑 Node(노드)에 맞는 채널을 플러그해야 합니다
시도해 보시고 레드 채널과 그린 채널, 혹은 RGB를 전부 플러그했을 때 어떤 일이 생기는지 확인해 보시기 바랍니다
영상을 멈추고 시도해 보시기 바랍니다
시도해보셨나요?
Plate(플레이트)을 지저분하게 연출하는 것에 성공하셨나요?
다시 함께 살펴봅시다
여기서는 레드 채널을 Alpha에 플러그 해주겠습니다
그러면 바로 Preview Mesh(프리뷰 메시)에서 표면이 바뀐 것이 보입니다
그리고 어떤 부분은
완전히 거칠고 어떤 부분들은 완전히 반사적입니다
이것은 우리가 어떤 메시를 사용하든 실시간으로 보여줍니다
만약 그린 채널을 사용해봐도 결과는 같습니다
이 세 채널의 값이 전부 동일하기 때문입니다
RGB를 전부 Alpha에 플러그해도 마찬가지입니다
Socket(소켓)은 하나의 Float만 필요 하지만 이 세 가지를 전부 Alpha Socket(소켓)에 플러그 해도
엔진은 자동으로 불필요한 값들을 제거합니다
그러니 여기엔 오직 하나의 값만이 Alpha에 플러그되는 것입니다
그렇게 지저분한 Plate(플레이트)를 연출해봤습니다
이 강의에서는 색을 표현할 때 0과 1의 역할에 대해 다뤘습니다
색이 그저 값의 표현이라는 것과 Lerp Node(노드)가 Alpha Socket(소켓)에 변화가 생길 때마다
그 두 값들을 어떻게 사용하는지 알아보았습니다
Noise Texture(노이즈 텍스처)의 중요성도 살펴보았으며 어떻게 메시에 실시간으로 반영되고
어떻게 그 Node(노드)를 활용하는지에 대해서도 배웠습니다
잘하고 있습니다
다가오는 강의에 있을 복잡한 작업을 위해 배운 내용을 미리 공부해 두시기 바랍니다
그럼 얼른 다음 강의에서 만날 수 있기를 바라겠습니다