book/28-subculture-rendering-series-hub.md

28. 서브컬쳐 렌더링 심화 시리즈 허브

4개 핵심 게임과 기술 문서를 연결하는 서브컬쳐 심화 허브

28. 서브컬쳐 렌더링 심화 시리즈 허브

이 시리즈는 “애니메이션 스타일(NPR/서브컬쳐) 렌더링”을 룩(아트) 설명으로 끝내지 않고, Unity 6 + URP에서 재현 가능한 계약(데이터/패스/시간축) 으로 환원해 정리합니다. [B]

  • [B] 목표: “예쁜 결과”가 아니라 “재현 가능한 시스템(원인-결과가 고정되는 셰이더/파이프라인)”을 만든다.
  • [B] 방식: 4개 핵심 게임(명조/소녀전선2/엔드필드/ZZZ)은 패턴 추출용으로만 다루고, 구현 결론은 기술 문서(35~46)로 수렴시킨다.
  • [A/B] 원칙: 내부 구현 단정 금지. 공개 근거(OFF)와 재현 가능한 역분석(B)만으로 문장을 확정한다.

기준 시점: 2026-02-18

목적

  • [A] 기존 23~27장을 유지한 채, 28~48 독립 시리즈를 제공한다.
  • [A/B] 게임 분석과 기술 분석을 분리해 탐색 경로를 단순화한다.

증거 등급 요약(A/B/C)

  • A: 공식 발표/공식 공지/공식 인터뷰
  • B: 코드/캡처/재현이 있는 기술 역분석
  • C: 관찰/학습기/가설

핵심 개념

  • [A] 문서 구조: 허브 -> 프로토콜 -> 택소노미 -> 게임(4) -> 기술(12) -> 매트릭스 -> 소스 레저
  • [B] 중심 타이틀: 명조, 소녀전선2: 추방, 명일방주: 엔드필드, 젠레스 존 제로

서론: 왜 28~48을 별도 시리즈로 분리했나

  • [B] 서브컬쳐 렌더링은 “효과가 많다”가 아니라, 효과 간 계약이 얽혀 있어 하나만 붙이면 다른 곳이 깨지는 일이 반복된다.
  • [B] 특히 아래 3가지가 고정되지 않으면 같은 셰이더라도 결과가 매번 달라진다.
  • [B] 채널 계약: 마스크/ID/FaceSDF/flow/LUT 채널 의미가 캐릭터마다 바뀌어 디버깅이 불가능해진다.
  • [A/B] 패스 계약: DepthNormals/MotionVectors 누락, 또는 적용 위치(post 전/후) 혼동으로 시간축/라인이 붕괴한다.
  • [A/B] 시간축 계약: hard step과 얇은 라인은 히스토리(TAA/리프로젝션) 오염에 특히 취약하다.

개론: “룩을 만드는 최소 단위”는 기술(T-ID)이다

  • [A/B] 이 시리즈는 “게임 이름”이 아니라 “기술 단위(T-ID)”를 최소 단위로 본다.
  • [B] T-ID 하나는 입력 데이터(텍스처/버퍼) + 셰이더 함수 + 적용 패스 위치를 함께 가진다.
  • [B] 그래서 31~34(게임 문서)은 관찰을 모으는 문서이고, 실제 구현은 35~46(기술 문서)에서 닫힌다.

본론: 읽는 순서(역할별 추천)

  • [A/B] 렌더링/파이프라인 엔지니어: 29 -> 30 -> 45 -> 43 -> 44 -> 47
  • [B] 캐릭터 셰이더 담당: 30 -> 35 -> 36 -> 37 -> 38 -> 40 -> 46 -> 43
  • [B] 테크 아티스트/아트 파이프라인: 29 -> 30 -> 35 -> 46 -> 41 -> 48

결론: 이 시리즈를 끝내면 남아야 하는 산출물

  • [B] 캐릭터용 URP 셰이더에서 “얼굴/헤어/외곽선/시간축”이 서로 충돌하지 않는 기본 계약 세트
  • [B] 새 캐릭터 투입 시 “채널 계약 + T-ID 체크리스트”로 빠르게 품질을 맞추는 운영 루틴
  • [A/B] 48장 레저를 갱신하며 문장 근거를 유지하는 업데이트 프로토콜

문서 인덱스

  1. 29. 리서치 프로토콜
  2. 30. 기술 택소노미
  3. 31. 명조 심화
  4. 32. 소녀전선2 심화
  5. 33. 엔드필드 심화
  6. 34. ZZZ 심화
  7. 35~46. 기술 문서
  8. 47. 전이 매트릭스
  9. 48. 소스 레저

URP 매핑 포인트

  • [A] 계약 기준 문서: 18장, 20장
  • [A/B] 기술 문서는 HLSL 함수 계층 + RendererFeature 계층을 함께 다룬다.
  • [B] 실전 구현은 “추가 효과”보다 “계약 고정”을 우선한다.
  • [B] 1) 셰이더에서 T001~T005(조명 전달/데이터 계약)를 먼저 고정
  • [A/B] 2) RendererFeature로 T006~T010(외곽선/선택 보정/엣지)을 고정
  • [A/B] 3) 마지막에 T012~T013(temporal/파이프라인)을 묶어서 안정화

실패 패턴/오해

  • [B] 역분석 결과를 원본 구현으로 단정하는 오류.
  • [A] MotionVectors/DepthNormals 계약 없이 temporal/edge를 먼저 붙이는 오류.

실무 체크리스트

Sources (섹션 단위 인용)

구조/범위

기술 분류 배경