Commit Graph

9 Commits

Author SHA1 Message Date
깃 관리자 d8a4d9fbe8 [WL-816ze] 섬 카메라 각도 islandCamPitch 50 · 경계 전용 풀잎(edgeOnly_ · grassEdgeBand 1.2 — 들판 안쪽 얼룩 제거) (#816)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 23:56:12 +09:00
깃 관리자 78088e8559 [WL-816zf] 흙 자리 부드러운 데칼 (#816)
밭 구역(WLIslandGateFlow.ZoneBounds)을 덮는 평면 메시 1장 + 런타임 마스크
텍스처(모서리 라운드 + 셀 노이즈 경계 + 가장자리 페이드)로 흙을 그린다.
각진 1×1 흙 타일(Soil) 렌더러는 데칼과 배타로 숨긴다(showFarmSoil 무효화).
816za 풀 제외는 같은 마스크(WLSoftDirt.SignedDist)를 읽어, 풀 톱니가 데칼
가장자리 안쪽 softDirtGrassBite(0.3 m)까지 파고든다 — 경계 정의는 한 곳뿐.

- WLSoftDirt.cs 신규 — 메시·텍스처·머티리얼 전부 런타임 생성(에셋 0줄 · 드로우콜 +1)
- WLIslandLookSettings — §816zf 값 14개(softDirtEnabled 0 이면 100 % 복귀)
- WLIslandLook — 데칼을 풀보다 먼저 생성 · 재훑기/확장 훅에서 재생성 후 풀 재배치
- WLIslandGateFlow — 데칼 활성 시 Soil 렌더러 숨김 · 구역 바운즈를 꺼 둔 렌더러까지
  세도록 수정(재훑기 2회차부터 구역을 통째로 잃던 문제)

🔴 미확인 — 유니티 미실행(발주 조건). 컴파일·화면 확인은 Lead 담당.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 19:06:15 +09:00
깃 관리자 74a08191b6 [WL-816zd] 섬 윤곽 둥근 풀 배치 (#816)
땅(타일 메시)은 각진 그대로 두고, 풀 카펫의 **바깥 윤곽만** 둥글게 읽히도록
배치 넓이를 바꾼다. PD 원문 「땅은 각지게 만든 상태로, 풀을 라운딩 느낌이 나게
배치해서 만들어도 되잖아」.

- WLIslandGrass: 윗면 마스크 + edgeInset 네 방향 검사 대신, 섬 footprint 를
  반지름 R 로 **열고**(침식 후 팽창 = 볼록 모서리가 R 로 둥글어짐) 바깥으로
  overhang 만큼 팽창한 거리장으로 자른다. 침식·팽창 모두 결합적이라
  「(inset+R) 침식 → (R+overhang) 팽창」 거리장 두 장이면 끝난다.
  기준선이 edgeInset 이라 overhang = edgeInset 이면 바깥선이 지금과 같고
  (모서리만 둥글어짐), 그보다 크면 차이만큼 절벽 위로 넘친다.
- 거리 변환은 816j2 WLShoreFoam.Chamfer 를 그대로 쓴다(public 승격 · 정의 SOT 1곳).
- 넓힌 칸 범위가 이웃 타일과 겹치므로 OwnerTile(체비쇼프 최근접)로 칸 하나를
  한 타일만 만들게 해 중복 0.
- 길·밭·소품 제외와 816za 밭 라운드는 무변경. 인스턴싱 bounds 에 overhang 반영.
- SO: outlineRoundEnabled 1 · outlineRoundRadius 1.5 · outlineOverhang 0.3
  · outlineRoundCell 0.25 (0 이면 현행 배치 그대로 = 되돌리기 1값).
- FI 원본 0줄 · 씬 0줄.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 17:18:08 +09:00
깃 관리자 dd5757bc4b [WL-816za] 밭 자리 풀 경계 라운드 (#816)
밭(흙) 제외 사각형을 반듯한 사각형 대신 「모서리 반지름 + 경계 노이즈」로 판정해
풀이 흙 가장자리로 불규칙하게 파고들게 한다. 길·건물·소품 제외 규칙은 무변경.

- WLIslandLookSettings: farmEdgeRoundEnabled 1 / farmEdgeRadius 1.0 / farmEdgeNoise 0.4 / farmEdgeNoiseCell 0.5
- WLIslandGrass: 밭 rect 를 _farmRounds 로 분리 + InRoundedFarm(둥근 모서리 + 값 노이즈) 판정
- 라운드 모드에서 밭 안에 든 Soil 1x1 사각형은 빼서 깎아낸 모서리를 도로 메우지 않게 함
- farmEdgeRoundEnabled 0 이면 기존 동작 그대로

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 15:55:02 +09:00
깃 관리자 dd5a47bab2 [WL-816q] 가시 범위 — 첫 배치 때 카메라가 없었으면 생긴 뒤 다시 고르게 (#816)
ViewMovedEnough 가 _viewOn=false 에서 곧장 false 를 돌려줘, 카메라가 씬보다 늦게 생기는 경우
가시 범위가 영영 안 켜지고 섬 전체에 인스턴스가 남았다(그림은 정상 · 최적화만 무효).
카메라가 생겼는데 아직 범위를 못 잡았으면 true 를 돌려 한 번 다시 고르게 한다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 08:38:58 +09:00
깃 관리자 cdb324a57d [WL-816q] 풀 높이 0.35→0.7(띠 가장자리 톱니 폭) · 가시 범위를 바닥 사다리꼴로 교정 (#816)
- 톱니 윤곽 폭 = 풀 높이 × cot(태양고도). scale 스윕 실측(같은 카메라·같은 구름 위상):
  0.35 에지% 1.05 / 0.50 1.20 / 0.70 1.39 / 0.90 1.43 (데모 참고 1.22) · 인스턴스·삼각형·드로우콜 불변.
  0.70 = 데모의 띠 가장자리 밀도(≈4개/m)와 같은 폭 → 채택.
- 가시 범위: 절두체 평면을 그대로 밀면 위쪽 평면이 바닥과 15° 라 8 m 가 바닥에서 31 m 로 벌어졌다
  (실측 618 → 3,731 ㎡). **바닥 사다리꼴을 2 차원으로** 미는 방식으로 교정 → 여유 4 m 에서 643 → 1,151 ㎡.
  viewMargin 8→4 · viewRebuildStep 2.5→1.5 · viewMaxDistance 40 · viewRebuildAngle 3 신설.
- 팝 0 실측: 보폭 1.5 m 이동 후 [다시 고르기 전] vs [고른 뒤] 화면 차이 **0 픽셀**.
  0/2/4 s 좌표 지문 동일(75934715234309) = 생성·소멸·이동 0.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 08:31:20 +09:00
깃 관리자 7e0733307e [WL-816q] 범인 = 풀이 바닥보다 늘 어둡다 · 풀을 바닥과 같은 톤으로 맞춰 띠 복원 + 가시 범위 배치 (#816)
- 실측: 바닥만 렌더하면 띠세기LF 7.31 / 포기잡음HF 0.39 (매끈한 띠). 풀을 켜면 HF 4.22(10.8배)
  에지% 0.86 → 14.06(16.3배). 풀이 바닥 대비 0.943/0.900/0.882 배로 「항상 더 어두워」 띠를 덮었다.
- 수렴 실측: 풀 색 × (1.0737, 1.1189, 1.1365) 에서 보이는 풀 31.0% → 0.6%
  (구름 위상 3곳 전부 0.56~0.68%). 띠 안쪽에서 바닥과 같은 픽셀 = 데모와 같은 원리.
- _Cloud_Change 0.001→0.005 · _Cloud_Movement (0.2,0.2)→(1,1) = 데모 원값 복귀(풀·바닥 동일).
- 가시 범위 배치(816q §3): 월드 고정 격자는 그대로 두고 카메라 시야 사각형 + 여유 8 m 안만 남긴다.
  여유(8) > 재선정 보폭(2.5) 이라 늘고 주는 것은 화면 밖에서만 — 좌표는 불변(순간이동 0).
  되돌리기 = viewCullEnabled 0.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 08:13:25 +09:00
깃 관리자 b23489def9 [WL-816o] 섬 풀밭 = 구름 경계 기준 최적화 배치 (#816)
PD 「데모와 같은 비주얼 · 잔디를 많이 심지 않는 최적화 로직(구름 그림자 기준 배치)」

- WLCloudShadow.cs(신규) — 데모 Toon 셰이더의 구름 그림자를 CPU 에서 같은 식으로 재현.
  CloudShadows/ToonLighting/ToonRamp 서브그래프 + CloudNoise.hlsl(6 옥타브 FBM) +
  SimplexNoise3D.hlsl(Ashima snoise) 1:1 이식. 값은 전부 머티리얼에서 읽는다(C45).
  노이즈는 성긴 격자(1 m)에서만 계산하고 판정 격자(0.3 m)는 겹선형 보간 → 굽기 2.2 ms.
- WLIslandGrass.cs — 후보를 캐시하고, 띠 밖 후보를 잘라 낸다. 구름이 흐르면
  RefreshCloudEdges() 로 「고르기」만 다시 한다(타일·제외 사각형 재수집 없음).
- WLIslandLookSettings.cs — §2 값 9개(되돌리기 스위치 cloudEdgeEnabled=0 → 816n 상태).
- WLIslandLook.cs — 기존 확장 감시 코루틴에 주기 갱신 1줄 추가.

실측(4타일 · PD 구도 12 m/45°/fov 60): 인스턴스 1,155 → 382(33.1%) ·
삼각형 10,380 → 3,435(33.1%) · 드로우콜 +2 유지 · 띠 면적 16.8%(데모 실측 15.7%).
원본(3DPixelArtEnvironment · FarmingIsland · Script · Packages · ProjectSettings) 0줄.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 02:09:26 +09:00
깃 관리자 1921884672 [WL-816e] 실게임 섬(Level01)에 데모 룩 런타임 적용 + 타일 위에 데모 풀밭 인스턴싱 (#816)
- WLIslandLook: RuntimeInitializeOnLoadMethod + sceneLoaded 로 Level01 에 머티리얼·조명·ReferenceLook 을 얹는다(씬 파일 무변경)
- WLIslandGrass: 데모 InstancesBehaviour 를 상속해 섬 타일 윗면에 풀·꽃·자갈을 GPU 인스턴싱(콜라이더 0 · NavMesh 영향 0)
- 윗면/길 마스크는 에디터에서 구워 SO 에 저장(FI 메시 isReadable=0 · FarmingIsland 임포트 설정 무변경)
- 섬 타일 텍스처를 데모 지면색 실측값으로 재생성(체크무늬 두 초록 → 한 색)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 13:27:28 +09:00