유니티 렌더링 파이프라인의 종류와 Forward, Defered Rendering 차이

KAY·2023년 6월 10일
0

Study

목록 보기
1/5

참고자료
파이프라인 : https://learn.unity.com/tutorial/understanding-scriptable-render-pipelines-2019-3?language=en#5f670076edbc2a0020228d0a
Forward, Defered 렌더링 : https://www.youtube.com/watch?v=anz5bHVbeEY&ab_channel=UnityKorea
유니티 그래픽스 최적화 스타트업


렌더링 파이프라인 종류

Unity에는 3가지 렌더링 파이프라인이 존재한다.

  • Built-in Render Pipeline
  • URP(Universal Render Pipeline)
  • HDRP(High Definition Render Pipeline)

Built-in Render Pipeline

:유니티에서 기본으로 설정되어있는 렌더 파이프라인. 스크립터블 렌더 파이프라인(SRP)에 비해 제한적이다. CG code를 이용해서 직접 작성을 할 수는 있지만, 접근과 사용이 제한적이라 SRP에 최적화된 URP와 HDRP가 추가로 만들어졌다고 한다.
여기서 사용되는 쉐이더 이름은 Standard Shader라고 부르고 CG언어를 사용함

URP(Universal Render Pipeline)

: 리얼타임 퍼포먼스에 최적화된 파이프라인이라고 한다. 성능이 제한된 플랫폼에서 잘 작동하기 위함이 이 파이프라인의 목표라고 함

라이팅과 쉐이딩을 trade off해 최적화 하는데, 모바일 플랫폼이나 VR, 제한된 라이팅을 사용하는 프로젝트라면 이 URP가 가장 적합하다고 한다.

  • 객체당 하나의 리얼타임 라이팅과 쉐도우, 라이트 컬링으로 싱글패스 포워드 렌더링을 함
    => 이는 레거시(Built-in RP)파이프라인과 차이가 있는데, 레거시 포워드 렌더링에서는 일정 범위 내에서 픽셀당 추가적인 패스를 수행한다고 함
    => 이 말은 URP에서는 더 적은 드로우콜을 사용한다는 뜻이다.
  • URP에서는 Shader Graph툴을 지원한다.

HDRP(High-Definition Render Pipeline)

:HDRP는 간단하게 고성능 품질을 위한 랜더 파이프라인이라고 보면 될 것 같다. 참고자료 문서에 따르면 다음과 같은 특징이 있다.

  • 프로젝트의 타겟 플랫폼이 DirectX11 기능 수준 이상
  • 컴퓨팅 쉐이더가 많이 사용됨
  • 향상된 조명 연산, 재질 렌더링, 디버깅 툴

포워드 렌더링과 디퍼드 렌더링

간단하게 요약하면

  • 포워드 렌더링 : 제한된 성능에 사용하기 좋음, 모바일 적합.
  • 디퍼드 렌더링 : 고성능 렌더링 방식, PC나 콘솔 전용

Forward Rendering

:전통적인 렌더링 기법. Defered Rendering이 생겨나면서 구분짓기 위해 이름이 붙여졌다고 함.

  • 멀티 렌더 타겟이 필요 없음
  • 적은 수의 동적 라이트 사용할 때 적합한 렌더링 방식
  • 단, 동적 라이트가 많아지면 성능 저하가 있음
  • 모바일에 적합함

Defered Rendering

  • 디퍼드 렌더링이란 :
  • 많은 수의 실시간 라이팅을 좋은 성능으로 처리할 수 있다.
  • 하지만 기기의 성능이 어느정도 받쳐줘야 함, PC나 콘솔 게임에서 널리 사용되고 있음
  • 하나의 버퍼에 렌더링을 하는 게 아닌 여러 개의 버퍼에 한꺼번에 렌더링을 하는 멀티 렌터 타겟 기능이 필요함
  • 멀티 렌더 타겟을 이용하여 지오메트리 버퍼 혹은 G 버퍼라 부르는 버퍼에 불투명한 오브젝드 정보를 렌더링, G버퍼에는 Diffuse, Screen Space Noraml, Specular, Smoothness, Screen Space Depth 등의 정보가 기록됨. 모든 오브젝트들을 G 버퍼에 렌더링한 후 이 정보를 토대로 라이팅을 처리하여 프레임 버퍼에 출력
  • 지오메트리 패스와 라이팅을 처리하는 라이팅 채스가 분리되어 있다.
  • 화면에 보이는 픽셀만 처리해 불필요한 쉐이딩연산을 줄일 수 있다.
  • 기본적으로 높은 메모리 대역폭이 필요하기 때문에 메모리 대역폭이 낮은 모바일에서는 권장되지 않음.

0개의 댓글