LYSC STUDIO

LIST
Cover

실제와 같은 피부 질감 구현: 실시간 서브서피스 스캐터링(SSS)의 수학적 접근과 셰이더 아키텍처

·3D Art & Tech

인간의 피부, 왁스, 대리석 등 반투명 매질에서 일어나는 표면 하 산란 효과를 실시간으로 모사하는 최적화 렌더링 기법들을 탐구합니다.

1. 불투명성의 허울을 벗다: SSS의 필요성

컴퓨터 그래픽스에서 물리 기반 렌더링은 빛이 즉시 반사되거나 표면 아래에서 흡수 및 산란 후 동일한 지점에서 다시 튀어나오는 현상을 가정합니다. 그러나 인간의 피부와 같은 반투명한 물질들은 빛이 표면을 뚫고 들어가 복잡한 다중 산란을 거친 후 다른 지점에서 빠져나옵니다. 이를 무시하면 캐릭터가 마네킹처럼 생기가 없어 보입니다.

2. 디폴 모델(Dipole Model)과 확산 프로필(Diffusion Profile)

SSS를 해석하기 위한 고전적인 모델은 쌍극자 근사 모델입니다. 표면 위와 아래에 가상의 광원을 두어 빛의 확산을 근사하는 방식입니다. 실시간 렌더링에서는 확산 프로필이라는 1차원 함수로 산란의 양상을 단순화하며, 여러 개의 가우시안 함수의 합으로 곡선 피팅하여 구성합니다. 붉은색 파장이 가장 멀리 산란되는 특성을 표현합니다.

3. 스크린 공간 서브서피스 스캐터링 (Screen-Space SSS, SSSSS)

현대 디퍼드 렌더링 엔진에서 사용하는 기법은 Screen-Space Subsurface Scattering입니다. 디퓨즈 패스를 렌더링한 뒤, 후처리 단계에서 이 이미지를 블러 처리합니다. 깊이 맵을 참조하여 블러 반경을 동적으로 조절하는 깊이 인식 필터링을 수행하며, 분리형 1D 필터 패스를 사용하여 퍼포먼스를 끌어올립니다.

4. 사전 적분 피부 셰이딩 (Pre-Integrated Skin Shading)

모바일 하드웨어에서 성능 제약 없이 피부 질감을 내기 위한 기법이 Pre-Integrated Skin Shading입니다. 산란 결과를 오프라인에서 미리 적분하여 2D 룩업 텍스처로 굽는 방식입니다. 노멀 맵에서 곡률 값을 추출하여 UV 좌표로 삼아 텍스처를 읽어오며, 포스트 프로세싱 오버헤드가 없습니다.

5. 진보된 기술과 최적화 방향

최근 AAA 게임에서는 SSSSS의 성능 소모를 줄이기 위해 Temporal TAA와 결합하거나 디렉셔널 디폴 모델을 채용하고 있습니다. 특히 머리카락이나 눈동자와 결합된 렌더링 시 주의 깊은 통합이 요구됩니다.

6. 결론

서브서피스 스캐터링은 디지털 캐릭터에게 생명력을 부여하는 가장 중요한 기술입니다.

Implementation Code
float4 PS_SeparableSSS(PostProcessInput input) : SV_Target
{
    // 깊이 버퍼와 확산 프로필 기반의 가중치로 분리형 가우시안 블러 수행 로직
    return float4(totalColor, 1.0);
}
눈에 보이지 않는 피부 속의 산란 현상을 시뮬레이션함으로써 진정한 디지털 휴먼이 완성됩니다.