[Unity] Render Pipline

윤주원·2025년 6월 23일

유니티

목록 보기
4/5
post-thumbnail

1. Package Manager 개념

  • 사용 이유: 유니티 프로젝트는 프로젝트 내부에 직접 추가하는 것이 아니라 각 컴퓨터의 글로벌 캐시를 참조해서 사용함
  • 프로젝트 크기 경량화: 불필요한 중복 제거로 디스크 사용량 감소
  • 설치 속도 개선: 이미 다운로드된 패키지는 즉시 참조 가능
  • 협업 시 다른 컴퓨터에 패키지가 설치되지 않았다면, 프로젝트를 열 때 필요한 패키지를 인터넷에서 자동 다운로드
  • manifest.json버전 정보 기록, 팀원 간 동일 버전 패키지 사용 보장

자주 사용하는 주요 패키지

  • AI navigation: 유니티 ai 내비게이션 시스템을 구현
  • Cinemahine: 스마트 추적 카메라와 복잡한 카메라 연출 구현
  • Timeline: 영상 편집 프로그램처럼 컷신, 이벤트 시퀀스를 제작 가능(Cinemahine 종속)
  • Universal RP(URP): 여러 플랫폼에 범용적으로 사용되며, 성능에 집중한 파이프라인(후처리 기능도 포함)

2. 랜더 파이프라인(Render Pipeline)

  • 3D 씬화면에 그리는 일련의 과정
    • 이를 수정한다는 것은 3D 오브젝트가 어떤 과정을 통해 표현될지를 정하는 것
  • 계산 단위
    • 픽셀 단위: 정밀하지만 계산량이 커짐(하나하나의 색을 계산)
    • 정점(vertex): 점부터 점까지만 계산, 품질은 떨어지지만 성능 개선

3. GI(global illumination)

  • 다이렉트로 오는 빛만 계산하는게 아니라 빛이 굴절, 반사되서 들어오는 것 까지 보여주는 것(디테일함)

4. SRP(Scriptable Render Pipeline)

  • SRP: C#을 통해 렌더링을 제어할 수 있는 API 제공

    종류

    • URP: 성능에 집중한 범용적으로 사용(하이엔드도 가능)
    • HDRP: 하이엔드나 최신 사양에서 사용
  • Built-in 파이프라인은 더이상의 기능 추가가되지 않기에 사용 추천 안함.

    • 많은 기존의 에셋이 이를 기반으로 만들었기에 그대로 사용 가능
    • 즉, 마젠타 색으로 변환 잘 안됨.

URP 활성화하기(처음부터 URP로 만들었다면 안해도 됨)

  1. Universal RP 설치하기

  2. 렌더 파이프라인 에셋 생성

    • Project - Rendering
    • Renderer 붙은거를 → Data, 다른거를 Pipeline으로 변경
    • Pipeline: Universal Render Pipeline Asset 타입
    • 이것은 여러개 만들 수 있음 → 사양별로 나눠서 관리 가능
  3. 프로젝트에 활성화된 렌더 파이프라인 변경

    • Edit - Project Settings - Graphics

    • Project Settings - Quality에서 레벨에 따라서 파이프라인을 설정할 수 있음.
      - 예: 배그처럼 사양에 따라서 그림자를 어떻게 하는지 설정 가능

5. URP로 변환 시 깨진 셰이더 복구하기

  • Built-in 에서 Shader는 스탠다드(standard)임.
  • URP로 변환하게 되면 스탠다드 셰이더가 제대로 작동하지 않는다.
  • URP에서 호환되게 하기 위해 UniversalRendererPipeline/Lit 등 다른 것으로 변환
  • 한번에 수정하기
    • 프로젝트 창에서 해당 머테리얼을 선택 후,
    • Edit - Rendering - Materials - Convert Selected Built-in Materials to URP
    • Window - Rendering - Rendering Pipeline convertor - 전부 체크 후 변환

6. 렌더링 경로 설정(ZombieRenderData)

  • Forword(Default) → Deferred 변경
    • Path는 처리되는 순서를 결정
    • Forward: 오브젝트를 그릴 때마다 해당 오브젝트에 영향을 주는 모든 라이팅도 함께 계산
    • 성능이 가볍지만 느리며 간략화되고 왜곡됨
    • But 오브젝트와 광원이 움직이거나 많아지면 연산량이 급증
    • 이를 Deferred 렌더링 or 셰이딩으로 바꿔 온전하게 표현
    • 렌더링은 4개에서 9개까지 광원에 적용됨
  • Deferred
    • 연산을 미뤄서 실행하는 방식
    • 첫 번째(G-buffer 생성) 패스에서 Mesh를 그리지만 색과 라이팅을 계산하지 않음
    • 대신 오브젝트의 여러정보를 종류별로 G-buffer에 저장
    • 두 번째 패스에서 G-buffer 정보를 기반으로 ****최종 컬러를 결정
    • 렌더링 개수가 제한되지 않음
  • Accurate G-buffer Normals

7. 렌더 파이프라인 설정 변경

  • 메인 Light외 추가 Light에도 그림자 발생
  • 후처리 모드 설정
    • 컬러 그레이딩 후처리 효과가 더 정확한 컬러 정확도를 이루게함
profile
안녕하세요

0개의 댓글