개요

 

지난 Material Property 기초(1) 에서는 유리 재질을 만들기 위해 머티리얼을 제작하는 과정에서 다루게 되었던 Material Property 의 디테일 설정값 중 몇 개에 대해 알아보았다. 그래픽 관련 공부가 처음이라서 이해하기 어려운 용어들이 많았기 때문에, 이해할 수 있는 범위 내에서 필요한 기능들만 선택적으로 포스팅했다.

 

이번 포스팅에서는 머티리얼 그래프의 기본적인 항목들과 블루프린트를 이용하는 기초적인 방법들에 대해 써 보려고 한다. 포스팅의 제목에 기초 (1) 을 붙이는 이유는 다루는 내용을 온전히 이해하지는 못했기 때문에, 추후에 더 자세한 내용들을 알게 되면 추가로 포스팅하기 위함이다.

 

내가 구현하고픈 기능은 유리 재질이었기 때문에, 주로 유리 재질에 영향을 미치는 속성들 위주로 살펴보고 빠르게 넘어가려고 한다.


머티리얼 그래프

머티리얼 그래프는 머티리얼의 다양한 속성값 노드에 적절한 값 형식을 연결해서 머티리얼을 표현하는 블루프린트 형식의 방법이다. 오른쪽의 윈도우를 보면 베이스 컬러부터 다양한 속성들이 나열되어 있다. 이 속성은 머티리얼 프로퍼티의 디테일 부분에서 도메인이나 블렌드 모드, 쉐이딩 모델, 투명도(translucency) 등의 설정에 영향을 받는다. 텍스트가 흰색으로 들어와 있는 노드들을 사용할 수 있고, 그렇지 않은 노드들을 사용하려면 디테일을 다시 적절하게 설정해 주어야 한다.

 

머티리얼 그래프. 오른쪽에 메인 머티리얼 노드가, 왼쪽에 그 값들이 링크되어 있다.

노드에 맞는 값 생성하기

처음 머티리얼 그래프를 보고 당혹스러웠던 점은 ‘입력값을 어떻게 생성해야 하는가’ 였다. 노드에 값을 연결해야 한다는 건 직관적으로 이해할 수 있었지만 어떤 값을 어떻게 연결해야 할 지는 설명을 듣지 않으면 바로 알아채기 힘들다.

 

1. 우클릭

노드의 값을 생성하는 가장 기초적인 방법은 빈 페이지에 우클릭을 하는 것이다. 우클릭을 하면 파라미터로 사용할 수 있는 형식들이 쭉 나열되는데, 이 중에서 필요한 형식을 검색해 찾아 입력하면 된다. 베이스 컬러에 들어가는 Constant3Vector 의 경우도 이같이 생성했다.

2. 하나의 숫자 값을 입력하고 싶을 때

위의 머티리얼 그래프에서, metal 같이 하나의 숫자로 이루어진 값을 입력하고 싶다면, 숫자키 1 + 좌클릭을 통해 값을 생성할 수 있다.

 

3.  노드에서 드래그하기

입력하고 싶은 노드를 클릭한 뒤, 드래그 하면 우클릭 한 것과 똑같은 검색창을 띄울 수 있다.

 

간단한 조작법

  • 빈 화면에 우클릭 후 드래그하면, 화면의 위치를 조정할 수 있다.
  • 값을 속성노드에 연결하려면, 노드를 하나 클릭한 후 연결하고픈 노드에 드래그&드롭 하면 된다.
  • 기존에 연결된 링크를 끊는 방법은 링크를 알트+좌클릭 하면 된다.
  • 링크된 값들은 기본적으로 상수 상태이다.이 값을 변할 수 있는 파라미터로 설정하려면, 우클릭 후 파라미터로 변환 - 이름을 설정해 주면 된다. 
  • 속성 노드에 값이 연결되어 있지 않을 때, 우클릭 - 파라미터 승격을 누르면 자동으로 파라미터가 생성된다.

메인 머터리얼 노드

머터리얼 그래프의 머터리얼 속성 노드들을 부르는 명칭이 메인 머터리얼 노드라는 사실을 쓰던 도중에 깨달았다. 이를 자세하게 설명하는 문서가 있으니, 링크를 참조하자.

메인 머티리얼 노드 사용법

 

메인 머티리얼 노드 사용법

메인 머티리얼 노드 설정 및 사용법에 대한 안내서입니다.

docs.unrealengine.com

그리고, 다음 링크는 UE 5.1 공식 문서다. 이 문서에서 물리 기반 렌더링에 대한 자세한 내용들을 다루고 있으니, 더 자세한 내용을 확인하려면 아래 링크를 참고하자.

물리 기반 머티리얼

 

물리 기반 머티리얼

주요 물리 기반 머티리얼 입력과 가장 적절한 사용 방법의 개요입니다.

docs.unrealengine.com

베이스 컬러

베이스 컬러는 머티리얼의 전반적인 색상을 정의한다. 입력값은 Vector3(RGB) 이며, UE5.1 문서를 통해 기본적인 재질들의 베이스컬러 값이 어떤지 확인해 볼 수 있다.

러프니스

