TECHARTNOMAD | TECHARTFLOWIO.COM

TECH.ART.FLOW.IO

[번역] 언리얼 5 블루프린트를 활용한 카툰 렌더 파이프라인 만들기 #1 (아이디어 소개)

jplee 2024. 7. 16. 15:49

역자의 말: 이 기사를 공유 하면서 든 생각은... 굳이 이렇게까지 해야 하는가? 라는 생각과 ... 언리얼 머티리얼과 BP 를 활용하는 하나의 방안을 읽어오면서 구조적인 이해에 도움이 될 수 있겠다는 생각이 들었구요. 그래서 이렇게 공유 해 보게 되었습니다.  이 기사에서 저자 역시 이러한 방법의 아이디어를 내게 된 동기가 C++ 능력이 부족해서 엔진을 수정 하기에 버겁기 때문이라는 언급이 있는데요... 저는 주로 엔진 내부에서 수정 하는 것을 선호하지만 이 기사를 통해 얻을 수 있는 점도 있을 것 같네요.


저자 : 次次先生 : 언리얼 엔진 테크니컬 아티스트.
안녕하세요, 여러분, 오늘 컨퍼런스의 새로운 소식을 알려드리기 위해 왔습니다.
블루프린트를 사용하여 언리얼 엔진 렌더링 파이프라인을 수정합니다.
첫 번째 콘콘 이펙트:

또한 모바일 렌더링 테스트도 진행했습니다(현재 안드로이드는 지원되며, IOS 부문은 개인적으로 디바이스가 없어 테스트하지 않았습니다).

모바일 플랫폼: 샤오미 13 (샤오롱 8 실행 메모리 12+3G) 단일 캐릭터가 120fps 풀 실행 가능
먼저 렌더링 파이프라인을 위해 블루프린트를 사용하려고 생각한 이유는 제 C뿔뿔 능력이 멍청해서 엔진을 바꿀 능력이 없어서 엔진을 바꾸지 않았고, 두 번째로 카드 렌더링의 문턱을 낮추어 더 많은 사람들이 오리지널 엔진을 사용하여 아름다운 카툰 렌더링을 할 수 있도록 하기 위해서입니다.

제작 아이디어:

지면 관계상 제작 과정을 단계별로 설명하지 않겠습니다.
먼저 섀도 맵을 얻는 방법을 살펴 보겠습니다.
사실, 우리는 머티리얼을 사용하여 동적 그림자 맵을 얻을 수 있으며, 매트릭스 변환과 같은 그림자 맵을 얻는 다른 많은 방법이 있으며, 반투명 조명의 특성을 사용하여 그림자 맵을 얻는 방법에 대한 과정도 있지만 오버 헤드와 모바일 단말기가 지원하지 않는 단점이 있으므로 최적화를 보장하기 위해 동적 그림자 맵을 동시에 얻을 수있는 방법이 필요합니다.모바일 지원.
그래서 엔진 렌더링 파이프라인을 추가하지 않으면 머티리얼 블루프린트를 사용할 수 없으므로 블루프린트 노드를 통해서만 섀도맵을 얻을 수 있는데, 섀도맵은 블루프린트 계산 후 고해상도 맵을 생성하기 때문에 기본 렌더링 파이프라인으로 바로 보낼 수 없으므로 이러한 맵의 UV 배열을 만들어서 머티리얼 파라미터 세트를 통해 기본 머티리얼 파이프라인으로 보내는 것이 가능하다고 생각했고 실시간으로 증명해 보았습니다.가능하지만 많은 머티리얼 파라미터 세트를 사용하게 됩니다.
이 방법의 가장 큰 단점은 작업량이 많다는 것이므로 블루프린트에서 머티리얼 시스템을 빌드하고 원하는 결과 집합을 계산한 다음 모델에 직접 전송하면 어떨까 생각했습니다.

초기 상황은 블루프린트에서 머티리얼을 만드는 척한 다음 새로 만든 다이내믹 머티리얼 인스턴스를 스켈레탈 메시 바디에 직접 할당하여 섀도 매핑을 수행하는 새로운 아이디어가 더 간단하고 효율적입니다.
실제로 렌더링은 PBR에 더 가깝기 때문에 블루프린트에서 PBR을 제거해야 합니다(PBR 하이라이트 및 리플렉션, AO 및 기타 기능 제거).
사실,이 청사진 렌더링 프로젝트 세트의 개발은 특히 복잡하고 정확하게 말하면 렌더링 파이프 라인으로 계산되지 않지만 가상 그림자 맵 특성을 사용하여 원하는 것을 얻기 위해 사용자 정의 그림자 맵을 사용합니다.
동적 섀도 맵을 사용하면 오버헤드를 최적화하기 위해 가상 섀도 맵 출력 해상도를 줄이면 필연적으로 들쭉날쭉하고 그림자 문제와 당면 하므로 후속 작업은 오버헤드를 처리하는 것입니다.

재기 처리는 비교적 간단합니다. 저는 DitherAlpha의 원리를 활용하여 가장자리 그림자를 흐리게 만듭니다.

사실, 아주 가까이 다가갈 때만 흐릿한 효과가 나타나고 멀리 떨어져 있어도 문제가 되지 않습니다.

컨택트 섀도는 조금 더 간단하며 언리얼 엔진의 컨택트 섀도 솔루션에서 배울 수 있습니다. 저는 뎁스 계산을 사용하여 뎁스 섀도를 보완하여 컨택트 섀도를 가짜로 만들었습니다.

이렇게 하면 원하는 렌더링에 더 가까운 효과를 얻을 수 있습니다(반투명 눈썹 효과도 QAQ로 만들었습니다).

HighLight

하이라이트 처리는 비교적 간단합니다. Matcap 아이디어를 사용하고 계산을위한 입력 변수는 조명 위치, 모델 노멀, 카메라 위치이며 이전 Matcap 아이디어에 따라 라인에서 약간의 수정을 수행했습니다!

지금은 블루프린트로 두 개의 메인 렌더링만 만들었고, 나머지는 현재 머티리얼(예: 스트로크, 에지 라이트)로만 만들었습니다.


원문

https://zhuanlan.zhihu.com/p/639035529

zhuanlan.zhihu.com