포스트

Tonemapping (톤 매핑)

Tonemapping (톤 매핑)

Unity Material의 Surface Type: Opaque와 Transparent 비교 정리

Unity에서 Material의 Surface TypeOpaque(불투명)Transparent(투명) 로 나뉩니다.
이 설정은 렌더링 파이프라인쉐이더에 따라 표면의 렌더링 방식을 결정합니다.


Surface Type이란?

  • Surface Type은 Unity에서 Material의 표면 속성을 정의하는 속성입니다.
  • 주로 Shader Graph, URP(Standard Shader), HDRP 등에서 사용됩니다.
  • 표면의 광학 특성을 정의하여 렌더링 방식을 결정합니다.

1. Opaque (불투명)

특징

  • 불투명한 표면으로 빛이 통과하지 않는 물체에 사용합니다.
  • 광원에 의해 완전히 가려지거나 반사되는 특성을 가집니다.
  • 깊이 테스트와 깊이 쓰기가 활성화되어 있어 Z-버퍼를 사용합니다.
  • 렌더링 순서가 앞에서 뒤로 그려집니다.
  • 렌더링 비용이 적고 성능이 우수합니다.

사용 예

  • , 바위, 지면불투명하고 단단한 물체
  • 캐릭터 모델이나 건물

장점

  • 빠른 렌더링 속도
  • 깊이 정렬이 잘 이루어져 Z-파이팅이 거의 발생하지 않음

주의점

  • 투명도가 없는 재질이므로 반투명한 효과를 구현할 수 없음

2. Transparent (투명)

특징

  • 투명하거나 반투명한 표면을 표현할 때 사용됩니다.
  • 빛이 일부 통과하거나 굴절되는 재질을 표현합니다.
  • 깊이 쓰기가 비활성화되어 있어 Z-정렬 문제가 발생할 수 있습니다.
  • 렌더링 순서가 뒤에서 앞으로 그려집니다.
  • 렌더링 비용이 높아 성능에 영향을 줄 수 있습니다.

사용 예

  • 유리, , 안개, 투명한 캐릭터
  • 입자 효과(Particles)

장점

  • 투명도 표현이 가능하여 반투명, 반사 등을 자연스럽게 표현
  • UI 요소물체 간 중첩 표현에 유리

주의점

  • 렌더링 순서에 민감하여 Z-파이팅 문제가 발생할 수 있음
  • 렌더링 성능 저하가 있을 수 있음

Opaque와 Transparent 비교

속성OpaqueTransparent
표면 특성불투명, 빛이 통과하지 않음투명, 반투명, 빛이 일부 통과
렌더링 순서앞에서 뒤로뒤에서 앞으로
깊이 테스트활성화 (ZWrite On)비활성화 (ZWrite Off)
렌더링 성능빠름느림 (비용 증가)
사용 예벽, 건물, 캐릭터유리, 물, 안개, 투명 캐릭터
Z-정렬 문제거의 없음있음 (Z-파이팅 문제)

속성 설명

2. 렌더링 순서 (Rendering Order)

  • Unity에서 렌더링 순서표면의 깊이 정보를 사용하여 결정됩니다.
  • Opaque: 앞에서 뒤로 렌더링
  • Transparent: 뒤에서 앞으로 렌더링

3. 깊이 테스트 (Depth Testing)

  • 렌더링할 픽셀의 깊이값을 검사하여 현재 픽셀이 기존 픽셀보다 앞에 있는지 확인하는 과정
  • Opaque: 깊이 테스트 활성화 (ZWrite On)
  • Transparent: 깊이 쓰기 비활성화 (ZWrite Off)

4. 렌더링 성능 (Rendering Performance)

  • Opaque: 빠른 렌더링 속도
  • Transparent: 렌더링 속도가 느림, 블렌딩 연산으로 성능 저하

정리

  1. Opaque불투명 재질성능이 우수하며 Z-정렬이 안정적입니다.
  2. Transparent투명 재질표현력이 높지만,
    • Z-정렬 문제렌더링 성능 저하를 고려해야 합니다.
  3. 두 Surface Type을 적절히 활용하여
    • 효과적인 성능 관리자연스러운 시각 효과를 구현할 수 있습니다.
  4. 표현할 객체의 특성렌더링 비용을 고려하여 Surface Type을 선택하는 것이 중요합니다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.