머티리얼의 커브 아틀라스

커브 아틀라스는 머티리얼을 통해 커브 선형 컬러 데이터에 액세스할 수 있도록 해주는 커브 에셋 조합을 저장합니다.

Choose your operating system:

Windows

macOS

Linux

MaterialGradientCurvesBanner.png

커브 아틀라스(Curve Atlas)는 머티리얼을 통해 커브 선형 컬러(Curve Linear Color) 데이터에 액세스하도록 해주는 커브 에셋 조합을 저장합니다. 커브 아틀라스는 머티리얼에서 사용할 수 있는 텍스처에 임의의 수의 커브를 저장합니다. 머티리얼 인스턴스를 만들고 블루프린트를 통해 머티리얼 인스턴스 다이내믹을 변경할 때, 커브를 오버라이드로 설정할 수 있습니다. 그러면 베이스 머티리얼을 바꾸지 않고 RGBA 커브 값을 빠르게 반복처리하며 변경할 수 있습니다.

커브 선형 컬러 에셋

커브 선형 컬러(Curve Linear Color) 에셋은 선형 보간된 RGBA 포인트를 저장할 때 사용하는 에셋으로, 이 포인트를 지정한 범위에 걸쳐 평가하여 머티리얼에서 사용할 수 있는 컬러 그레이디언트를 생성합니다.

커브 그레이디언트 예제

커브 선형 컬러 에셋으로 만든 커브 그레이디언트 예제

콘텐츠 브라우저(Content Browser) 에서 우클릭 하고 기타(Miscellaneous) > 커브(Curve) 를 선택하여 새 커브 에셋을 생성합니다.

커브 에셋 생성

커브 클래스 선택(Pick Curve Class) 다이얼로그에서 CurveLinearColor 를 선택합니다.

커브 클래스 선택 다이얼로그

새 커브 선형 컬러 에셋이 콘텐츠 브라우저에 추가되고 현재 그레이디언트의 프리뷰를 표시합니다. 섬네일을 더블클릭하여 커브 에셋 에디터(Curve Asset Editor) 를 열면 그래프의 각 RGBA 커브의 키를 추가, 제거, 조정할 수 있습니다.

콘텐츠 브라우저의 커브 에셋

에셋 에디터에서 커브를 열면 개별 RGBA 커브를 설정하고, 커브에 사용할 컬러의 값을 조정하고, 커브 그레이디언트 결과를 미리 볼 수 있습니다.

이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  1. 커브 그레이디언트 결과(Curve Gradient Result) 에는 결과 그레이디언트가 표시됩니다.

  2. 커브 그래프(Curve Graph) 에서는 각 RGBA 커브의 키를 추가, 조정, 제거할 수 있습니다.

  3. 컬러(Color) 패널에서는 모든 키에 적용되는 컬러 값을 조정할 수 있습니다.

각 커브에 키를 추가하려면 가운데 마우스 버튼 으로 커브를 클릭합니다. 마우스 포인터 위치에 키가 삽입됩니다. 빈 그래프를 우클릭 하고 컨텍스트 메뉴에서 키 추가(Add Key) 를 선택하면 클릭한 위치의 x축에 있는 모든 커브에 키를 추가할 수 있습니다.

커브 아틀라스 에셋

커브 아틀라스(Curve Atlas) 에셋은 여러 커브 에셋을 저장하고 액세스하는 데 사용되며, 이 에셋으로 인해 그레이디언트 룩업 테이블(LUT)을 관리할 수 있습니다. 커브 아틀라스 에셋 에디터(Curve Atlas Asset Editor) 에서는 텍스처 에디터처럼 밝기(Brightness), 채도보정(Vibrance), 색상(Hue) 등을 조정할 수 있습니다.
커브 아틀라스 예시

커브 아틀라스 LUT의 예시

커브 아틀라스에 그레이디언트 커브(Gradient Curves) 로 할당된 커브가 아틀라스를 구성합니다. 머티리얼 그래프는 생성된 텍스처를 사용해 액터에 적용된 머티리얼을 조회합니다.

새 커브 아틀라스는 콘텐츠 브라우저(Content Browser) 에서 우클릭한 뒤 기타(Miscellaneous) > 커브 아틀라스(Curve Atlas) 를 클릭하여 생성할 수 있습니다.

커브 아틀라스 에셋 생성

아틀라스의 에셋 에디터에서 커브 아틀라스를 열면 저장 가능한 커브의 수를 설정하고, 커브를 할당하고, 할당된 모든 커브의 색 값을 조정할 수 있습니다. 이는 텍스처 에디터의 기능과 유사합니다.

