Develog
로그인

[Unity] 그래픽-3. Fix normal-map with ShaderGraph

KYO
KYO
∙2026년 5월 16일∙조회 2
Unity복습그래픽
Unity Graphics
본문 로딩 중...
이전 글[Unity] 그래픽-2. 실시간 렌더링 주요 개념
다음 글[Unity] 그래픽-4. 셰이더그래프: 반사 큐브 맵, Metalic 때우기
0
KYO

댓글 0

Custom Shader Graph for fixing normal map

  1. 마테리얼 선택
  2. 셰이더 - URP - Lit or Unlit 선택
  3. Create - Shader Graph - URP - Lit / Unlit Shader Graph
  4. lit(lighten)
  5. unlit(no lighten) UI나 파티클에 사용
  6. Base Map, Normal Map, Metal Map, (Occlusion Map) 에 텍스쳐 적용
  7. 먼가 이상하다: ~Map을 Unity에 맞게 수정하는 작업 필요. 1. Unity는 Normal Map을 y+ 방식으로 표현하여 호환 문제 발생할 수 있음
  8. Import할 때 TA가 조절할 수 있으나, 책임소재 애매함.

Fragment

  • Base Color
  • Normal(Tangent Space)
    • if 빛과 평행 and 내적 > 0 then 최대 밝기
    • if 빛과 직교 then 빛 안 받음.
  • Metalic

Unity Normal Map 특수

근데 Unity는 Normal Map을 R, G만 사용하고 B는 사용 안 함(R cross G = B 이므로 0.3공간 절약 효과)

근데 모델러 쪽에서는 R, G, B 모두 사용하는 Normal Map이 건너오기에 둘을 호환시켜야됨.

Shader Graph 사용한 보정

  • Normal Map 텍스쳐를 텍스처 설정 인스펙터 창에서 TextureType = NormalMap으로 설정
  • Normal Map으로 설정하고 ShaderGraph에서 텍스쳐 RGBA가 Normal Unpack 노드를 거쳐 Fragment 노드의 Normal로 들어가도록 설정
  • Default로 설정하고 ShaderGraph에서 텍스쳐 RGBA를 Fragment 노드의 Normal로 넣어줌

더 간단한 보정들. 셋 중 하나 하면 됨.

  • 텍스쳐 인스펙터에서 Normal Map으로 설정
    • == RGB to RG
  • 텍스쳐 인스펙터에서 Normal Map으로 설정 후 (Shader Graph) Unpack 후 Fragment Normal에 연결
    • == RGB to RG to RGB
  • 텍스쳐 인스펙터에서 Default로 설정 후 (Shader Graph) Fragment Normal에 연결
    • == RGB to RGB

 

새 글이 올라오면 Develog 알림으로 알려드려요

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요.

관련 글

[Unity] 제네릭의 컴파일

[Unity] 제네릭의 컴파일

ㅇㅇ

10월 7일42
[Unity] 제네릭과 가변성(variance)

[Unity] 제네릭과 가변성(variance)

제네릭과 가변성

10월 6일821
[Unity] IEnumerator 개요

[Unity] IEnumerator 개요

코루틴에이저포에버

10월 6일4
[Unity] 제네릭의 컴파일
Unity

NEW[Unity] 제네릭의 컴파일

ㅇㅇ

KYO
KYO
420
KYO
KYO
∙10월 7일
420
[Unity] 제네릭과 가변성(variance)
Unity

[Unity] 제네릭과 가변성(variance)

제네릭과 가변성

KYO
KYO
821
KYO
KYO
∙10월 6일
821
[Unity] IEnumerator 개요
Unity

[Unity] IEnumerator 개요

코루틴에이저포에버

KYO
KYO
400
KYO
KYO
∙10월 6일
400