환영합니다 지난 강의에서
타일링을 깨는 것을 개선하기 위해 macro variation을 사용했고 이를 위해 노드들을
starter content에서 가져와 머티리얼 함수로 만들어서 나중에 원할 때 사용할 수 있게
하였습니다
레벨의 현재 모습입니다 보시는 것처럼 macro variation을 이용해서 타일링이
좀 더 눈에 덜 띕니다
다음으로 할 것은 이 플라스틱같은 모습을 없애는 것입니다
보시면 Landscape(랜드스케이프)가 별로 사실적으로 보이지 않습니다
몇가지 이유가 있는데
우선 노멀 맵을 사용하지 않았고
roughness map(러프니스 맵)을 사용하지 않았기 때문입니다
두 번째로 Specular 소켓에 작업이 필요합니다
더블 클릭해서 M_AutoLandscape로 오셔서 더블 클릭해서 이 머티리얼 함수로 들어오시면
지금까지 한 작업을 보실 수 있습니다
Base Color Texture(베이스 컬러 텍스처) 출력이고
base color(베이스 컬러)출력을 macro variation을 이용해서 변형하고 있습니다
그래프를 조금 정리하고 이 큰 덩어리에 코멘트를 남기겠습니다
좋습니다
다음으로 할 것은 Specular 소켓에 데이터를 입력하는 것입니다
기억해보시면 마스터 머티리얼을 만들 때 스페큘러에 사용한 노드들
입니다
마스터 머티리얼로 가셔서 이 노드들이 어떻게 동작하고 왜 이 노드들을 사용했는지 생각해 보셔도
좋습니다
이 Landscape(랜드스케이프) 머티리얼과 이 상황에서는 이 노드들은 조금 과하다고 생각합니다
이 노드들은 필요하지 않습니다
Specular 소켓에 간단한 데이터를 입력하고 싶을 뿐입니다
우선 이 SetMaterialAttributes를 클릭하고
attribute를 하나 더 설정하고 싶습니다
이 Add Element 를 클릭하고 Metallic에서 Specular(스페큘러)로 변경합니다
이제 Specular 소켓이 있으니 Base Color Texture(베이스 컬러 텍스처)안의 값을 specular 입력으로
사용하고 싶습니다
그렇게 함으로서 플라스틱같은 모습을 없애줄
것입니다
무슨 의미일까요
빠르게 보여드리도록 하겠습니다
BaseColorTextureInput으로 돌아가서
여기를 보시면 Base Color Texture(베이스 컬러 텍스처)를 texture object(텍스처 오브젝트) 형태로 입력하고 있습니다
그리고 이 TextureBombing으로 텍스처를 처리하고 RGB를 출력하고 있으므로
이 것이 Base Color Texture(베이스 컬러 텍스처)로 부터 나오는 RGB 출력이고 이를 cache(캐시)하겠습니다
Named Reroute 노드를 입력하고 CachedBaseColorTextureRGBOutput으로 이름 짓고
이 cache(캐시)한 RGB 출력을 여기에서 사용하겠습니다
마우스 우클릭을 하고 CachedBaseColorTextureRGBOutput를 입력합니다 스페큘러는
기억해보시면 1Float을 입력 받으므로 그냥 스페큘러 소켓에 연결할 수 있지만
값을 mask(마스크)로 감싸겠습니다
핀을 드래그하고 ComponentMask를 입력하고 레드 채널을 연결합니다
원하신다면 그린 채널을 사용할 수도 있습니다
결과는 상당히 동일합니다
이 것은 레드 채널 안에 저장된 값이고 0에서 0.5 사이로 clamp(범위 제한)을 하겠습니다
기억해보시면 마스터 머티리얼을 만들 때 스페큘러 소켓의 디폴트 값은
0.5라고 언급했었습니다
아무것도 연결하지 않는다면 말입니다 레드 채널을 사용하고 있는데 레드 채널에
저장된 값이 0.5를 넘어간다면 clamp(범위 제한)을 하여 0.5를 넘기지 않게 하려는
것입니다
좋습니다
최종 출력으로 Named Reroute 노드를 사용합니다
CachedSpecularOutput이라 이름 짓고
마우스 우클릭을 하고
캐시 노드를 사용하겠습니다
여기 CashedSpecularOutput
노드가 있습니다
스페큘러 소켓에 연결하고 Landscape(랜드스케이프) 머티리얼로 돌아가면
이 것이 Base Color Texture(베이스 컬러 텍스처)안의 값을 스페큘러로 이용하기 전의 모습이고 Apply를 누르면
훨씬 나은 Landscape(랜드스케이프)가 되었고 훨씬 사실적입니다 이 지점에서
여전히 썩 좋아 보이지는 않는데 모든 텍스처를 사용하지 않고 있기 때문이고
머티리얼에 모든텍스처를 사용하면 훨씬 나아질 것입니다
좋습니다
연습 과제 시간입니다
Base Color Texture(베이스 컬러 텍스처) 출력에서, RGB 출력에서
한 채널을 스페큘러 입력으로 사용하시기 바랍니다
레드 채널을 사용하셔도 그린 채널이나 블루 채널을 사용하셔도 좋습니다 어떻게 다른지 보시기 바랍니다
값이 0.5를 넘어가는 경우를 대비해 0에서 0.5 사이로 clamp(범위 제한)을 하시기 바랍니다
스페큘러 소켓의 최대 값이자 디폴트 값을 넘어가지 않도록 clamp(범위 제한)을
하시기 바랍니다
하셔야 할 것이 한가지 더 있습니다
macro variation과 동일하게
머티리얼 인스턴스에서 사용자가 UseBaseColorAsSpecular을 켜고 끌 수 있도록
만드시기 바랍니다
UseMacroVariation과 동일하게 boolean 파라미터를
이용해서 하실 수 있습니다
비디오를 멈추고 한 번 해보시고 도움이 필요하시면 돌아오시기 바랍니다
잘 돌아오셨습니다
사용자가 켜고 끌 수 있게 만드셨습니까
어떻게 하라 수 있는 지 보도록 하겠습니다
Base Color Texture(베이스 컬러 텍스처) 처리의 아래에 노드들을 두겠습니다
현재 이 Base Color Texture(베이스 컬러 텍스처)의
RGB 출력을 마스크로 감싸는데, 레드 채널입니다, 안에 저장된 값을 스페큘러 입력으로 사용하고 있습니다
FunctionInput을 하나 추가하겠습니다
이 것을 boolean 파라미터로, static bool로 만들고
Preview 소켓을 위해 무언가가 필요하다는 것을 기억하십시오
static bool을 입력하고 Preview 소켓에 연결합니다
이 값이 참일 경우 이 것이 최종 출력이 되고
거짓일 경우 디폴트 값인 0.5가 최종 출력이 될 것입니다
static switch(스태틱 스위치)를 추가하고
참이면 이 것이 최종 출력이고
거짓일 경우 0.5의 값이 최종 출력이 되고 False에 연결한 후
CachedSpecularOutput에 연결하고 이 것을 Value에 연결합니다
이제 Sort Priority차례입니다
base color(베이스 컬러) 조절의 아래에 있었으면 좋겠습니다
ColorTint가 10번이므로 11번이 되어야 합니다
빠르게 코멘트를 달겠습니다
11.UseBaseColorAsSpecular
라고 하겠습니다
좋습니다
Apply를
누르시고
Auto Landscape(자동 랜드스케이프) 머티리얼로 돌아가서
이제 boolean 파라미터를 위한 입력 소켓이 생겼습니다
마우스 우클릭을 하고 bool을 입력한 뒤 StaticBoolParameter를 선택하고
GrassLayer_UseBaseColorAsSpecular라고 하고 디폴트 값을
참으로 설정한 뒤 이 소켓에 연결하고 04-GrassLayer 그룹에 넣겠습니다
Sort Priority는 7이 되어야 합니다
좋습니다
Apply를 누르고 Landscape(랜드스케이프)로 돌아가면 아무것도 망가지지 않았습니다
MI_AutoLandscape를 더블 클릭해서 열면 새로운 boolean 파라미터가 보입니다
이 것을 해제 하면 base color(베이스 컬러)를 스페큘러 입력으로 사용하기 전의 모습입니다
이 플라스틱 같은 모습이 보이고 사용하면 훨씬 보기 좋은 Landscape(랜드스케이프)가 되었습니다
이번 강의에서 Base Color Texture(베이스 컬러 텍스처)안에 저장된 값을 스페큘러 입력으로 사용했습니다
여기엔 제어를 많이 넣지 않았는데
원하시면 해보셔도 됩니다
스페큘러 값을 덮어 씌워도 되고 스페큘러 값을 바꾸셔도 되지만
조금 과한 것 같고 Landscape(랜드스케이프) 머티리얼에 우리가 조절하지 않을
잉여 입력만 추가될 것 같습니다
하고싶으시면 하셔도 됩니다
boolean 파라미터를 사용해서 변환이 가능하게 하였습니다
잘 하셨습니다
Landscape(랜드스케이프) 머티리얼이 점점 더 좋아지고 있습니다 다음 강의에서 뵙겠습니다