WN_인생기록

카툰 렌더링 메테리얼 연구 -1 본문

언리얼 개발/이것저것 테스트

카툰 렌더링 메테리얼 연구 -1

WhNi 2024. 3. 24. 23:21

포스트프로세스를 통해 카툰렌더링 처리가 되는 과정을 연구해 보겠다.

 

여러 설정들이 언리얼 에디터에 있고, 세팅이 있기에 한번 따라해보면서 어떤식으로 동작하는지 알아가볼 예정이다.

 

만져봐야할 세팅들을 하나 하나 정리하고, 왜 필요한지 알아보자


용어 설명

-유튜브에서 일단 무작정 따라했다. 

따라하면서 모르는 용어들부터 싹 정리했다. (Outline 부분은 다음 포스트에서)

Material Domain - 메테리얼이 적용되는 대상의 유형, 범주 (포스트 프로세싱으로 세팅)

Scene Texture Id - 렌더링 패스의 결과물을 다른 메테리얼에서 사용할 수 있게 해주는 카테고리

desaturation - 채도 감소 

saturate - 값을 0과 1 사이로 제한하는 기능

Sene Texture - BaseColor -> stored in GBuffer 

component mask  - 특정 색상 채널을 추출하는데 사용되는 함수 ( R,G,B,A) 

step - threshold (임계값) 과 비교되는 value가 있는데, value가 임계값보다 작으면 0, 임계값보다 크면 1을 반환

Light Shadow Therehold - 그림자가 렌더링 되는 디테일 수준을 제어하는 설정

Light Shadow Transition Size - 그림자의 가장자리가 자연스럽고 부드러워지지만 리소스를 많이 필요로 함

Linear Lerp - 시작값,종료값, 보간 인자(가중치) 의 입력을 받음. 보간이여서, 알파값(보간 인자)를 기준으로 시작값, 종료값의 부드러운 전환을 만들어내는 기능

Unreal Engin setting -> Global Illumination + Reflection = None (Not lumen)

GBuffer - 렌더링 파이프라인에서 개체의 기하학적 구조에 대한 유형 정보(각 픽셀에 대한 위치,법선,색상, 깊이) 저장하는 버퍼 유형. 

+

Outline Shader

Detect Depth - 시각적 깊이와 현실감을 높이기 위한 깊이 정보 

Detect Normal -  객체의 표면에 대한 법선 정보를 감지하는 기능 (표면이 광원을 어떻게 반사하는지) 

GetKernel

Variation = Abs(Dleft+Dright+Dup+Ddown - 4 * Dcenter) - 해당 픽셀 주변의 변화율을 계산하는 공식 = 외곽선을 감지하고 아웃라인을 생성하는데 사용됨.

Scalar - 단일값  

Grazing Angle (입사광선과 반사 표면 사이의 각도)

Fresnel - 

f(x) = ax + b

f(depth) = a * depth + b = thickness

f(0) = thickness_max

f(depth_max) = thickness_max

 

f(depth) = (thickness_min - thickness_max / depth_max) * depth + thickness_max

 

hue shift


직접 테스트

 

포스트 프로세스 볼륨을 월드에 소환하고, Infinite Extent를 하게 되면 전체 화면에 적용이 된다.

(이전에는 불륨 내에서만 메테리얼 적용 됨) 

 

과정을 보아하니 

 

라이트 버퍼만을 따로 추출해내는 것이 중요한거 같다.

 

1. 카툰 렌더링은 일단 라이트 버퍼를 따로 추출해야 함

2. 원래 Gbuffer에 있는 RGB 색깔을 곱한 값을 Emissive Color의 결과값에 대입한다.

라이팅 값만 전체 포스트 프로세싱에 적용한 모습