본문 바로가기
개발/Unity) Shader

Unity)Shader Pre-Warm Up 정리

by 테샤르 2025. 9. 29.

Shader Pre-Warm Up 정리

 

셰이더가 변형(Variant)가 되는 과정은 다음과 같다.

생성 -> 컴파일 -> 스트리핑 -> 빌드 과정에서 포함 여부가 결정이 되고 

실제 런타임에서 사용 과정은 ( Variant 선택 -> 메모리 로드-> 컴파일/변환-> 드라이버 최적화/준비-> GPU 실행)이 된다.

 

이번에 Shader를 사용하는 과정에서 Graphics API에 따라 변형이 달라지는 과정에서

런타임에서 오래 걸리는 문제가 생긴 부분을 수정한 과정을 간단하게 포스팅 한다.

 

반응형

 

Unity 에서는 미리 사용하기전에 Shader를 로드하는 기능들을 몇가지 지원한다.

<1. Project Setting - Preload >

Project Settings > Graphics -> Preload Shaders (Shader Variant Collection) 을 추가 하고

Preload Shaders After Showing First Scene 체크한다.

그러면 자동으로 첫 씬에서 완전히 로드된 후 변형을 로드하고 워밍한다.

 

< 2. 게임오브젝트로 미리 로드>

Shader Variant Collection을 해도 Graphics API에 따라 Varaint가 없는 경우도 있기 때문에

범용 적인 환경(DX11, Vulkan,Metal) 상황에서는 사용하기전에 GameObject를 RunTime에서 임의로 생성해서 Shader가 실제로 사용되는 것처럼 셋팅하고 이후에 삭제하는 방법을 사용한다.

 

 

< 메모리 프로파일러 : Memory Profiler >

메모리 프로파일러을 확인해서 실제 올라간 메모리의 정보를 확인 가능하다.

 

 

 

Unity Memory Profiler  : [링크]

 

Unity 셰이더 베리언트 최적화 및 문제 해결 팁 : [링크]

 

Unity 셰이더 배리언트 최적화 및 문제 해결 팁

셰이더 배리언트에 대해 더 깊이 있게 알아보세요. 셰이더 배리언트를 줄여서 프로젝트 빌드 시간을 단축하고 메모리 사용량을 줄일 수 있는 실용적인 팁도 몇 가지 안내합니다.

unity.com

 

Unity Shader -error : [링크]


Unity Prewarm Shaders : [링크]

 

★★★ ★

 

반응형

댓글