개요: 셰이더 팩이란?

MMDX12 셰이더 팩의 개념과 동작 원리, 지원 렌더러와 기본 구조를 알아봅니다.

셰이더 팩 소개

MMDX12 셰이더 팩은 캐릭터 모델의 재질 음영(Material Shading)을 캐릭터별로 교체할 수 있는 기능입니다. 앱의 핵심 렌더러를 뜯어고칠 필요 없이, 누구나 간단한 파일 몇 개로 자신만의 툰 셰이딩이나 독특한 질감을 구현할 수 있습니다.

셰이더 팩은 다음과 같은 기본 파일로 구성된 폴더입니다:

  • pack.json: 팩의 메타데이터, 재질 분류 규칙, 조정 가능한 파라미터를 정의하는 매니페스트.
  • surface.hlsl: 단 하나의 셰이딩 함수(PackShade)를 구현하는 HLSL 코드.
  • preview.png 또는 preview.jpg (선택 사항): 팩 매니저와 온라인 갤러리에서 보여줄 미리보기 이미지 (16:9 권장).
  • README.md, LICENSE (선택 사항): 설명서와 사용권 계약 파일.

지원 렌더 경로와 범위

셰이더 팩은 실시간 재생 및 고품질 영상 제작 흐름에 자연스럽게 녹아듭니다.

적용되는 곳

  • 래스터(Raster) 경로: 일반 재생 모드, 스튜디오 뷰포트, 래스터 영상 렌더러.
  • 실시간 RT(Ray Tracing) 경로: 레이 트레이싱이 켜진 뷰포트 및 실시간 RT 영상 렌더러.
  • 패스 트레이싱 · 오프라인 GI (MMDX12 1.5.0 이상): 선택 파일 pt_surface.hlsl이 들어 있는 팩은 패스 트레이싱과 오프라인 GI 렌더러(스틸·영상)에도 적용됩니다. PT / GI 팩을 보세요. 이 파일이 없는 팩은 해당 경로에서 기본 셰이딩을 씁니다.

기본 셰이딩이 유지되는 곳

  • pt_surface.hlsl이 없는 팩의 패스 트레이싱 · 오프라인 GI: MMD 기본 셰이딩이 사용됩니다. 오프라인 GI 렌더러는 항상 앱 기본 외곽선을 그립니다.
  • 무대(Stage)와 소품(Prop): 배경 무대와 액세서리는 셰이더 팩의 영향을 받지 않고 항상 기본 셰이딩으로 렌더링됩니다.
  • 특수 뷰: 스튜디오의 언릿(Unlit), 와이어프레임(Wireframe), 정사영 4분할 뷰(Orthographic Quad Views).

엔진이 보장하는 기능

셰이더 팩은 오직 캐릭터 재질의 픽셀 음영만 교체합니다. 아래 기능들은 엔진이 그대로 처리하므로 팩을 적용해도 변함없이 정상 작동합니다:

  • 정점 스키닝(Vertex Skinning) 및 본 변형
  • MMD 특유의 외곽선(Edge / Outline)
  • 캐스케이드 그림자 맵 및 레이 트레이싱 그림자 계산
  • 후처리 이펙트(블룸, 피사계 심도 DoF, TAA, 업스케일러 등)

팩이 저장되는 위치

MMDX12 실행 파일이 있는 폴더를 기준으로 두 곳에 나뉘어 보관됩니다:

  1. 기본 제공 팩: <MMDX12 폴더>/shaders/packs/<id>/
    • 프로그램과 함께 제공되며, 앱 내에서 삭제할 수 없습니다 (예: hoyo_toon).
  2. 설치된 팩: <MMDX12 폴더>/shader_packs/<id>/
    • 온라인 갤러리에서 내려받았거나, 직접 만든 팩이 저장됩니다. 온라인 설치 팩에는 .mmdx_install.json 메타데이터가 함께 보관됩니다.

팩 식별자(ID) 규칙

  • 영문 소문자 a-z, 숫자 0-9, 밑줄 _, 하이픈 -만 사용 가능하며 최대 64자까지 허용됩니다.
  • 기본 제공 팩의 ID는 사용자 팩으로 덮어쓸 수 없습니다.
  • 중복된 ID가 발견되면 나중에 발견된 팩은 “중복(Duplicate)” 상태로 표시되며 선택할 수 없습니다.

다음 단계

  • 빠른 시작: 앱에서 팩을 적용하고 실시간 핫 리로드로 제작하는 방법.
  • 매니페스트 명세: pack.json의 세부 필드와 재질 분류 규칙.
  • 셰이더 API: surface.hlsl 작성 규칙과 제공되는 내장 함수.
  • 화면 효과 팩: 화면 전체에 적용되는 후처리 팩(API 3), 효과 스택, 온라인 전용 효과.
  • PT / GI 팩: pt_surface.hlsl로 패스 트레이싱과 오프라인 GI에서 팩을 적용하는 방법.
  • 호요 툰 분석: 공식 예제 팩의 구조와 SDF 얼굴 그림자 기법.
  • 디버깅과 검증: 컴파일 오류 확인법과 pack_check.exe 도구.
  • 배포와 갤러리 등록: zip 패키징 규칙과 공식 갤러리 제출 방법.