18.6 KB · 수정 2026-10-13 00:11
목차

2026-10-12 세션 A — PNCAD 실사 렌더링 모드 v1 (계획 · 모듈 제작 · 통합 · 테스트 배포 완료)

[코디] 26.10.12(월) 21:09 KST~26.10.13(화) 00:0x KST · 테스트 배포 완료(결과 = 맨 아래 「✅ 테스트 배포 결과」) · 운영배포 안 함 · 세션 A(총괄) · 병렬 세션 B = pncad 보완·기능 제안(별도 기록 C:\dev\seedchain\projects\pncad\design-improve-1012.md). 설계 정본 = C:\dev\seedchain\projects\pncad\design-photoreal.md(442줄) · devplan = C:\dev\devplan\pncad-photo.html · 작업 폴더 = C:\dev\_work\pncad-photo-1012\ · 작업 트리 = C:\dev\_wt\pncad-a(브랜치 feat-1012-photo). 운영배포 없음 — 테스트 배포(8001)까지만, 운영은 페페 검토 후.

논의·대안 — 지시

논의·대안 — 상담·조사 (3안 비교 → 3검토 일치)

결정

산출물·커밋

모듈 (API L3 run 5건 · 전부 node 자체검사 PASS · pncad master 커밋)

커밋 파일 내용 · 검증
5f13327 C:\dev\pncad\photo-uv.js 부재 UV(BoxGeometry 24정점 mm 박스 투영 · 결축 · 부재별 seed 오프셋) · 자체검사 7/7
a5f07e2 C:\dev\pncad\tools\fetch_textures.py 결 텍스처 받기 + 회색 정규화(선형 평균 0.88 · 1K · MANIFEST) · --selftest 6/6
c2df090 C:\dev\pncad\tex\ 결 텍스처 5종(Poly Haven CC0 1K · light_oak/oak/walnut/grey_wood/dark_wood · 원본 + 회색 정규화본) + data/finish-textures.json
8fbb510 C:\dev\pncad\photo-pt.js + photo-pt-core.js 경로추적 스틸 모듈(0.0.17 + bvh 0.7.0 핀 · meter 복제 씬 · 품질 3단 · 30초 상한 · stop/finish/dispose) · 자체검사 5/5 · v2 사전 제작, app.html 미연결
4c946ca C:\dev\pncad\photo-finish.js + data/finish-map.json 칼라 코드 → 아키타입 12종(exact·규칙·default · 수동 hex 틴트 우선) · 7/7
3f646f3 C:\dev\pncad\photo-tex.js + photo-tex-core.js 질감 재질 공장(병렬 로드 · 아키타입 재질 캐시 · 역할별 결축 · 부재 UV 굽기 · dispose) · 7/7 · photo.js 연결은 통합 단계

실사 모드 v1 핵심 (Workflow W1 → 적대검토 → W2 · worktree C:\dev\_wt\pncad-a 브랜치 feat-1012-photo)

커밋 내용
db964c9 C:\dev\pncad\photo.js(지연 import) · #vbar 실사 7·▾·렌더 시작·칩 · 하단바 #rbar · 품질 팝오버 #rqp · tools/_e2e_photo.py
398fd86 검토 반영 — 렌더 중 창 크기 변경 시 구 비율 PNG 안 내고 view 크기로 복원(setSize 복원) · [여기서 멈추고 저장] 재활성 · 벽 castShadow/receiveShadow 복원 · 잠금 때만 가드 리스너 · E2E 보강
d9caae5 Merge branch 'master' into feat-1012-photo

E2E (worktree 기준)

검사 결과
C:\dev\pncad\tools\_e2e_photo.py 72/72
C:\dev\pncad\tools\_e2e_3dui.py 147/147 (기대값 갱신 — 버튼 9개 · Ctrl+1~7)
fold 30/30
_e2e_qa1009.py 45/45
기존 실패 partsel 선반 867 5건 · instqty 2 · trim 1 — master 와 동일, 신규 0

통합·배포 Workflow (✅ 완료 — 결과 = 맨 아래 「✅ 테스트 배포 결과」)

W3 질감 통합(photo-finish/tex/uv 를 photo.js 에 연결) → 검토 → 병합 → sync_to_pfs.py → pfs master 푸시(= 테스트 8001) → _deploy_hash.py test → E2E test. 기록 시점 확인: pncad master 최상단 = 3f646f3(병합 전) · 락 폴더 C:\dev\_work\pncad-deploy.lock 없음 · pfs master 에 실사 커밋 아직 없음. 결과는 맨 아래 빈 절에 총괄이 추기한다.

