환영합니다 지난 강의에서는 노멀 맵을 Landscape(랜드스케이프) 머티리얼에 추가했습니다
surface material(표면 머티리얼)에 노멀 맵을 추가하여 세부적인 표현이 늘어났습니다
Landscape(랜드스케이프) 머티리얼의 현재 모습이고
그래프의 모습입니다
Base Color Texture(베이스 컬러 텍스처)의 파라미터와 노멀 맵의 파라미터가 있으니 한 가지가 더 필요합니다
Megascans폴더의 Surface폴더로 가면 임포트한 머티리얼과
Base Color Texture(베이스 컬러 텍스처), normal texture(노멀 텍스처)와 함께 ORD라는 것이 있는데 더블 클릭해서 여십시오
보시면 이상한 색을 갖고 있습니다
바로 채널이 포함된 텍스처라는 것을 알아보실 수 있으실텐데 ORD는 ambient occlusion(앰비언트 오클루전)과 roughness(러프니스)
그리고 world displacement(월드 디스플레이스먼트)의 약자입니다
레드 채널만 열면 이 것이 ambient occlusion(앰비언트 오클루전)이고 그린 채널은
roughness(러프니스)이고 블루 채널은 Displacement(디스플레이스먼트)입니다
Displacement(디스플레이스먼트)는 아직 언리얼 엔진5에서 지원하지 않으므로 우리가 고려해야 할 것은
두 가지 입니다
바로 ambient occlusion(앰비언트 오클루전)과 roughness(러프니스)입니다 MF_LandscapeMaterialProcess로 가면
base color(베이스 컬러)를 처리하는 큰 덩어리가 있고
스페큘러의 입력이 있는데 이를 이용해서 노멀을 처리하고 있으며 하나가 더 필요한데
이 ORD 텍스처를 처리하는 것입니다
제 생각에 이것은 직접 구현하시기에 완벽한 작업인 것 같습니다
연습 과제는 ORD map을 위한 입력을 MF_LandscapeMaterialProcess에 추가하시는데 Displacement(디스플레이스먼트)는
아직 지원을 하지 않으므로
ambient occlusion(엠비언트 오클루전)과 roughness(러프니스)만 고려하시면 됩니다
이 두 값을 위한 입력을 머티리얼 함수에 추가할 수 있는지 해보시기 바랍니다
ORD map을 처리하려면 또 다른 MF_TextureBombing을 사용해야 하는데
지금 쯤이면 어떻게 하셔야 하는지 아실 것이라 믿습니다
한 가지 더 있습니다
개별적인 값의 제어를 추가해 보시기 바랍니다
개별적인 값이라 함은 ambient occlusion(엠비언트 오클루전)과 roughness(러프니스)를 의미합니다
이 두 값들에 대한 제어를 추가할 수 있는지 해보시기 바랍니다
어떻게 하는지 잊어버리셨다면 지난 섹션에서 어떻게 했었는지 마스터 머티리얼을
참고하시기 바랍니다
다소 어려울진 모르나 혼자 해보시면서 많은 것을 얻으실 것입니다
비디오를 멈추고 직접 해보시기 바랍니다
도움이 필요하시면 돌아오겠습니다
잘 돌아오셨습니다 ORD map에 관한 것들을
잘 추가하셨나요
문제가 있으셨더라도 걱정하지 마십시오
어떻게 할 수 있는지 보시겠습니다
입력을 추가하기에 앞서 소켓을 2개 추가하겠습니다
하나는 AmbientOcclusion이고 다른 하나는 Roughness입니다
이제 무언가를 AmbientOcclusion과 Roughness에 연결해야 하는데 텍스처 입력을
추가해 보겠습니다
빈 공간으로 가서
FunctionInput을 추가하고
언제나 처럼
Texture 2D이고 프리뷰 텍스처를 추가하여 오류 메시지를 방지하겠습니다
TextureObject를 추가하고
이미 텍스처가 선택되어 있으므로 texture object(텍스처 오브젝트)로 이 텍스처를 사용합니다
하지만 제가 원하는 것이 아니므로 이 속성를 디폴트 값으로 바꿨고 sampler type(샘플러 타입)은
Color입니다
ORD texture의 sampler type(샘플러 타입)은 무엇일까요
이 텍스처로 돌아가면
compression settings(압축 세팅)이 보이는데 Mask이고 우리는 이에 상응하는 세팅을 해야
합니다
MF_LandscapeMaterialProcess로 돌아와서 디폴트 텍스처를 사용하는 대신 디폴트 mask(마스크)를
사용합니다
T_DefaultMaskTexture가 바로 보이실 텐데
선택하시면 sampler type(샘플러 타입)이 Masks로 자동으로 바뀌고 이 것을 프리뷰 소켓에
연결합니다
좋습니다
텍스처를 처리해야 합니다
ORDTextureInput으로 이름 짓고
ambient occlusion(엠비언트 오클루전)과 roughness(러프니스)의 개별 텍스처 입력을 여기서 만들지 않을 것입니다
왜냐하면 Quixel Bridge(퀵셀 브리지)에서 가져온 텍스처를 사용할 것이기 때문입니다
대부분의 텍스처가 이 ORD 형태입니다
스위치 파라미터와 ORD의 사용 여부를 제어하는 boolean 파라미터를
만드시고 싶으시면 만드셔도 됩니다
저는 여기서 하지 않을 것입니다
원하시면 여러분은 하셔도 됩니다
이제 이 텍스처를 처리해야 하고 이 MF_TextureBombing을 복제합니다
대부분의 값과 cache(캐시)된 노드들이 같으므로 이 노드들
또한 복제하겠습니다
이 노드들과 머티리얼 함수를 선택하고 Ctrl+D를 누르면
이 노드들을 다시 연결할 필요가 없고 위로 옮긴 후 이 값을 Texture에
연결합니다
좋습니다
출력은 RGB 출력인데
레드 채널의 값은 ambient occlusion(엠비언트 오클루전)이고 그린 채널은 roughness(러프니스) 그리고 블루 채널은
Displacement(디스플레이스먼트)라고 했습니다
값을 mask(마스크)로 감싸보겠습니다
핀을 드래그 해서 ComponentMask를 입력하고
레드 채널을 체크하는데
이 것은 ambient occlusion(엠비언트 오클루전)이고
이 노드를 복제해서 그린 채널을 체크합니다
이 것은 roughness(러프니스)입니다
좋습니다
ambient occlusion(엠비언트 오클루전)에 대한 제어를 추가하고 싶습니다
그러므로 Multiply 노드를 추가하고 소켓 A와 연결하고 소켓 B에는 FuncionInput이
필요합니다
타입은 scalar(스칼라)이어야 하고
AOStrength라고 이름 짓고 소켓 B에 연결합니다 이 것은 roughness(러프니스)입니다
기억해보시면 마스터 머티리얼에서 이 값을 Lerp 노드안의 값으로
이용해서 최소 러프니스와 최대 러프니스를 제어했었습니다
여기서도 똑같이 할 것입니다 키보드의 L을 누르고 이 값을
Alpha에 연결하고 소켓A와 소켓B의 값으로는, 이 것이 MinRoughness가 되고
소켓B는 MaxRougness가 됩니다 이 두 값을 소켓 A와 B에 연결합니다
이 것이 roughness(러프니스)를 위한 값이며 Named Reroute 노드를 사용해서 값들을 cache(캐시)할 것이므로
NamedRerouteNode를 입력하고
CachedAOOutput으로 이름 짓고 이 것은 CachedRoughnessOutput이 됩니다
제가 잊어버리기 전에 Sort Priority의 값을 빠르게 변경하겠습니다 이 ORDTextureInput은
NormalTextureInput의 아래에 둘 것이고 이 값들의 숫자를 조절해야 한다는
뜻입니다
NormalTexture의 값이 7이므로 8이 되어야 하는데
이미 8은 사용되고 있습니다
그러므로 이 Sort Priority 값들을 올려야 합니다
좋습니다
Sort Priority 값들에 모두 1씩
더했습니다
이제 이 FunctionIinput의 Sort Priority를 설정해야 합니다
좋습니다
이 숫자들입니다
조금 지루하시겠지만 정리된 Landscape(랜드스케이프) 머티리얼을 만들려면 해야하는 것들이
있습니다
다음으로 이 두 값들을 최종 출력으로 연결하려고 합니다
이 SetMaterialAttributes로 와서
ambient occlusion(엠비언트 오클루전)이 필요하므로 CachedAOOutput을 선택하고 AmbientOcclusion에 연결합니다
roughness(러프니스)는
CachedRoughnessOutput을 꺼내서
Roughness에 연결하고 Apply를 누릅니다
M_AutoLandscape로 돌아와서
이 ORDTextureInput에 무언가를 연결해야 합니다
TextureObjectParameter를 꺼내고 GrassLayer_ORDTexture라고
이름 짓고
디폴트 mask(마스크)를 사용하고 sort priorityt(정렬 우선순위)를 이 것이 5니까
6으로 지정하고 그룹에 넣고 ORDTextureInput에 연결합니다
AOStrength와 MinRoughness, MaxRoughness를 위한 값들이 필요합니다
이 네 값들이 모두 single float(싱글 플로트)타입이므로
위의 TilingAdjustment와 같이 Constant 4 파라미터를 이용해서 조절할 수 있습니다
빠르게 해보겠습니다
파라미터를 꺼내고 GrassLayer_DetailedAdjustment라고 하고
무슨 값을 조절하는 지 알 수 있게 이 채널들의 이름을 바꾸겠습니다
첫 번째는 NormalStrength가 되니
레드 채널에 가서
NormalStrength라고 입력하고
그린 채널은 AOStrength가 되고 블루와 Alpha 채널은 각각 MinRoughness와 MaxRoughness가 됩니다
디폴트 값은 1로 주겠습니다
MinRoughness는 1이 아니라
디폴트 값에 0을 주도록 하겠습니다
MaxRoughness는 0.8정도 주겠습니다
이 값들은 나중에 언제든 바꿀 수 있습니다
좋습니다
각자 상응하는 소켓에 연결합니다
이제 이 파라미터는 더 이상 필요하지 않고
이 Sort Priority는 10이 되어야 하고 그룹에 넣어준 뒤
이 핀들을 알맞게 연결합니다
Apply를 누르고 MI_AutoLandscape로 돌아가면 ORD 텍스처를 위한
입력이 생겼고
이 텍스처를 선택하고 이 파라미터에 넣겠습니다
이제 최소 러프니스와 최대 러프니스 그리고 엠비언트 오클루전의 세기를 제어할 수 있고 이 세부 속성들의 제어도
가능합니다
NormalStrength를 조절할 수 있고 AOStrength를 조절할 수 있으나
매우 미묘한 효과이기 때문에 눈치 채지 못할지도 모릅니다 또한 최소 러프니스와 최대 러프니스도
조절할 수 있습니다
보시면 현재 최대 러프니스의 값이 0.2이고 값을 올리면
표면의 거칠기 또한 변합니다
이 경우에는 1의 값으로 충분한 것 같습니다 이번 강의에서 Landscape(랜드스케이프) 머티리얼에서 ORD map을 사용했고
ambient occlusion(엠비언트 오클루전)과 roughness(러프니스)의 제어를 했습니다
잘 하셨습니다
이제 Auto Landscape(자동 랜드스케이프) 머티리얼의 첫 레이어를 마쳤습니다
다음 강의에서
뵙겠습니다