이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  1. 메인 뷰포트에는 적용된 텍스처 크기(Texture Size) 에 할당된 그레이디언트 커브(Gradient Curve) 를 전부 표시하는 커브 아틀라스(Curve Atlas) 룩업 테이블이 표시됩니다.

  2. 커브(Curves) 패널에서는 필요한 그레이디언트 커브(Gradient Curves) 의 수에 따라 텍스처 크기(Texture Size) 를 설정합니다. 디폴트값은 256입니다. 그레이디언트 커브(Gradient Curves) 서브 카테고리에서는 에셋에 그레이디언트 커브 에셋을 추가할 수 있습니다.

  3. 조정(Adjustments) 패널에서는 커브 아틀라스에 할당된 모든 그레이디언트 커브(Gradient Curves) 의 텍스처를 조정합니다.

텍스처의 효율을 최대화하기 위해 2의 거듭제곱 값(32, 64, 128 등)을 사용하는 편이 가장 좋습니다. 스퀘어 해상도(Square Resolution) 체크를 해제하고 텍스처 높이(Texture Height) 를 변경하면 세로 방향의 흰색 공간을 제거할 수 있습니다.

사용한 텍스처 크기(Texture Size) 는 그레이디언트의 충실도에 영향을 줄 수 있으므로, 복잡한 커브에는 작은 아틀라스를 사용하지 않는 편이 가장 좋습니다. 다만 간단한 커브 세팅에 작은 아틀라스를 사용하면 텍스처 크기를 절약할 수 있습니다.

커브 아틀라스에 새 그레이디언트 커브를 추가하려면 더하기(+) 아이콘을 클릭해서 배열 엘리먼트를 추가합니다. 휴지통 아이콘을 사용하면 배열에서 모든 엘리먼트를 제거할 수 있습니다.

커브 엘리먼트 추가

새 배열 엘리먼트 옆의 드롭다운 메뉴와 컨텍스트 메뉴를 사용해 커브 아틀라스에 추가하고 싶은 커브 에셋을 선택합니다.

레퍼런스 커브 에셋

커브 아틀라스에 추가하는 각 그레이디언트 커브는 커브 아틀라스 룩업 테이블에 행으로 표시됩니다.

커브 아틀라스의 그레이디언트

커브 아틀라스에 머티리얼 사용하기

커브를 만들고 커브 아틀라스에 적용한 후에는 커브 아틀라스를 참조하고 아틀라스에 할당된 커브를 가져오는 머티리얼을 만들 수 있습니다.

아틀라스의 커브를 샘플링하려면 새 머티리얼을 만들고 그래프에 우클릭한 뒤 Curve Atlas Row Parameter 노드를 추가합니다.

Curve Atlas Row Parameter

이 노드는 머티리얼 인스턴스 다이내믹으로 작업할 수 있다는 점에서 스칼라 파라미터와 비슷합니다. 블루프린트에서 아틀라스 UV의 V축에 대해 MID를 사용할 수도 있지만, 이 노드는 샘플링을 직접 해 주고 벡터 3과 함께 R, G, B, A, 마스크를 반환합니다.

Curve Atlas Row Parameter 표현식을 선택하여 디테일 패널(Details Panel) 프로퍼티를 표시합니다. 여기서 아틀라스 를 할당할 수 있고, 다시 이 아틀라스에서 디폴트로 해당 머티리얼에 사용할 커브 를 선택할 수 있습니다.

Curve Atlas Row Parameter 프로퍼티

커브 아틀라스를 컴파일할 때 굽기를 진행합니다. 다시 말해 아틀라스 든 내용이나 아틀라스에 저장된 커브 데이터를 변경할 때 런타임 지원을 하지 않습니다. 다만 하나의 커브 아틀라스에 많은 양의 데이터를 저장한 뒤, 블루프린트를 사용하여 머티리얼 인스턴스에서 샘플링된 커브를 오버라이드할 수 있습니다.

예를 들어 이 ‘Rock' 머티리얼은 하나의 커브 아틀라스에 할당된 다수의 커브 중 하나를 샘플링합니다.

이미지를 클릭하면 최대 크기로 볼 수 있습니다.

머티리얼 인스턴스 를 생성하면 커브 스칼라 파라미터를 오버라이드해서 메시에 적용되는 커브 아틀라스 의 다른 커브를 참조할 수 있습니다.

이 예시는 적용된 머티리얼 인스턴스 및 커브 아틀라스에서 참조하는 커브를 나타냅니다.

커브 베이스

Curve 1

Curve 2

Curve 3

기본

커브 1

커브 2

커브 3

블루프린트를 통해 커브 아틀라스 액세스하기

블루프린트에서 Get Curve Position 노드를 사용하여 다이내믹 머티리얼 인스턴스의 스칼라 파라미터 값을 설정할 수 있습니다. Get Curve Position은 커브 아틀라스를 입력으로 받아 스칼라 값을 Set Scalar Parameter Value 에 전달하고, 아틀라스에서 커브를 찾았는지 여부를 나타내는 Boolean 값을 반환합니다.

이미지를 클릭하면 최대 크기로 볼 수 있습니다.