[WL-816] 섬 바닥이 안 보이는 문제 — 대비 복제 대상에서 제외 (#816)

PD 「섬의 특정 지역(캐릭터가 선 지역)의 지면이 안 보인다」.

실측: 그 타일의 재질은 런타임 복제본 Farm_IslandTop_Demo_814t 였고,
같은 프레임에서 나중에 열려 원본 재질을 쓴 타일 Island (4) 만 정상
렌더됐다. 복제본으로 바꾸면 하늘색이 비치고 원본으로 되돌리면 즉시
정상 렌더되는 것을 화면으로 확인했다(교체 테스트).

바닥은 넓은 평면이라 대비 복제의 이득이 없으므로 제외 목록에 넣는다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
깃 관리자 2026-09-13 15:19:29 +09:00
parent ff875b3deb
commit b1e58d795e
1 changed files with 12 additions and 0 deletions

View File

@ -333,8 +333,20 @@ namespace WL.Look.Arena
return m;
}
/// <summary>
/// 🔴 대비 복제를 하면 **안 보이게 되는** 머티리얼(이름 앞부분으로 판정).
/// 실측(2026-09-13 · PD 보고 「캐릭터가 선 지역의 지면이 안 보인다」):
/// 섬 바닥 `Farm_IslandTop_Demo` 는 원본이면 정상, 복제본 `_814t` 면 하늘색으로 비친다.
/// 같은 프레임에서 나중에 열린 타일(원본 재질)만 정상 렌더된 것으로 확인했다.
/// 바닥은 넓은 평면이라 대비 복제의 이득도 없으므로 **원본을 그대로 쓴다.**
/// </summary>
static readonly string[] ContrastSkipPrefixes = { "Farm_IslandTop" };
static Material CloneForContrast(Material src, Opt o, bool isChar)
{
for (int i = 0; i < ContrastSkipPrefixes.Length; i++)
if (src != null && src.name.StartsWith(ContrastSkipPrefixes[i])) return src; // WL-816: 복제하면 안 보인다 — 원본 유지
Material c;
// 캐릭터/배경이 같은 머티리얼을 공유하는 경우가 없어 키 하나로 충분하다
if (s_clones.TryGetValue(src, out c) && c != null) return c;