러프니스는 머티리얼의 표면이 얼마나 거친지를 설정하는 값이다. 표면이 거칠수록 머티리얼의 반사광(리플렉션)이 흐릿해진다 (0). 반대로 러프니스 값이 낮을수록, 스페큘러가 선명해진다 (1).

금속의 경우
비금속의 경우

러프니스가 0부터 1로 갈 수록, 금속이건 비금속이건 빛이 거칠게 분산되는 것을 확인할 수 있다.

 

메탈릭

메탈릭은 머티리얼이 금속인지 아닌지를 결정한다. 0~1 사이에서 실수 단위로 설정할 수 있다. UE에서는 순수한 물질의 표면인 경우 비금속인 0 또는 금속인 1 중에 선택할 것을 권장하고 있다. 부식, 먼지, 녹 등을 표현하고자 할 때는 실수값을 사용해도 된다.

스페큘러

스페큘러는 정반사광인 스페큘러 라이트의 반사정도를 0~1 사이에서 설정하는 속성이다. 스페큘러 값이 0이면 반사가 없고, 1이면 완전반사된다. 기본값 0.5는 4%정도의 반사가 일어나는데, 이 값이 대부분 정확하다. 디퓨즈(난반사) 가 심한 물질을 표현하고 싶어도, 0으로 두면 안된다. 그럴 땐 러프니스 값을 조절해주어야 한다.

오파시티

Opacity 는 해당 머티리얼을 빛이 어느정도 투과하는 지, 즉 투명한 정도를 0에서 1사이로 설정하는 항목이다. 0에 가까울 수록 머티리얼이 투명해지며, 1에 가까울수록 불투명해진다. 목표로 했던 유리 재질 만들기에 가장 중요한 역할을 한 것이 바로 이 오파시티였다. 투명도는 상황에 따라 복잡한 연산이 필요하기 때문에, 그로 인해 몇 가지 문제가 발생한다. 아래 있는 공식 문서를 통해 더 자세하게 확인할 수 있다.

투명도 사용법

 

투명도 사용법

머티리얼에서 Transparency, 투명도를 사용하는 법입니다.

docs.unrealengine.com

앰비언트 오클루젼

렌더링 과정 중 셰이딩의 한 방식. 각각의 표면이 공간에 얼마나 노출되어 있는지를 계산하여 그림자를 더해주는 기술이다. 지역 라이팅에서 잘 표현하지 못하는 오브젝트의 굴곡 음영들을 표현해 준다. 정확한 내용을 UE 문서 내에서 찾지 못해서 간단하게 기록하고 넘어간다.

왼 쪽이 앰비언트 오클루전이 적용되지 않았을 때, 오른쪽이 적용되었을 떄이다. 내부에 살짝 음영이 진 모습을 확인할 수 있다.

굴절

빛이 어떤 물질을 통과할 때, 빛의 속도차로 인해 빛의 방향이 틀어지는 것을 굴절이라고 한다. 메인 머터리얼 노드의 굴절 값은, IOR(Index Of Reflection) 이라고 생각하면 된다. 재질에 따라 굴절률이 다르고, 기본값인 1은 공기이며 유리의 경우 1.52 의 굴절값을 가진다.

굴절에 대해서도 공식 문서를 통해 더 자세하게 알 수 있다.

굴절 사용법

 

굴절 사용법

머티리얼에 Refration, 굴절을 사용하는 방법 안내입니다.

docs.unrealengine.com


마무리

오늘은 머터리얼 그래프의 메인 머터리얼 노드 속성들에 대해 간단히 알아보았다. 애니소트로피와 이미시브 컬러, 노말은 아직 사용해 본 적 없는 기능이어서, 나중에 더 자세하게 알아보도록 하겠다.

다음 포스트에서는 블루프린트 함수로 보여지는 Lerp가 무엇을 뜻하는지 간단하게 알아보고, 마스크와 텍스쳐, 노말에 대한 기본적인 개념 및 각 노드에 텍스쳐를 적용하는 방법까지 알아본 뒤 최종적으로 유리 재질에 텍스쳐를 적용하는 것 까지 시도해보려고 한다. 이미 유리재질은 만들었지만 텍스쳐 활용법을 몰라서 단순 유리재질만 사용했다. 다음 공부가 기대된다.

위 내용들은 머티리얼에 대한 기본적인 공부 과정에서 ‘모르면 다른 것들을 이해할 수 없는 내용’ 이라는 생각이 들어서, 우선학습하려고 한다. 그 다음으로는 시작해요 언리얼 2023 강의 정리, 과제 제출 과정에 대해 포스팅하며 직접 몸으로 배운 내용들을 정리하겠다.

이번 주에는 UE5 에서 물을 다루는 방법, 랜드스케이프를 생성하는 법을 학습해 3주차 과제에서 해변을 품은 테라리움이 올라가 있는 선반을 만드는 것이 최종 목표다. 시간이 4일 남아서 열심히 해봐야겠다.

'UE5' 카테고리의 다른 글

Lerp : 선형보간 (Linear interpolation)  (0) 2023.03.30
1. Material Property 기초 (1)  (0) 2023.03.23