TECHARTNOMAD | TECHARTFLOWIO.COM

TECH.ART.FLOW.IO

[번역]Use Runtime Virtual Textures to Improve Landscape Performance in Unreal Engi

jplee 2023. 9. 21. 12:30

역자의 말.
최근 언리얼엔진 5를 사용하는 프로젝트 위주로 참여 하고 있습니다.
2022년도에 바이트덴스에서 진행 하던 프로젝트에서 엔진팀은 직접 유니티 URP 를 위한 RVT 를 개발 했었습니다. 
모바일 하드웨어에서도 리소스 트레이드오프를 잘 하면 이득을 볼 수 있는 솔루션 이죠.
레벨팀과 협업을 하다 보면 주로 Slop 등을 계산하고 높이를 계산해서 자동으로 재질들을 정의 해 주는 Auto material 같은 것을 개발 해 달라는 의뢰를 많이 받게 되는데요... 완벽하게 편집모드와 런타임 모드 셰이더 프레임워크를 잡아나간다면 충분히 그것을 agree 할수 있겠지만 일반적으로 Auto material 에 대한것에 회의적인 편입니다.(저는) 하지만...RVT 를 사용한다는 가정하에서는 충분히 그것도 워크플로에 추가 할 만 합니다. 
이 원문기사는 아티스트도 매우 쉽게 이해할 수 있게 간략히 설명해 주고 있습니다. 


 
원문.
 

Use Runtime Virtual Textures to Improve Landscape Performance in Unreal Engine

If you working with Unreal Engine, I bet you are familiar with shader complexity. If not, just enter ALT + 8 & you can see something like…

medium.com

만약 Unreal Engine을 사용하고 있다면, 쉐이더 복잡도에 익숙할 것이라고 생각합니다. 그렇지 않다면, ALT + 8을 입력하면 다음과 같은 것을 볼 수 있습니다.

일부 자동 머티리얼이 있는 랜드스케이프의 셰이더 복잡도.

 
지형과 일부 자동 소재의 셰이더 복잡도
이는 화면에 소재를 렌더링하는 데 필요한 비용을 보여줍니다. 가능하다면 전체적으로 초록색으로 만들 수 있는 것이 이상적입니다.
지형 소재는 복잡하며, 화면 공간의 대부분을 차지합니다. 그래서 가능한 한 초록색으로 만들려고 해야 합니다.
여기서는 최적화 없이 OpenLand 의 셰이더 복잡도를 보고하고 있습니다.

사실 이 단계에서도 16개의 스레드 CPU와 2060 RTX GPU를 사용하여 초당 100프레임 이상을 달성할 수 있습니다.

하지만 더 최적화하려면, 우리의 자동 소재에 RVT 캐시(Runtime Virtual Textures)를 사용할 수 있습니다. 그래서 GPU가 매 프레임마다 소재를 다시 처리할 필요가 없게 됩니다.
RVT 캐시 지원을 활성화한 후의 셰이더 복잡도는 다음과 같습니다:
 

훨씬 가벼워졌네요.

 

이를 달성하기 위해 우리는 무엇을 타협하고 있나요?

예! 이를 얻으려면 텍스처 품질을 타협해야 합니다. 나뭇잎이 있는 원거리를 보면 차이를 느끼기 어렵습니다.
제 테스트에서는 약간의 성능 향상이 있었습니다. 하지만 저사양 GPU를 타겟으로 하는 경우 이점이 더 좋을 수 있습니다.
이 영상을 통해 자세히 알아보고 언리얼 엔진 랜드스케이프에 사용해 보세요:
https://www.youtube.com/watch?v=HlXiFUJrcjY