함정 (14건 — 확정 사실만 · 9~14 = 26.10.13 테스트 배포에서 추가)

  1. pncad 새 자산은 FILES 3곳(tools/sync_to_pfs.py · tools/_deploy_hash.py · tools/_verify_deploy.py)에 넣어야 한다 — 누락하면 pfs 에서 photo.js 404 → 토글 무반응 · 「실사 모듈을 불러오지 못했다」. → pncad rules 🆕.
  2. 기존 E2E 가 /pncad/app.html(8799)을 하드코딩 → worktree 검사는 env PNCAD_LOCAL_BASE·PNCAD_LOCAL_APP(3dui·photo) + Git Bash MSYS_NO_PATHCONV=1. → pncad rules 🆕.
  3. tools/_e2e_prod.png·_e2e_test.png 는 git 추적 파일 — mv _e2e_*.png 류 정리 glob 에 걸린다. → pncad rules 🆕.
  4. 픽킹 메시(gZone opacity 0)는 실사에서 visible=false(Raycaster 는 visible 을 안 본다) · 그림자/AO 는 overrideMaterial 이라 opacity 를 무시한다. → pncad rules 🆕.
  5. 실사 재질 교체 = 원본 불변 + WeakMap 복귀(원본을 고치면 needsUpdate 함정). → pncad rules 🆕.
  6. API 실행기(cody_agent run)의 샌드박스는 네트워크가 막혀 있어 외부 자산 «받기»(fetch_textures.py 실행)는 총괄이 미니PC 에서 돌린다. → C:\dev\seedchain\projects\cody-agent\rules.md 🆕.
  7. notify.py step 에 같은 번호를 연달아 보내면 broker 가 중복으로 막아 출력이 빈다(문구를 바꾸면 통과). → C:\dev\seedchain\rules\notify.md 「같은 알림이 2번…」 절.
  8. opus-max ask --effort max 는 기본 600초를 넘긴다 → --timeout 1500. → C:\dev\seedchain\projects\cody-agent\rules.md 🆕.
  9. fold · qa1009 · partsel · instqty · trim E2E 5개는 8799/pncad/app.html 하드코딩이라 env 로 worktree 를 못 가리킨다(photo · 3dui 만 env 지원). → 임시 C:\dev\_work\pncad-photo-1012\_run_patched.py 로 URL 을 치환해 돌렸다. 근본 처방 = 5개에 env 지원 추가. → pncad rules 🆕.
  10. 질감 재질 envMapIntensity 기본 1 이면 TUNE.env(.4) 기준에서 우드가 하얗게 뜬다. → photo.js 가 질감 재질의 env 만 TUNE.env 로 덮고 roughness 는 아키타입 값을 유지(retune 도 같은 규칙). → pncad rules 🆕.
  11. Edit 도구가 CRLF 파일을 LF 로 바꾼다(photo.js 전체가 LF 로 변함) → 커밋 전 CRLF 로 통일. → pncad rules 🆕.
  12. 라운드 · 마이터 부재(비 BoxGeometry)는 결 없는 단색 짝 재질 — 늘어난 UV 방지. → pncad rules 🆕.
  13. finish-map 에 없는 칼라 = 편집 화면 색(cmHex) 그대로(질감 없음), 매핑된 칼라만 finish-map 색을 쓴다(적대검토 mid③ 의 처방). → pncad rules 🆕.
  14. 비로그인 응답은 302 가 아니라 200 + 로그인 HTML 형태다 — 비로그인 노출 검사는 상태코드가 아니라 본문(데이터 0줄 · 로그인 HTML)으로 판정. → C:\dev\seedchain\projects\pfs\rules.md 🆕.

미결 · 페페 확인

26.10.13 갱신본 = 맨 아래 「✅ 테스트 배포 결과」 안 「미결 · 페페 확인 (갱신)」(경로추적 v2 항목 추가). 아래는 21~23시 시점 원문.

다음

26.10.13 갱신본 = 맨 아래 「✅ 테스트 배포 결과」 안 「다음 (갱신)」. 아래는 23시 시점 원문(1 완료 · 3 은 B 병합분 master 60dcea5 까지 흡수).

  1. 테스트 배포 결과 추기(아래 빈 절) — 병합(락) → sync → pfs push → 해시 일치 → E2E test.
  2. 경로추적 v2 연결 — photo-pt.js(8fbb510)를 app.html 에 연결 + FILES 3곳 등록 + 사무실 PC 실기에서 D3D11 순백 깨짐 확인.
  3. 세션 B 결과 병합 — C:\dev\seedchain\projects\pncad\design-improve-1012.md · C:\dev\devplan\pncad-improve-1012.html. 병합·sync·push 는 락 폴더 규약대로 직렬.
  4. 텍스처 보완(walnut·dark_wood) · 실기 TUNE 재조정 · 사이트맵 재빌드(pfs 고치면 한 작업 — 배포 뒤).

관계

✅ 테스트 배포 결과 (26.10.13(화) 00:0x KST · 총괄 추기)

[코디] 배포 시각 = 26.10.12(월) 밤 ~ 26.10.13(화) 00시 사이(KST). 운영 deploy-live 는 안 했다([페페] 「운영배포는 추후 검토」).

질감 통합 → 검토 → 병합

sync → pfs push → 배포 확인

E2E (로그인 · test 서버 · prod 안 돌림)

검사 결과
C:\dev\pncad\tools\_e2e_photo.py test 런1~7 106/106
C:\dev\pncad\tools\_e2e_3dui.py test 147/147
pageerror · 콘솔 에러 · 서버 쓰기 0 · 0 · 0

스크린샷

사이트맵

함정

미결 · 페페 확인 (갱신)

다음 (갱신)

  1. 페페 육안 + 실기 GPU 측정 → TUNE 재조정(실사 모드 v1 마무리).
  2. 운영배포 판단 — 페페가 채팅에 직접 지시했을 때만 deploy-live.
  3. 5개 E2E 에 PNCAD_LOCAL_BASE/PNCAD_LOCAL_APP env 지원 추가(함정 9 근본 처방).
  4. 경로추적 v2 연결 · 텍스처 보완(walnut · dark_wood).