Landscape Grass Input 의 MaxGrassTypes 이 현재 32개로 제약이 걸려있는데 이걸 100개 정도로 늘려도 괜찮을까요?

안녕하세요.

<br/>

저희 아트팀에서 다양한 식생 표현을 위해 LandScape Grass Input의 개수를 엔진에서 제한한 숫자 (32개) 이상을 쓰고 싶어하는데요, 코드상으로 확장은 어려워 보이지 않은데 이것을 늘렸을때 문제가 없을지 궁금합니다.

<br/>

static constexpr int32 MaxGrassTypes = 32; // 최대 100개 까지 늘려도될까요?..

<br/>

저희가 고민하는거는 SRV의 개수가 너무 많이 사용된다던지, LandscapeGrassWeight.usf를 보면 #if #endif 를 많이 사용하던데 static branching 의 개수가 늘어나서 PSO 폭발등으로 인해 shader 컴파일 타임이 많이 늘어난다던지 하는 걱정이 있습니다.

<br/>

에픽에서 32개로 제한한 의도가 있을거 같아서 질문을 드립니다. 감사합니다.~

<br/>

[Image Removed]

<br/>

안녕하세요.

기술적으로는 MaxGrassTypes를 32에서 100으로 늘리는 것 자체에는 큰 제약이 없습니다.

다만, 실제로 확장할 경우 렌더링 부담이 크게 늘어날 수 있습니다.

기존 32개 기준으로 9회 반복되던 처리 루프가 100개 기준에는 26회로 늘어나면서 GPU 메모리 읽기·쓰기와 픽셀 셰이더 호출이 대폭 증가하고, 셰이더 내부 분기도 많아져 PSO가 크게 늘어날 수 있습니다. 이로 인해 에디터와 런타임의 로딩·컴파일 시간이 눈에 띄게 늘어날 가능성이 높습니다. 또한 SRV의 경우 DirectX 12 환경이라면 디스크립터 힙 모델 덕분에 비교적 유연하게 대응할 수 있지만 DirectX 11 환경에서는 슬롯 한계에 근접하여 문제를 일으킬 수 있습니다.

설정만 보면 100개까지 동작은 가능하나 성능과 빌드·로딩 측면의 부담이 커지므로 실제 프로젝트에서는 32개 이내로 관리하시는 것을 권장드립니다.

감사합니다.