텍스처 컬러(Texture Color) 모드는 메시 페인트 텍스처(Mesh Paint Texture) 라는 특수한 텍스처에 페인팅을 기록하여 메시 위에 컬러를 페인팅하는 모드입니다. 이 텍스처는 페인팅되는 메시의 인스턴스에 저장됩니다. 이는 버텍스 컬러 모드 페인팅이 페인팅되는 메시 인스턴스의 추가 버텍스 버퍼에 저장되는 방식과 비슷합니다. 메시의 버텍스 대신 메시 페인트 텍스처에 컬러를 페인팅하면 버텍스 밀도와 상관없이 텍스처 크기를 선택할 수 있다는 장점이 있습니다. 이 방식은 메시에 고해상도 페인팅이 필요 없을 때 좋을 수 있지만, 프레임 예산이 적은 일부 플랫폼에서는 제한적일 수 있습니다.
나나이트 메시는 인스턴스별 버텍스 컬러 페인팅을 지원하지 않습니다. 나나이트 메시에서는 텍스처 컬러 페인팅을 사용하는 수밖에 없습니다.
메시 텍스처 컬러 페인팅을 위한 필수 구성
프로젝트 및 메시에서 텍스처 컬러 모드를 사용하려면 몇 가지 단계를 거쳐야 합니다. 그 단계는 다음과 같습니다.
- 프로젝트에 버추얼 텍스처를 활성화합니다.
- 텍스처 컬러 모드를 사용하여 선택한 메시 인스턴스에 메시 페인트 텍스처를 추가합니다.
- 메시 페인트 텍스처를 사용할 머티리얼을 설정합니다.
- 메시 페인팅에 대한 메시 UV 할당을 설정합니다.
스태틱 메시에 메시 페인트 텍스처 추가하기
스태틱 메시에 메시 페인트 텍스처를 추가하는 단계는 다음과 같습니다.
- 모드(Modes) 드롭다운을 사용하여 레벨 뷰포트에서 메시 페인트 모드(Mesh Paint Mode) 를 활성화합니다.
- 메시 페인트 패널에서 텍스처 컬러(Texture Color) 탭을 선택합니다.
-
텍스처 컬러 툴바에서 추가(Add) 툴을 클릭합니다.
추가 툴이 회색으로 비활성화되어 있다면, 버추얼 텍스처가 프로젝트에 활성화되어 있는지 확인합니다.
그러면 메시 페인트 텍스처 에 할당되는 빈 버추얼 텍스처 에셋이 생성됩니다. 메시 컴포넌트 디테일(Details) 패널의 '메시 페인팅(Mesh Painting)' 카테고리에서 이 텍스처를 검사할 수 있습니다.
메시 페인트 텍스처 머티리얼 표현식
생성하고 메시 컴포넌트에 할당한 메시 페인트 텍스처를 사용하려면, 페인팅에 이 텍스처 오브젝트를 참조할 수 있는 머티리얼을 설정해야 합니다.
이 머티리얼에 메시 페인트 텍스처의 레퍼런스를 전달하려면 Texture Sample 노드와 함께 MeshPaintTextureObject 머티리얼 표현식을 사용해야 합니다. 이 머티리얼이 할당된 메시에 대한 메시 페인트 텍스처가 존재한다면, 텍스처 컬러 페인팅 모드를 사용하면서 메시에 페인팅할 수 있습니다.
Texture Sample 노드에서 Tex 입력은 MeshPaintTextureObject 노드에서 들어오고 UVs는 스태틱 메시가 페인팅을 위해 사용하는 UV 좌표로 설정해야 합니다(아래의 '스태틱 메시 UV 및 좌표' 참조).
메시 텍스처 페인팅을 사용하여 하나의 메시에만 국한되지 않고 여러 메시가 하나의 머티리얼을 공유해야 하는 경우가 있을 수 있습니다. 이러한 상황에서는 MeshPaintTextureReplace 머티리얼 표현식을 사용해야 합니다. 이는 유효한 메시 페인트 텍스처를 샘플링할 수 있는지에 따라 입력을 전환하는 데 사용되는 '예비' 옵션입니다.
이 노드를 사용하려면 이 머티리얼이 할당된 메시에서 사용할 수 있는 유효한 메시 페인트 텍스처가 없을 경우 디폴트(Default) 경로를 사용합니다. 이 경로는 간단한 컬러나 텍스처 노드가 될 수도 있고, 좀 더 복잡한 것이 될 수도 있습니다. 이 머티리얼이 할당된, 메시에서 사용할 수 있는 유효한 메시 페인트 텍스처가 없을 경우 MeshPaintTexture 경로를 사용합니다.
메시 페인트 텍스처 설정 및 사용 가이드는 텍스처 컬러 페인팅용 머티리얼 및 메시 설정하기를 참조하세요.
스태틱 메시 UV 및 좌표
텍스처 컬러 모드를 사용하여 메시를 효과적으로 페인팅하려면 메시에서 적합한 UV 파라미터화를 사용할 수 있어야 합니다. 이상적으로는 메시 전체에 걸쳐 차트 오버랩, 반복 또는 UV 타일링 없이 UV가 모두 고유한 값이라는 것을 의미합니다. 일부 메시는 이미 이렇게 설정되어 있지만, 그렇지 않은 메시도 있습니다. UV가 메시 페인팅용으로 적절하게 설정되지 않아도 메시 툴은 계속 작동하지만, 예상하지 못한 결과가 나올 수 있습니다. 예를 들어, 메시의 한 부분에 페인팅했는데 메시의 다른 부분도 페인팅되는 식입니다.
아래의 큐브를 예시로 살펴보겠습니다. 왼쪽 메시는 UV가 오버랩된 경우로, 각 면이 0,1 UV 스페이스 전체를 사용하고 있습니다. 오른쪽 메시는 고유 UV를 지닌 경우로, 오버랩이나 반복, 타일이 없습니다.
![]() |
![]() |
| UV 차트가 오버랩되는 스태틱 메시 | 고유 UV 차트를 지닌 스태틱 메시 |
이러한 메시의 UV 차트와 차트가 배치되는 방식을 살펴보면 이런 일이 발생하는 이유를 알 수 있습니다.
![]() |
![]() |
| UV 차트가 오버랩되는 스태틱 메시 | 고유 UV 차트를 지닌 스태틱 메시 |
적용된 머티리얼에 대해 오버랩된 UV 좌표를 지닌 것에도 이점이 있지만, 메시 자체에 적용된 컬러 데이터를 페인팅하는 데에는 이상적이지 않습니다. 고유 ID를 지닌 모든 UV 차트를 평탄화하는 UV가 메시에 필요한 경우, 스태틱 메시 에디터에서 라이트맵 UV 생성(Generate Lightmap UV) 프로퍼티를 사용하여 이 메시를 위한 UV를 생성할 수 있습니다.
고유 UV 차트를 사용하여 UV 채널을 설정하는 방법에 대한 자세한 내용은 텍스처 컬러 페인팅용 머티리얼 및 메시 설정하기를 참조하세요.
메시에 텍스처 컬러 페인팅
다음은 텍스처 컬러 모드를 사용하여 메시에 페인팅을 시작할 때 염두에 두어야 할 몇 가지 세팅입니다.
메시별 및 인스턴스별 구성 지원
원치 않는 메시 페인트 텍스처 생성을 방지해야 할 경우가 있습니다. 따라서 씬에서 일부 메시나 메시의 특정 인스턴스를 필터로 걸러낼 수 있으면 유용합니다.
스태틱 메시 에디터(Static Mesh Editor)의 '일반 세팅(General Settings)' 카테고리에서 텍스처 컬러 메시 페인팅 지원(Support Texture Color Mesh Painting) 세팅을 다음 옵션 중 하나로 변경하여 메시별로 메시 텍스처 페인팅을 비활성화할 수 있습니다.
| 선택 옵션 | 설명 |
|---|---|
| 디폴트(Default) | 메시가 프로젝트 세팅(Project Settings)에 있는 엔진 - 렌더링(Engine – Rendering) 섹션의 '메시 페인트 디폴트 스태틱 메시 지원' 세팅을 사용합니다. |
| 활성화(Enabled) | 메시에 텍스처 컬러 페인팅을 활성화합니다. |
| 비활성화(Disabled) | 메시에 텍스처 컬러 페인팅을 비활성화합니다. |
아니면 인스턴스별로 스태틱 메시 컴포넌트 페인팅을 비활성화할 수 있습니다. 디테일 패널에서 '메시 페인팅' 카테고리의 텍스처 컬러 메시 페인팅 활성화(Enable Texture Color Mesh Painting) 옆에 있는 체크박스에서 체크를 해제하세요.
메시 에셋 또는 메시 인스턴스에서 텍스처 컬러 페인팅을 비활성화해도 기존 텍스처 데이터는 제거되지 않습니다. 메시 페인트 텍스처를 생성하거나 수정할 수 없게 될 뿐입니다.
메시 페인트 텍스처 해상도
텍스처 컬러 페인팅을 사용할 때 메시 페인트 텍스처는 휴리스틱에 따라 디폴트 크기로 설정됩니다. 하지만, 프로젝트의 필요에 맞춰 메시 페인트 텍스처의 크기를 명시적으로 설정할 수 있습니다. 메시 에셋에 설정할 수도 있고 인스턴스별로 오버라이드할 수도 있습니다. 기본적으로 메시 페인트 텍스처 해상도(Mesh Paint Texture Resolution)는 0으로 설정되는데, 이는 디폴트 휴리스틱을 사용하고 나나이트가 아닌 LOD0 메시의 버텍스 수를 기반으로 한다는 뜻입니다. 메시 페인트 텍스처 해상도는 1이 아닌 경우 항상 2의 거듭제곱으로 반올림됩니다.
프로젝트 세팅인 버텍스당 메시 페인트 텍셀(Mesh paint texels per vertex) 을 사용하여 디폴트 휴리스틱에 대해 텍셀 대 버텍스의 디폴트 비율을 환경설정할 수 있으며, 이를 통해 다음과 같은 메시 페인트 텍스처가 생성됩니다.
최소 텍셀 수 = (버텍스당 메시 페인트 텍셀) x (LOD 0 메시의 버텍스 수)
텍스처 크기는 이 최소 텍셀 수보다 텍셀이 더 많은 첫 번째 2의 거듭제곱입니다.
스태틱 메시 에셋에 구체적인 메시 페인트 텍스처 해상도를 설정하려면, '일반 세팅' 카테고리에서 메시 페인트 텍스처 해상도(Mesh Paint Texture Resolution) 의 값을 입력하면 됩니다.
아니면 메시의 디테일 패널에서 메시 페인트 텍스처 해상도 오버라이드(Override Mesh Paint Texture Resolution) 값을 입력하여 메시 인스턴스별 메시 페인트 텍스처 해상도를 오버라이드해도 됩니다.
메시 페인트 텍스처 해상도에 영향을 주는 세팅을 변경해도 기존 메시 페인트 텍스처에는 영향이 없습니다. 이러한 세팅은 선택한 메시에서 추가 툴을 사용하여 생성된 메시 페인트 텍스처에만 적용됩니다. 하지만, 수정(Fix) 툴로 이러한 세팅을 적용하여 크기를 변경하고 작업을 계속할 수 있습니다.
버추얼 텍스처 메시 페인트 프로젝트 세팅
메시 페인트 텍스처 에셋은 항상 버추얼 텍스처이며, 버추얼 텍스처는 프로젝트에서 활성화해야만 합니다. 이렇게 하면 필요에 따라 버추얼 텍스처를 스트리밍할 수 있으며 프로젝트 세팅에서 버추얼 텍스처 풀 환경설정을 사용하여 메모리 사용량을 제한할 수 있습니다.
프로젝트 세팅의 버추얼 텍스처 세팅에는 프로젝트의 필요에 맞게 구성할 수 있는 메시 페인팅 세팅이 포함되어 있습니다. 예를 들어 메시 페인트 타일 크기(Mesh paint tile size) 는 일반 스트리밍 버추얼 텍스처 타일 크기(Tile Size) 와 상관없이 정의됩니다. 일반적으로 메시 페인팅에는 더 작은 타일 크기를 사용하는 것이 좋습니다. 메시 페인트 텍스처의 해상도가 낮은 경우가 많기 때문입니다.
메시 페인트 텍스처는 모두 같은 텍스처 포맷을 공유합니다. 기본적으로 비압축 포맷보다 GPU 메모리 요구량이 적은 압축 포맷을 사용합니다. 손실 압축 때문에 비주얼 아티팩트가 발생한다면, 메시 페인트가 압축 텍스처 사용(Mesh paint use compressed textures) 체크박스에서 체크를 해제하여 압축을 비활성화할 수 있습니다.
버추얼 텍스처 프로젝트 세팅은 '버추얼 텍스처' 카테고리의 엔진 - 렌더링 에 있습니다.
프로젝트 세팅에 있는 기타 버추얼 텍스처 메시 페인트 세팅에 대한 자세한 내용은 메시 페인트 툴 및 세팅을 참조하세요.



