sRGB와 임포트 설정
이 문서를 읽으면 마스크가 "꽂았는데 효과가 이상하다"의 가장 흔한 원인인 임포트 설정을 정리할 수 있습니다.
sRGB를 꺼야 하는 이유
sRGB(Color Texture)는 Unity에게 "이 텍스처는 사람 눈으로 볼 색이다" 라고 알려주는 체크입니다. 켜져 있으면 Unity가 감마 보정을 걸어, 저장된 픽셀 값과 셰이더가 읽는 값이 달라집니다.
색이라면 그게 맞습니다. 하지만 마스크는 숫자입니다. 0.5로 구운 회색은 셰이더에서 0.5로 읽혀야 합니다.
| 텍스처 종류 | sRGB | 이유 |
|---|---|---|
| 마스크 (흑백, 값) | 끄기 | 값이 그대로 읽혀야 함 |
| 그라데이션 결과물 (컬러) | 켜기 | 실제로 눈에 보일 색 |
| 페인트 — 마스크 모드 | 끄기 | 리니어로 저장됨 |
| 페인트 — 컬러 모드 | 켜기 | sRGB로 저장됨 |
| 컴바이너 팩 텍스처 | 끄기 | 네 채널 전부 값 |
Mask Maker가 구운 것은 이미 맞춰져 있습니다
Mask Maker는 저장 시점에 올바른 설정을 적용합니다. 직접 확인해야 하는 것은 외부에서 만들어 가져온 마스크입니다.
확인·수정 절차
- 프로젝트 창에서 텍스처를 선택합니다.
- Inspector에서 sRGB (Color Texture) 체크를 끕니다.
- Apply 를 누릅니다. 누르지 않으면 반영되지 않습니다.
함께 볼 임포트 설정
| 설정 | 마스크에 권장 | 이유 |
|---|---|---|
| sRGB (Color Texture) | 끔 | 위 참조 |
| Alpha Is Transparency | 끔 | 알파를 마스크 채널로 쓸 때 Unity가 값을 건드리지 않게 |
| Compression | None 또는 High Quality | 블록 압축은 채널을 뭉갭니다. 특히 패킹된 팩 텍스처에서 채널이 서로 번집니다 |
| Generate Mip Maps | 취향 | 켜면 멀리서 경계가 부드러워지고, 얇은 마스크는 흐려집니다 |
| Wrap Mode | Clamp | UV 밖으로 반복될 이유가 없습니다 |
| Max Size | 512~1024 | 마스크는 경계만 중요합니다 |
팩 텍스처는 압축에 특히 약합니다
DXT/BC 계열 압축은 채널을 독립적으로 다루지 않습니다. R 채널의 경계가 G 채널로 번져 보이는 현상이 여기서 나옵니다. 채널 패킹한 텍스처가 이상하면 압축을 먼저 의심하세요.
UV가 맞는지
마스크는 본체 텍스처와 같은 UV 맵을 기준으로 읽힙니다. 마스크를 꽂았는데 완전히 엉뚱한 자리에 효과가 나온다면, 그 슬롯이 UV1이 아닌 다른 UV 채널을 쓰도록 설정되어 있을 수 있습니다.
Mask Maker는 로드한 메쉬의 UV를 그대로 써서 굽기 때문에, 툴 안에서 만든 마스크는 항상 본체와 같은 UV를 씁니다.