게임 그래픽 프로그래밍/개인공부

유니티 렌더 파이프라인 (Render Pipeline)

Bueong_E 2023. 7. 26. 20:16
반응형
SMALL

https://docs.unity3d.com/Manual/BestPracticeLightingPipelines.html

https://docs.unity3d.com/kr/2021.1/Manual/render-pipelines.html

 

렌더 파이프라인 - Unity 매뉴얼

렌더 파이프라인은 씬의 콘텐츠를 가져와서 화면에 표시하는 일련의 작업을 수행합니다.

docs.unity3d.com

  • 유니티 렌더 파이프라인이란?
    • 씬의 콘텐츠를 가져와서 화면에 표시하는 일련의 작업을 수행하는 기능.
    • 수행하는 작업의 종류
      • 컬링
      • 렌더링
      • 포스트 프로세싱
    • 종류
      • 빌트인 렌더 파이프라인
      • 유니버셜 렌더 파이프라인(URP)
      • 고해상도 렌더 파이프라인(HDRP)
      • 유니티의 스크립터블 렌더 파이프라인 API를 활용한 커스텀 렌더 파이프라인
    • 렌더링 파이프라인
      • 애플리케이션(Aplication) => 지오메트리(Giometry) => 래스터라이저(Rasterizer)
        • 애플리케이션(Aplication) 스테이지 
          • 애플리케이션 상에서 처리되는 단계
          •  GPU 파이프라인인 그래픽스 렌더링 파이프라인 보통 GPU파이프라인을 의미하여 애플리케이션 스테이지에는 포함되지 않지만 본격적인 렌더링 파이프라인 진입전 CPU에서 필요한 연산을 처리하기 떄문에 큰의미로는 렌더링 파이프라인의 일부분이 된다.
        • 지오메트리(Giometry) 스테이지
          • 지오메트리를 구성하는 버텍스와 폴리곤의 처리를 담당
          • 지오메트리 스테이지 과정
            • Culling (클리핑)
              • 클리핑은 뷰 프러스텀(View Frustum)밖에 위치한 객체들을 제거하는 과정.
              • 뷰 프러스텀은 카메라가 보이는 영역을 나타냄.
              • 객체들의 경계를 비교하여 가시성이 없는것은 제거.
            • 정점 변환과 변환 스테이징(Vertex Transformation and Transform Staging)
              • 각 객체의 정점들은 월드 좌표계(World Space)에서 뷰 좌표계(View Space)로 변환.
              • 카메라의 위치와 방향에 맞게 정점들을 변환하여 뷰 공간에서의 상대적인 위치를 계산하는 과정.
              • 여러번의 변환과정을 거쳐 최종적으로 클리핑을 위한 좌표계로 변환.
            • 정점 쉐이더(Vertex Shader)
              • 정점 쉐이더는 정점들의 위치, 색상, 텍스처 좌표 등의 정보를 처리하는 프로그램.
              • 이동시키거나 추가 정보를 계산하거나 기타 변환작업등을 수행.
            • 후면 컬링(Backface Culling)
              • 정점들을 이용하여 각 삼각형의 뒷면과 앞면을 판별하는 과정.
              • 뒷면을 렌더링 하지 않음고 제거함으로 렌더링 성능을 최적화함.
            • 삼각형 클리핑(Triangle Clipping)
              • 클리핑 단계에서 프러스텀 안에 들어왔더라도 일부 삼각형들은 여전히 프러스텀의 경계를 벗어날 수 있음, 이러한 삼각형들은 화면에 표시되기 전에 클리핑되어 프러스텀 내부로 제한하는 기능.
        • 레스터라이저 스테이지
          • 오브젝트를 그리는 픽셀들을 추리고 픽셀의 색상을 결정.
          • 버텍스 쉐이더를 거쳐 지오메트리가 구축되면 화면의 어느 픽셀에 그려져야 하는지 결정됨.
          • 메시의 폴리곤에 속한 영역을 픽셀로 매칭시키는 과정.
          • 뎁스버퍼, Z-버퍼를 이용해 깊이 판정을 하고 블렌딩을 통해 최종 출력 색상을 결정.

 

여기까지 유니티의 기본적인 렌더 파이프라인 과정을 정리해보았다.

전부 세세하게 분석한것은 아니지만 어느정도 파이프라인의 큰 뼈대를 정리할수 있었다.

다음 포스팅에는 유니티가 제공하는 URP 와 HDRP에 대해 좀 더 자세히 포스팅할 예정

 

참고 블로그 : https://novemberfirst.tistory.com/114

반응형
LIST