TECHARTNOMAD | TECHARTFLOWIO.COM

TECH.ART.FLOW.IO

[번역]SDF Based Transition Blending for Shadow Threshold Map

jplee 2024. 3. 4. 23:23

역자의 글.
최근 가상아바타 렌더링 처리에 관련 된 외주를 받게 되었는데요... 사실 SDF 를 이용한 얼굴 그림자 처리를 꼭 해야 하나? 라는 생각이 들면서도 서브컬처 진영에서는 꽤 트렌디 한 기법중의 하나이다 보니... 이렇게 또 멋진 nagakagachi 군의 좋은 토픽을 접하게 되었습니다. 유니티에서 구현 된 내용들을 많이 들 보셨겠는데요.... 겸사 해서 언리얼 엔진에서 어떻게 구현 하는지도 한번 같이 보시죠!
 


원문

https://nagakagachi.hatenablog.com/entry/2024/03/02/140704

SDF Based Transition Blending for Shadow Threshold Map - ながむしメモ

セルルックキャラクターの顔の陰制御に用いられるShadow Threshold Mapを生成する仕組みについて. 連番二値画像からMapを合成するメイン部分の説明を試みます.SDFによる補間で Shadow Threshold Map を

nagakagachi.hatenablog.com

 
셀루룩 캐릭터의 얼굴 음영 제어에 사용되는 Shadow Threshold Map을 생성하는 메커니즘에 대해 알아봅시다.
시퀀설 한 이미지에서 Map을 합성하는 주요 부분을 설명합니다.

개요

UE5의 툴은 아래 SDF 관련 툴에 포함되어 있습니다.
블랙박스 없이 BP와 머티리얼로 구현되어 있으니 자세한 내용은 여기를 참고하세요.
https://github.com/nagakagachi/NagaSdfTextureToolForUE

GitHub - nagakagachi/NagaSdfTextureToolForUE: Tools for generating SDF from textures in Unreal Engine

Tools for generating SDF from textures in Unreal Engine - nagakagachi/NagaSdfTextureToolForUE

github.com

 

알고리즘

여기서는 가장 단순하다고 생각되는 C0 연속 합성을 생각해 보겠습니다.
연속된 각 이미지 사이의 전환 속도를 더 부드럽게 하고 싶다면 C1 연속으로 합성하는 것이 좋을 수도 있습니다.

연속된 2장씩 처리해 나갑니다.
 

처리 대상의 연속적인 쌍

연번 i번째와 i+1번째의 예시

SDF 생성

이차원 이미지의 SDF를 계산합니다.
내부측 거리도 필요하므로 Signed Distance Field여야 한다.

SDF 생성

SDF를 기준으로 전이율 계산

SDF는 경계로부터의 거리를 나타내기 때문에 SDF_1st / (SDF_1st + SDF_2nd) 를 계산하여 전이 원에서 전이 대상 경계에서 0-1이 되는 그래디언트를 얻을 수 있다.

SDF 값으로 전환율 계산

한 쌍의 전이 영역만 마스크 처리

이 방법은 2장을 한 쌍으로 처리하기 때문에 최종 그라데이션의 변화 속도가 불연속적(C0연속)입니다.
장수를 많이 준비하여 세세한 구간으로 나누었다면 상관없겠지만, 장수가 적은 경우에는
적은 개수의 경우에는 음영 영역의 이동 속도가 구간 경계에서 흔들려 보일 수 있습니다.
이를 해결하기 위해서는 두 장의 쌍이 아닌 그 옆의 이미지까지 포함하여 속도가 연속적이 되도록 전이율을 계산해야 할 것 같습니다.
(본 글에서는 미지원입니다.)

불연속적인 변화 속도

 

관련 정보

실제 활 등에 대해서는 CEDEC의 Hi-Fi RUSH 강연이나, alwei님의 글을 참고하시면 도움이 될 것 같습니다.

Tango Gameworksのチャレンジが詰まったカートゥーン調リズムアクションゲーム『Hi-Fi RUSH(ハイフ

Tango Gameworksの新作『Hi-Fi RUSH』のメイキングを紹介。

cgworld.jp

https://unrealengine.hatenablog.com/entry/2024/02/28/222220

UE5 SDF Face Shadowマッピングでアニメ顔用の影を作ろう - Let's Enjoy Unreal Engine

UE5を使って、アニメキャラクターをレンダリングするというのは、日本の皆さんにとって非常に興味深い分野だと思います。 単純なセルシェーダー、トゥーンレンダリングなどについては過

unrealengine.hatenablog.com

명칭으로
Shadow Threshold Map
Face Threshold Map
Face Shadow Map
등차가 있는 것이 힘든 부분...