2026-10-13 세션 C — PNCAD 실사 모드 v2 (경로추적 연결 · 텍스처 정규화 · E2E env · 튜닝 절차)
[코디] 26.10.13(화) 세션 C(총괄) · worktree
C:\dev\_wt\pncad-c브랜치feat-1013-photo-v2(pncad master837f8cd기준) · 로컬 서버 8871(portgate 등록 · 끝에 retired 예정) · 작업 폴더C:\dev\_work\pncad-photo-1013\. v1 기록 =C:\dev\seedchain\projects\pncad\session-2026-10-12-photo.md· 설계 정본 =C:\dev\seedchain\projects\pncad\design-photoreal.md· devplan =C:\dev\devplan\pncad-photo.html(절#tune-procedure= 실기 튜닝 절차). 운영 deploy-live 안 함. 테스트 배포(W5)는 병렬 진행 → 결과는 맨 아래 빈 절에 총괄이 추기.
지시
- 세션 A 「다음」 4건 이행: ①5개 E2E 에 env 지원(함정 9 근본 처방) ②경로추적 v2 연결(
photo-pt.js8fbb510을 app.html 에 연결) ③텍스처 정규화 보완(walnut 0.816 · dark_wood 0.629) ④실기 TUNE 튜닝 절차 문서화. - 질문 2건 답(추천대로) — 경로추적에 바닥 포함 · 30초 문구 「다시 누르면 준비가 짧아져 더 많이 쌓일 수 있다」.
결정
- web-designer 처방(
C:\dev\_work\pncad-photo-1013\webdesigner_rx_v2.md) 결정 4건: ①품질 3단 → 샘플 64/192/512 ②상한은 샘플링부터(컴파일 제외 30초) ③저장 키pncad.realpt④미지원 PC 는 경로추적 표시만(aa 로 고정). - 경로추적 씬은
hiGuard(선택 발광 제외) 안에서 복제 · 재질은userData.base ?? material· 배경은TUNE.bg단색 고정 · env 는 조명 전용. - 텍스처 정규화 = 곱+감마
y = min(1, k·x^γ)(평균 맞추기 전용 곱은 밝은 결이 먼저 255 로 날아감).
산출물·커밋 (worktree C:\dev\_wt\pncad-c · 4건 · master 미병합)
| 커밋 | 내용 · 검증 |
|---|---|
e1e0b58 |
E2E 5개(fold · qa1009 · partsel · instqty · trim) env 지원 PNCAD_LOCAL_BASE/PNCAD_LOCAL_APP — 8799/8871 양쪽 전부 PASS. 세션 A 가 적은 «기존 실패 8건»은 지금 master 에선 0건 |
5d1b8fc |
텍스처 정규화(곱+감마) — 5종 평균 0.88±0.01 · 클리핑 ≤0.78% · 대가 = oak 결 대비 0.72→0.34 · light_oak 바이트 동일 · tex/MANIFEST.json 에 gamma/clip_pct/contrast 추가 |
9819bec |
경로추적 연결 — importmap 3줄 · #rqp 렌더 방식 라디오(누적 AA/경로추적) · pncad.realpt · ?tune= · setStillMode/getStillMode/parseTune · photo-pt phase · 컴파일 제외 30초 상한 · E2E 런8 |
9dc9926 |
적대검토 반영 — M1 선택 발광 제외 guard+base 재질 · M2 다운로드 중 취소 race · M3 준비 단계 [취소] 상시 · M4 배경 TUNE.bg 고정 + TUNE ptEnv .6 / ptTop #ffffff / ptBottom #9a9a9a · M5 E2E 휘도 단언·finish·로드 실패·Ctrl+7 · M7 webglcontextlost · L3 · L10 |
E2E · 검증 (local 8871 · 검토 반영 후)
| 검사 | 결과 |
|---|---|
tools/_e2e_photo.py |
141/141 |
tools/_e2e_3dui.py |
147/147 |
node _test_photo_core.mjs |
15/15 |
node _test_photo_pt.mjs |
5/5 |
| pageerror · 서버 쓰기 | 0 · 0 |
- SwiftShader 헤드리스에서도 CDN 모듈 로드 → 컴파일 0.25초 → 14/64 샘플(30초 상한) → 완료 바까지 실제 동작(
C:\dev\_work\pncad-photo-1013\pt_done.png). - 적대검토
C:\dev\_work\pncad-photo-1013\review_v2.md= high 0 · mid 7 · low 11 · fix-then-ship. 안 고친 low = L1(stop 뒤 start 되살아남 · 실해 없음) · L4(라이브러리 내부 quad 재질 누수 추정) · L5(?tune수치 범위 검증 없음) · L7 · L8(문구 실기 미검증) · L9(30초 상한이 프레임 단위라 32.1초). - API 비용: W3 $0.40 · W1 $6.46+$7.77 · W1-fix $5.25 ≈ $19.9(run id 20261013-002125 · 002422 · 004129 · 005505).
함정 (6건 — 확정 사실 · 상세 = C:\dev\seedchain\projects\pncad\rules.md 🆕 2026-10-13 실사 v2)
#rqp라디오는[data-q](품질) ·[data-m](렌더 방식) 두 그룹 —[role=radio]전체를 도는 코드(syncQp · roving · 클릭 · E2E 셀렉터)는 품질 선택을 깬다.- three-gpu-pathtracer 첫
update()= 셰이더 컴파일(메인 스레드 정지) → 30초 상한 · ETA 는 그 뒤부터(warm) · 배경은backgroundMap단색(TUNE.bg· ACES 역계산untone) · env 는 조명 전용. - 경로추적 씬 복제는
hiGuard안에서(선택 발광 클론 hiMat 이 PNG 에 구워짐) · 재질은userData.base ?? material. - 헤드리스 SwiftShader 도 CDN 모듈을 받아 경로추적을 실제로 돈다(화질 판정은 못 해도 pageerror · 전이 · 복원 E2E 는 된다). API run 샌드박스도 테일스케일 8871 에 붙어 E2E 가 가능했다(CDN 은 차단).
notify.py출력 꼬리가\r\n\r\n이라tail -1은 빈 줄 →tail -3(빈 출력 = 실패 오판 2회) →C:\dev\seedchain\rules\notify.md.- 텍스처 정규화는 평균만 맞추는 곱이면 밝은 결이 먼저 255 로 날아간다(옛 ×5 도 oak 20.6% · grey_wood 14.7% 클리핑) → 곱+감마.
미결 · 페페 확인
- ⏳[페페] 실기 GPU 에서 경로추적 — 컴파일 시간 · D3D11 순백 여부 ·
GradientEquirectTexture존재 · env .6 · 바닥 접촉 그림자. - ⏳[페페] TUNE 튜닝 — devplan
#tune-procedure(후보 A/B/C ·?tune=문법 · 확정값 빈 표) 대로. - ⏳[페페] oak 결 옅어짐(대비 0.72→0.34) 수용 여부.
- ⏳[페페] 안드로이드 PNG 내려받기 · PMREM 편집 화면 상시 적용 · 운영배포 판단.
다음
- 테스트 배포 결과 추기(아래 빈 절) — 병합(락
C:\dev\_work\pncad-deploy.lock) → sync → pfs push → 해시 일치 → E2E test. - 페페 육안 + 실기 GPU 측정 → TUNE 확정 → 확정값 표 채우기.
- 운영배포는 페페가 채팅에 직접 지시했을 때만 deploy-live → 사이트맵 재빌드.
- 로컬 서버 8871 portgate retired · worktree 정리(삭제는 승인 후).
관계
- 주제 그룹: pncad-photo
- 관련 문서: pncad-handoff, pncad-rules, pncad-design-photoreal, pncad-session-2026-10-12-photo, pncad-design-improve-1012
✅ 테스트 배포 결과 (26.10.13(화) 01:2x KST · 총괄 추기)
[코디] 운영 deploy-live 안 함(페페 「테스트배포까지만」). 락
C:\dev\_work\pncad-deploy.lock안에서 W5(구독 worker)가 수행 · 끝에 해제 확인.
- pncad master 병합
c7b3790(--no-ff· 충돌 0 · 16파일 +1097/−108 · node 자체검사 15/15 · 5/5). ⚠ 본 트리 master 는 origin 보다 31커밋 앞섬(세션 A·B 미푸시분 포함 · pncad origin 푸시는 이번 범위 밖). tools/sync_to_pfs.py --check어긋남 8 = 전부 이번 파일(app.html · photo.js · photo-pt.js · tex/MANIFEST.json · tex/{oak,walnut,grey_wood,dark_wood}_g.jpg) → sync → pfs mastera9d7a968(명시 add 8 · push5edd3c75..a9d7a968· ahead 1/behind 0).- GitHub Actions run
38276666076PFS Auto Deploy success(deploy-test 2m16s · stage/promote 미실행 = 운영 무변경). _deploy_hash.py test --wait 180= TEST 일치(불일치 0).- E2E(test 8001 · 로그인):
_e2e_photo.py test --pt-timeout 120141/141 ·_e2e_3dui.py test all147/147 · pageerror 0 · 콘솔 에러 0 · 서버 쓰기 0. 테스트 서버에서도 경로추적이 실제로 돌았다(헤드리스 · 30초 상한 14/64 샘플 · PNG 1920×1872 · 휘도 mean .67/std .23). - 사이트맵
build_sitemap.py --dump= 그룹 8 · 페이지 64 · 미반영 1 · 공용API 6(미커밋 · 미반영 1건이 이번 분인지 미확인 — 세션 A 때와 동일 수치). 로그 =C:\dev\_work\pncad-photo-1013\w5_e2e_photo.log·w5_e2e_3dui.log. - 정리: 8871 http.server 종료 · portgate 8871 retired · worktree
C:\dev\_wt\pncad-c는 보존(병합 완료 · 삭제는 페페 승인 뒤). - 같은 날 발견·조치: seedchain 자동 재빌드가 26.10.4 13:45 stale 락(
.autorebuild.lock빈 폴더 · 빌드 프로세스 0)으로 9일간 skip → rmdir 해제 → 01:28rebuild OK in 209s재가동 확인.