사실적인 헤어 시뮬레이션
언리얼 엔진의 헤어 렌더링 및 시뮬레이션 시스템은 스트랜드 기반 워크플로를 사용하여 각 헤어 스트랜드를 물리적으로 정확한 모션으로 렌더링합니다. 덕분에 아티스트가 DCC 패키지로 생성한 그룸으로 수십만 개 이상의 사실적인 헤어를 시뮬레이션 및 렌더링할 수 있습니다. 실제 헤어 및 퍼는 머리와 몸의 움직임, 바람, 중력 및 다른 힘에 반응하여 특정한 방식으로 움직입니다. 사실적인 헤어 및 퍼 애니메이션은 일반적으로 물리 기반 시뮬레이션을 사용하여 구현합니다. 런타임에서 이렇게 복잡한 시뮬레이션을 실행하면 계산 비용이 매우 높아집니다.
헤어는 시뮬레이션하기 어렵습니다. 수가 많고 오브젝트 콜리전과 자체 콜리전을 모두 갖추고 있어 모션이 복잡하기 때문입니다.
헤어 다이내믹은 복잡한 상호 의존성을 따릅니다. 동물 퍼의 경우 근육과 살 시뮬레이션이 퍼 및 헤어 시뮬레이션에 상당히 관여합니다.
사실적인 헤어를 렌더링 및 시뮬레이션할 때 시스템은 특정한 '가이드'를 사용하여 시뮬레이션 계산 비용을 줄입니다. 가이드란 디포메이션에 사용되는 총 스트랜드 수의 서브셋입니다. 시뮬레이션 동안 가이드 스트랜드가 변형되고, 이 변형을 사용하여 모든 스트랜드의 무브먼트를 보간합니다.
언리얼 엔진은 두 종류의 가이드를 사용합니다. 렌더링 가이드 와 시뮬레이션 가이드 입니다. 일반적으로 렌더링 가이드는 모으기, 방향 변화, 흐름 등의 구조를 그룸에 제공합니다. 이러한 가이드는 총 스트랜드 중 작은 비율을 차지합니다(보통 5~10%). 최적의 가이드를 직접 선택하면 스트랜드를 랜덤 샘플링할 때와 비교해서 디포메이션의 퀄리티를 대폭 향상시킬 수 있습니다.
시뮬레이션 가이드는 물리 시뮬레이션 동안 연관된 스트랜드의 모양과 모션을 구동합니다. 이러한 가이드는 렌더링 가이드를 리샘플링하고 스트랜드당 버텍스(포인트) 수를 줄여서 만듭니다. 필요에 따라 스트랜드당 포인트 수를 4, 8, 16 또는 32로 설정할 수 있습니다.
가이드는 외부 DCC 패키지 또는 언리얼 엔진 에디터 내부에서 만들 수 있습니다. 가이드를 자동 생성하려면 임포트 옵션(Import Options) 창에서 적절한 옵션을 선택하고 가이드에 사용될 스트랜드의 비율을 선택합니다.
언리얼 엔진은 렌더링 가이드를 자동으로 생성할 때 총 스트랜드에서 랜덤 샘플을 선택합니다. 가이드를 직접 생성하면 디포메이션의 퀄리티를 대폭 향상시킬 수 있습니다.
언리얼 엔진의 헤어 시뮬레이션은 나이아가라 비주얼 이펙트 시스템의 일부로서 구현됩니다. 시뮬레이션은 GPU에서 작동하며, 솔버는 XPBD(Position-Based Simulation of Compliant Dynamics) 메서드 기반입니다.
컨스트레인트 솔브
서로 다른 컨스트레인트를 모두 솔브하려면 스트랜드, 콜리전, 구성 모델 파라미터와 서브스텝 및 솔버 반복작업 수를 제공해야 합니다. 솔버는 최종 스타일이 최대한 원본 스타일에 가까워지도록 중력(기본 표정)하의 원본 메시를 타기팅합니다.
콜리전 처리
피직스 에셋이 스켈레탈 메시에 추가되면 시뮬레이션 솔버가 해당 피직스 에셋의 프리미티브에 대한 바디 콜리전을 처리합니다.
셀프 콜리전은 정규 복셀 그리드에 대한 파티클 속도의 래스터화로부터 빌드된 평균 속도 필드를 바탕으로 연산됩니다.
시스템은 외부의 힘이 적용되었을 때 헤어 스트랜드의 사실적인 행동에 대해 최대한의 근사치를 구하는 수학 모델을 사용합니다. 가장 까다로운 문제는 솔버 반복작업 수가 적으면서도 스트랜드가 사실적으로 행동하는 좋은 모델을 찾는 것입니다.
이 모델은 시뮬레이션 도중 스트랜드가 뻗고, 구부러지고, 뒤틀리는 방식을 제어합니다. Cosserat Rod 및 Angular Spring 메서드는 그룸 에셋 피직스 프로퍼티 내에서 사용 가능합니다.
헤어 시뮬레이션에 대해 더 자세히 알아보려면 헤어 렌더링 및 시뮬레이션 문서 페이지를 참조하세요.