개요

Outline을 처리하는 기본적인 PP에 대해 파악했으니 이제 Handdrawn 효과를 내보려고 한다.

참고한 링크는 Unreal Handdrawn PP이다.

효과 미리보기

우선 링크를 따라 아래와 같이 Material을 구성하게되면 적절히 Handdrawn 효과를 낼 수 있다.


Material 노드 구성 파악

구성한 노드는 대략 다음과 같은데, 링크를 따라하기만 해서는 각 노드가 어떤 역할을 하는 지 파악하기 어렵다.

그래서 노드별, 단위별 기능을 하나씩 해설해 적어놓으려고 한다.



  1. SceneTexture:PostProcessInput0

    • 화면 정보를 가져오는 SceneTexture
    • PostProcessInput0: 포스트 프로세스 이전의 최종 색상
  2. SceneTexture:DiffuseColor

    • DiffuseColor: 메쉬 표면의 디퓨즈 색상 (라이팅 제외 순수 색)
  3. Desaturation 노드

    • Desaturation (흑백화): 컬러 이미지를 회색조로 바꿉니다.
    • 첫 번째 desaturation은 PostProcessInput0을, 두 번째는 DiffuseColor를 받아서 회색톤으로 변환
    • 목적: 색이 아닌 밝기 명암만으로 스타일링을 하기 위해서
  4. Divide → Clamp

    • Divide: 흑백 밝기 값 두 개를 나누어 명암 대비 생성
    • 목적: 씬의 명암에 따라 스케치 적용 강도를 결정
  5. ShadowCatch → If

    • ShadowCatch: 그림자를 강조하거나 스케치 스타일에만 적용할 범위 결정 (Threshold처럼 작동)
    • If: 밝기가 ShadowCatch보다 높으면 하이라이트 처리, 낮으면 그림자 처리
    • 이 구조는 밝은 부분과 어두운 부분을 분리해서 각기 다르게 스타일을 적용하는 기반이 됨
  6. RemapValueRange

    • RemapValueRange: 입력값을 특정 범위에서 다른 범위로 선형적으로 바꿈
    • 예: (0.21.0 → 01.0)
    • 0.2와 1로 설정된 걸 보면 어두운 영역을 더 확장해서 대비 강화하는 목적
  7. TextureObject + WorldAlignedTexture

    • 주 텍스처는 스케치선/줄무늬/크로스해치 패턴
    • WorldAlignedTexture: 월드 공간 기준으로 텍스처가 일정하게 정렬됨 → 오브젝트 방향/스케일에 영향 받지 않음
    • 목적: “종이에 그려진 것 같은 느낌"을 주기 위한 텍스처 기반 스타일
  8. Contrast & Intensity 조절 블럭

    • CheapContrast: 입력 밝기 값에 대하여 contrast 강도 조절 (싸게 처리됨)
    • Multiply: 최종적으로 밝기 대비 후, CS_Multiplayer 값으로 전체 스타일 강도 조정

추가 해결 사항

허벅지같은 부분이 좀 동그랗개 나이테처럼 뜨는 부분을 해결할 방법을 찾아보려고 한다.