PSO 수집 과정을 문서만 보고 이해해서 따라하기에는 시간이 많이 소요되고 과정이 복잡하기 때문에
예제를 통해 따라할 수 있도록 ActionRPG 데모 4.26 버전을 기준으로 자동화된 스크립트를 작성함
Windows , Android ETC2 플랫폼을 대상으로 테스트 되었고
bat 파일 내 경로 및 대상 플랫폼 이름만 수정하면 다른 플랫폼도 쉽게 지원이 가능함
안드로이드 경우 개발자 모드로 USB 디버깅을 활성화 후 USB 로 연결이 되어서 adb 명령어 실행이 가능해야 함
환경 변수 대신 절대 경로를 사용했으므로 사용 전 엔진 설치 위치 및 샘플 프로젝트의 경로를 전부 수정해 줘야함
사용방법은 간단히 번호 순서데로 실행 하되, 3번 단계 까지 실행 하고 4번 단계 실행 전에
게임을 실행해서 맵을 충분히 돌아다니면서 shaderpipelinecache가 되도록 많이 수집되도록 해야 함
순서데로 잘 실행했다면 빌드 로그에 다음과 같이 PSO 가 성공적으로 포함된 것을 확인이 가능함
각 단계별 역할을 간단히 요약하면..
PSO 수집을 위해 필요한 ini 설정이 config 폴더에 미리 되어 있는 상태이고
bShareMaterialShaderCode=True
bSharedMaterialNativeLibraries=True
[DevOptions.Shaders]
NeedsShaderStableKeys=true
r.ShaderPipelineCache.Enabled=1
r.ShaderPipelineCache.LogPSO=1
r.ShaderPipelineCache.SaveBoundPSOLog=1
r.ShaderPipelineCache.StartupMode=1
r.ShaderPipelineCache.SetBatchMode=Fast
1번 단계에서 PSO 수집용 빌드를 만들면 아래와 경로에 scl.csv 파일들이 생성이 되고
Saved\Cooked\WindowsNoEditor\ActionRPG\Metadata\PipelineCaches\
3번 단계에서 -logPSO 인자로 PSO 수집용 빌드를 실행 후 맵을 돌아다니면
Windows 의 경우 아래 위치에 rec.upipelinecache 파일들이 수집이 됩니다.
Saved\StagedBuilds\WindowsNoEditor\ActionRPG\Saved\CollectedPSOs\
5번 단계에서는 위에서 얻은 PipelineCaches 및 CollectedPSOs 파일들을 모아서
stablepc.csv 를 생성 후 build/windows 폴더로 복사를 하게 되고
6번 단계에서 stablepc.csv를 포함해서 다시 패키징 하면 PSO가 포함된 최종 빌드가 나오게 됩니다.