언리얼 - Material

Material (4) _ Landscape 지형생성 및 타일링 제거하기

earth-star 2024. 7. 10. 16:05

 

Landscape를 이용하여 간단한 무작위 지형생성 및 타일링 제거를 해볼 것이다.

 

랜드스케이프 모드로 들어가서 노이즈를 선택하고 노이즈 강도, 툴 강도, 브러쉬 크기 등을 조정하여 지형을 만든다.

 

퀵셀 브릿지에서 찾은 Mossy Grass 머터리얼 인스턴스를 지형에 넣어주었다.

 

지형을 보면 마치 블록처럼 풀이 깔려있어 매우 부자연스러운 것을 볼 수 있다.

 

이를 자연스럽게 보이게 하는 작업(타일링 제거)을 할 것이다.

 

먼저 머터리얼 함수를 생성한다.

 

이 함수에 기존에 마스터 머터리얼을 만들어 BaseColor, Brightness, Saturation, Contrast, Tint 등을 조절한 것을 이 함수로 전부 조정할 수 있도록 한다.

 

Input 값을 넣으면 함수의 입력부분에 값이 생긴다.

 

이 값의 종류(1 Float, 2 Float, Bool 등등)을 선택할 수 있고 이름도 바꿀 수 있다.

 

또한 언리얼에서 제공하는 TextureBombing 함수를 이용할 것이다.

 

여기에서의 입력노드들에도 Input을 달아 사용자가 조정할 수 있도록 한다.

 

위의 LandscapeMaterialProcess가 맨 처음 만든 머터리얼 함수이다.

 

이 함수의 입력노드들을 보면 위에서 Input으로 넣은 값들임을 볼 수 있다.

 

이 값들을 조절하기 위해서 전부 파라미터로 값을 넣어준다.

 

머터리얼 인스턴스를 만들면 위와 같이 각 파라미터를 조절 할 수 있다.

 

뷰포트를 보면 타일링이 사라진 것을 볼 수 있다.

TextureScale 값 조절

 

RandomOffsetVariation 값 조절
RandomRotationVariation 값 조절

 

조금 더 노이즈를 주기 위하여 추가 작업을 할 것이다.

 

스타터 콘텐츠에 존재하는 M_Metal_Gold를 보면 위와 같이 Macro Texture Variation과 Reduce Macro Contrast가 존재한다.

 

이는 표면에 노이즈를 생성하는 노드들로 이를 가져다가 쓸 것이다.

 

함수안에 복사하여 넣어주고 기존의 값과 Multiply하여 출력한다.

 

표면에 노이즈가 생겨 보다 다채로워진 것을 볼 수 있다.

 

위의 노이즈 노드들을 따로 함수로 저장하였다.

 

함수로 만들어 간단히 정리한 모습

 

추가로 이 노이즈 사용유무를 사용자가 선택할 수 있도록 UseMacroVariation을 추가하였다.